Argumenty funkcji
Wprowadzenie
Dział zatytułowany „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ł
Dział zatytułowany „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
Dział zatytułowany „Używanie cudzysłowu”Użycie cudzysłowu z nazwą pola
Dział zatytułowany „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
Dział zatytułowany „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 []
Dział zatytułowany „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
Dział zatytułowany „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
Dział zatytułowany „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
Dział zatytułowany „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
Dział zatytułowany „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" )