Argumenty funkcji
Wprowadzenie
W silniku reguł języka AMODIT Script wiele funkcji używa argumentów, np. funkcja dodająca wiersz do tabeli – AddTableRow(tableName,rowCount);. Z tego artykułu dowiesz się, w jaki sposób przekazywać wartości do funkcji reguł, aby wykonały one stosowne akcje na tychże wartościach.
Argumenty funkcji reguł
Funkcje reguł mogą:
- nie mieć żadnych argumentów, np. CurrentStage();
- mieć stałą liczbę argumentów, np. ShowField(nazwaPola);
- mieć zmienną liczbę argumentów, np. ForwardCase(userLogin,stageName,sendEmail), gdzie ostatni argument jest opcjonalny i można go nie podawać.
W AMODIT, co oczywiste, występują pola na formularzu. Te pola mają swoje nazwy nadawane przez twórcę procesu. Przykładowo niech to będzie „Numer faktury”. Załóżmy, że to pole zawiera wartość „FV/2020/01/95”.
W jaki sposób należy odwoływać się do pola i wartości w polu i w jaki sposób zapisać to w sekcji argumentów konkretnej funkcji.
Pierwsze co musimy rozważyć, to to czy odnosimy się do pola jako takiego, czy do wartości w tym polu.
Używanie cudzysłowu
Użycie cudzysłowu z nazwą pola
Gdybyśmy chcieli ukryć pole „Numer faktury”, to musimy odnieść się do nazwy pola i nie interesuje nas, co w tym polu jest zapisane, więc funkcja HideField() zostanie użyta w ten sposób:
HideField("Numer faktury")
Umieściliśmy nazwę pola w cudzysłowie, bo odnosimy się do pola, a nie do wartości w tym polu.
Podobnie, gdy chcemy dodać wiersze do tabeli o nazwie „Pozycje faktury”, to użyjemy następującego zapisu:
AddTableRow("Pozycje faktury")
Użycie cudzysłowu dla oznaczenia tekstu
Cudzysłów używamy również dla bezpośredniego podania tekstu jako argumentu funkcji.
Przykładowo obliczenie długości tekstu „To jest mój tekst” przy pomocy funkcji Length() wykonamy w następujący sposób:
_dl = Length("To jest mój tekst")
i funkcja zwróci wartość 17, bo tyle znaków zawiera ten tekst, nie licząc cudzysłowów.
Podobnie, gdy używamy funkcji ForwardCase() i wprost podajemy do kogo i na jaki etap ma być przekazana sprawa:
ForwardCase("jkowalski","Księgowanie")
W tym przypadku jkowalski jest loginem użytkownika i jako tekst podajemy go w cudzysłowie. Księgowanie jest nazwą etapu i jako tekst podajemy ją w cudzysłowie.
Użycie nawiasów kwadratowych []
Jeżeli chcemy odnieść się do wartości przechowywanej w polu formularza sprawy, to nazwę pola podajemy w nawiasach kwadratowych.
Zobaczmy na przykładzie funkcji Length(), która zwraca długość tekstu. Załóżmy, że istnieje pole tekstowe o nazwie „Numer faktury” i zawiera ono wartość „FV/2020/01/956”. Gdy użyjemy funkcji
_dl = Length( [Numer faktury] )
to zwróci ona nam długość tekstu „FV/2020/01/956„, czyli 14, bo taka wartość aktualnie jest w polu „Numer faktury” dla tej konkretnej sprawy, dla której uruchamiana jest reguła.
Kolejny przykład w oparciu o funkcję ForwardCase(). Załóżmy, że istnieje pole o nazwie „Osoba opiniująca” i pole to zawiera aktualnie wartość „piotrb”, to użycie funkcji
ForwardCase( [Osoba opiniująca] , "Etap zbierania opinii")
spowoduje przekazanie sprawy do osoby o loginie „piotrb” na etap o nazwie „Etap zbierania opinii„.
Bez użycia cudzysłowu i bez użycia nawiasów kwadratowych
Niektóre typu argumentów mogą być podane bez użycia cudzysłowu i bez nawiasów.
Użycie zmiennej
W regułach możemy używać zmiennych lokalnych i możemy je dowolnie nazywać zaczynając od litery lub podkreślnika, np.
_zmienna = "jkowalski"
użycie jej w funkcji np. GetUserData() będzie wyglądało tak:
_stanowisko = GetUserData( _zmienna, "position")
W wyniku wywołania funkcji zostanie pobrana nazwa stanowiska dla użytkownika „jkowalski„.
Użycie wartości logicznych true i false
Wartości logiczne mogą, a nawet powinny, być podawane bez cudzysłowu. Przykładowo w funkcji IsFromValid():
IsFormValid(true);
W tym przypadku możemy słowo true podać jako argument bez użycia cudzysłowu. Oczywiście można również wywołać ją w ten sposób:
IsFormValid("true");
i też zostanie to przyjęte i wykonane prawidłowo.
Użycie wartości liczbowych
Możemy w niektórych funkcjach podawać bezpośrednio wartości liczbowe, np. w funkcji AddTableRow(), gdy chcemy podać, ile wierszy ma być dodanych do tabeli, np. w taki sposób (zalecany!):
AddTableRow("Pozycje faktury", 3 )
gdzie 3 jest liczbą podaną bezpośrednio bez cudzysłowu. Oczywiście prawidłowym jest również następujące wywołanie:
AddTableRow("Pozycje faktury", "3" )