Użycie funkcji/podreguły zwracającej wartość – przerwanie wykonania reguły formularza

Facebooktwitterpinterestlinkedinmail
Dotyczy wersji 2022.1.1 i powyżej, autor: Krystyna Gawryał

Wprowadzenie

Reguły formularza, jak sama nazwa wskazuje, to reguły definiujące zachowanie i wygląd elementów formularza. Mnogość dostępnych opcji w postaci funkcji, operacji, integracji, czy operatorów sprawia, że tworzone reguły mogą być mniej lub bardziej złożone, w zależności od potrzeb użytkownika. Podczas pracy z regułami formularza może dojść do sytuacji, w której wykonanie jednej funkcji lub podreguły przerywa wykonanie całej reguły. W konsekwencji pozostała część reguły nie jest wykonywana.

Niniejszy artykuł zawiera szczegółowy opis przyczyn takiego zachowania systemu oraz propozycję tworzenia reguł, tak aby działały zgodnie z intencją ich autora.

 

Funkcja zwracająca wartość a zachowanie reguły

Stworzenie reguły formularza wymaga użycia określonej funkcji/operatora. Część z nich, na przykład CONFIRM, to funkcje zwracające wartość.

Funkcja ta zwróci w regule wartość logiczną TRUE lub FALSE, w zależności od operacji dokonanych przez użytkownika na formularzu.

Należy jednak pamiętać, że w takim przypadku – tj. po zwróceniu wartości przez funkcję – działanie reguły zakończy się. W związku z powyższym, jeśli w dalszej części (poniżej funkcji CONFIRM) reguła zawiera inne funkcje, warunki lub wywołanie podreguł, to nie zostaną one wykonane.

Poniżej przedstawiono przykład niepoprawnego użycia operatora CONFIRM w regule formularza zawierającej podwójny warunek.

[Main PKD code validation] to podreguła sprawdzająca, czy główny kod PKD oferenta jest jednym z kodów wymaganych w postępowaniu przetargowym.

[PKD code validation] to podreguła sprawdzająca, czy którykolwiek z kodów PKD określających rodzaj działalności oferenta jest zgodny z wymogami.

Intencją autora było ułożenie reguły, która najpierw sprawdzi, czy główny kod PKD oferenta wprowadzony na formularzu jest zgodny z warunkami postępowania przetargowego, a następnie, czy pozostałe kody PKD są zgodne z tymi warunkami.

Przykład nieprawidłowego użycia reguły formularza z funkcją zwracającą wartość

 

Tak jak wspomniano powyżej, wykonanie reguły zakończy się po spełnieniu pierwszego warunku (1), natomiast druga część reguły (2) nigdy nie zostanie wykonana.

 

Poprawne użycie reguły

Aby możliwe było wykonanie całej reguły formularza zgodnie z intencją autora, bez pomijania jakiejkolwiek jej części, musi ona zostać poprawnie sformułowana.

Posługując się przykładem reguły formularza z dwoma warunkami IF THEN, która dodatkowo zawiera funkcję CONFIRM zwracającą wartość TRUE lub FALSE, regułę tę należy sformułować w następujący sposób:

Wówczas obie podreguły zostaną wykonane jedna po drugiej i oba warunki reguły nadrzędnej zostaną sprawdzone.

 

Reguły formularza na przejściu ścieżką

Kolejną ważną cechą reguł formularza jest fakt, że w przypadku niezdefiniowania wartości zwracanej przez regułę domyślnie będzie ona zwracać wartość FALSE.

Ma to znaczenie zwłaszcza w przypadku reguł wykonywanych na przykład jako dodatkowa walidacja przy przejściu ścieżką.

W regule poniżej, pomimo że kwota oferty cenowej za usługę będzie niższa niż 25 000 EUR, to reguła zwróci FALSE i przejście ścieżką nie zostanie wykonane.

 

Prawidłowo (zgodnie z zamierzeniem autora) treść reguły powinna być następująca:

Jeśli kwota oferty cenowej nie przekracza 25 000 EUR, to nastąpi przejście ścieżką. Jeśli natomiast ta kwota jest wyższa od 25 000 EUR, to wówczas przejście ścieżką jest uzależnione od decyzji użytkownika, tj. od tego czy wybierze OK czy CANCEL w odpowiedzi na wyświetlony komunikat systemu.

 

Inne funkcje zwracające wartość logiczną

CONFIRM to jedna z wielu funkcji dla reguł formularza, które zwracają wartość TRUE lub FALSE. Przykładami innych takich funkcji są:

  • LIKE
  • CONTAINS
  • IS IN
  • HAS ANY ROWS
  • ATTACHMENT EXISTS

Funkcje te opisano szczegółowo w artykule: Słownik funkcji dla Reguł Biznesowych i Reguł formularza – Blog techniczny WEBCON BPS