Język skryptowy reguł

Ostatnia modyfikacja Sierpień 29, 2017

Reguły w AMODIT, to krótkie skrypty. Ich składnia sprowadza się do kilku prostych zasad opisanych poniżej.

Zobaczmy na przykładach.

Przykład 1

[Kwota] = 123;

Skrypt ten powoduje podstawienie wartość 123 do pola o nazwie Kwota. Pole [Kwota] powinno być typu numerycznego lub kwotowego.

Znak = oznacza tu i w innych przykładach podstawienie, przypisanie wartości znajdującej się po prawej stronie znaku do pola, którego nazwę podajemy z lewej strony.

Przykład 2

[Miasto] = "Warszawa";

Skrypt ten powoduje podstawienie wartość typu tekstowego Warszawa do pola o nazwie Miasto. Pole [Miasto] musi być typu tekstowego, aby można było przypisać do niego wartość tekstową.

Wartość tekstową podajemy w cudzysłowach „tekst” lub apostrofach ‚tekst’.

Przykład 3

Można również przypisać wartość z jednego pola do drugiego.

[Miasto] = [Miejscowość wyjazdu];

Skrypt ten spowoduje skopiowanie wartość z pola o nazwie „Miejscowość wyjazdu” do pola o nazwie „Miasto”. Oczywiście oba pola powinny być tego samego typu.

Przykład 4

[Wartość] = [Cena] * [Ilość];

Skrypt pobiera zawartość z pól [Cena] i [Ilość], mnoży je i wynik podstawia do pola [Wartość].

Możemy stosować następujące operatory:

+    (dodawania)         – można stosować do wartości liczbowych oraz do ciągów znaków (string)
–    (odejmowania)       – tylko do wartości liczbowych
*    (mnożenia)          – tylko do wartości liczbowych
/    (dzielenia)         – tylko do wartości liczbowych
%    (modulo, reszta z dzielenia) – tylko do wartości liczbowych

Przykład 5

Możemy użyć znaku + dla łączenia tekstów.

[Nazwa użytkownika] = "Imię: " + [Imię] + ", Nazwisko: " + [Nazwisko];

Załóżmy, że pole [Imię] zawiera wartość „Jan”, a pole [Nazwisko] zawiera wartość „Kowalski”.

Wykonanie powyższego skryptu spowoduje, że do pola [Nazwa użytkownika] zostanie podstawiona wartość „Imię: Jan, Nazwisko: Kowalski”

Przykład 6

ShowMessage(1,"Komunikat"); 

W regułach możemy również używać funkcji dostępnych na Platformie AMODIT.

W tym przykładzie użyto funkcji ShowMessage(), która wyświetli użytkownikowi komunikat o treści „Komunikat”.

Przykład 7

Istotą reguł biznesowych na Platformie AMODIT jest sterowanie przebiegiem zdarzeń. Do tego celu stosujemy prostą konstrukcję dla zapisania warunku. Prześledźmy poniższy skrypt.

if ([Wartość] > 5000) 
{ 
    ForwardCase("g_iksinski","Akceptacja finansowa"); 
} 
else 
{ 
    ForwardCase("Księgowość","Księgowanie"); 
}

W pierwszym wierszu znajduje się „warunek”, od którego zależy wykonanie dalszej części skryptu.

Warunek odwołuje się do pola na formularzu o nazwie „Wartość”. Zapis w nawiasach kwadratowych [ ] oznacza właśnie odwołanie się do pola na formularzu.

Warunek sprawdza czy zawartość pola o nazwie „Wartość” jest większa od liczby 5000.

Jeżeli warunek będzie spełniony, to wykonany zostanie skrypt w linii nr 3.

Jeżeli warunek nie będzie spełniony, to wykonany zostanie skrypt w linii nr 7.

Część skryptu do wykonania zamyka się w nawiasach klamrowych { }.

W obu przypadkach wykorzystana została funkcja ForwardCase, która przekazuje sprawę do określonej osoby, na określony etap.

W warunku możemy stosować poniższe operatory porównania:

==    (równość)  obie strony warunku muszą być równe. Zwróć uwagę, że w warunku stosujemy podwójny znak równości.
!=    (nierówne) strony warunku muszą być różne
>    (większe niż) lewa strona warunku musi być większa niż prawa
>=    (większe lub równe) lewa strona warunku musi być większa lub równa prawej
<    (mniejsze niż) lewa strona warunku musi być mniejsza niż prawa
<=    (mniejsze lub równe) lewa strona warunku musi być mniejsza lub równa prawej

Przykład 8

Automatyczna konwersja typów.

Bardzo często zachodzi potrzeba prezentowania komunikatów, które informują
użytkownika o różnych zdarzeniach lub wartościach. Komunikaty są to
ciągi znaków, jednak do ich budowy możemy użyć każdego typu zmiennej a
silnik reguł automatycznie dokona ich konwersji na typ tekstowy.

[Upust]= 0.9;
ShowMessage(2, "Współczynniki upustu wynosi: " + [Upust]);

Pomimo, że pole [Upust] jest polem liczbowym, to w drugiej linii kodu zostaje automatycznie skonwertowane na ciąg znaków i system prawidłowo wyświetli komunikat o treści „Współczynnik upustu wynosi: 0.9”

Przykład 9

Użycie zmiennych lokalnych.

Zmienna lokalna przechowuje wartość, którą można wykorzystać w dowolnym miejscu reguły w której została użyta. Nie można odwołać się do zmiennej  z innych reguł.

Nazwa zmiennej może składać się wyłącznie z liter. Nazwa jest czuła na wielkość liter, zatem ToJestNazwa i tojestnazwa, to dwie różne zmienne.

Pierwsze użycie zmiennej w regule musi być związane z podstawieniem wartości.
Dzięki temu zmienna przyjmuje typ zgodny z tym pierwszym podstawieniem.

ratio = 1.25;

Zmienna ratio przyjęła typ liczbowy na skutek przypisania do niej wartości liczbowej.

nazwa = „To jest ciąg znaków.”;

Zmienna nazwa przyjęła typ ciągu znaków.

multipliedRatio = ratio * 25;

Zmienna multipledRatio przyjęła typ liczbowy gdyż wcześniej przypisana została wartość 1.25 do zmiennej ratio.

ratio = „Ponownie przypisana wartość zmieniająca typ”;

Jeżeli ponownie przypiszemy wartość do wcześniej użytej zmiennej, to od tego momentu zmieni ona typ.

wartoscLogiczna1 = true;

Przypisanie wartości logicznej. Można użyć słowa true pisanego zarówno małą jak i dużą literą. Podobnie używamy słowa false.

isRatioZero = ratio == 0;

Zmienna isRatioZero będzie typu logicznego, gdyż wynikiem działania operatora porównania == jest prawda lub fałsz.

error = 3 * previouslyUnknownVariable;

Nie można użyć zmiennej po raz pierwszy w powyższy sposób. Zawsze najpierw musi być jej przypisana wartość. W powyższym przykładzie działanie reguły zgłosi błąd.