Instrukcja administratora > Parametryzacja systemu > Obiekty użytkownika > Funkcje i procedury użytkownika | | Drukuj |
Funkcje i procedury składowane budowane na podstawie składni SQL służą do zadawania skomplikowanych zapytań i zwracania wyników dowolnych obliczeń, które odwołują się do bazy danych programu. Za pomocą odpowiednio skonstruowanej funkcji można przekazać wynik obliczenia do definicji dowolnego składnika płacowego, a tam już go dalej obliczać posługując się algorytmami definiowania list płac. Procedurę składowaną można natomiast używać w wyzwalaczach użytkownika do przeprowadzania bardziej skomplikowanych operacji na bazie danych (update'owanie rekordów, itd.). Funkcje i procedury użytkownika mogą być przechowywane albo w bazie R2P_nazwa_bazy_Bin (ogólnej), lub w bazach R2P_nazwa_bazy_Dane_X i są kopiowane do bazy firmy przy jej zakładaniu. Zapytania do tabel w takich funkcjach są względne, tzn. nie odwołują się do tabel w konkretnej bazie danych, co ułatwia przenoszenie archiwów i uruchamianie takich funkcji na dowolnym serwerze SQL. W celu utworzenia własnej funkcji lub procedury, wybieramy z menu Ustawienia pozycję Funkcje i procedury użytkownika. ![]() Dla nowej funkcji lub procedury •Nazwa - unikalna nazwa funkcji lub procedury •Bin - czy funkcja lub procedura ma być przechowywana w bazie Bin, czy w bazie firmy (Dane_X) i analogicznie gdzie mają się odwoływać jej zapytania •Rodzaj - funkcja albo procedura •Funkcja - zawartość funkcji lub procedury; można tutaj używać znaczników <BIN> oraz dane_0, zwracające odpowiednio nazwę bazy Bin lub numer bazy firmy, który będzie zamieniany przy tworzeniu nowej firmy; dwuklik myszy na tym polu powoduje otwarcie okna wygodnego edytora zapytań SQL Przycisk Test służy do sprawdzenia składni. Funkcję wywołujemy później w definicji składnika korzystają z z funkcji sf_nazwa_funkcji(...). Natomiast procedurę lub funkcję możemy użyć w wyzwalaczu użytkownika, bądź przy budowaniu własnego zestawienia SQL. Przykład Jeśli zdefiniujemy funkcję moja_funkcja jako: CREATE function dbo.moja_funkcja (@n int) returns float as begin return @n*2 end to w założeniu ma ona mnożyć przez dwa wartość zadanego jej parametru. Jeśli teraz zdefiniujemy nowy_składnik jako: sf_moja_funkcja(wz(nowy_składnik)) to rezultatem będzie mnożenie przez dwa wartości zadanej tegoż składnika Bardzej rozbudowany przykład wykorzystania funkcji w połączeniu z wyzwalaczami użytkownika jest dostępny tutaj |