Reguły biznesowe
Reguły biznesowe służą do tworzenia uniwersalnych wyrażeń i warunków sterujących zachowaniem procesów. Korzystanie z reguł jest wygodną alternatywą dla stosowania wyrażeń SQL. Tworzenie reguł biznesowych jest intuicyjne. Można je przechowywać w jednym miejscu i grupować, tak aby ułatwić do nich dostęp i ich późniejsze wykorzystanie.
Reguły definiuje się globalnie w Konfiguracji systemu lub dla indywidualnego procesu.
Dodawanie reguły
Reguły biznesowe na potrzeby określonych procesów dodaje się z poziomu Konfiguracji dostępnej na drzewie aplikacji. Należy wybrać Reguły biznesowe i nacisnąć przycisk Nowa reguła po prawej stronie.
Po zdefiniowaniu reguły można jej użyć w dowolnym miejscu w Designer Studio, gdzie dostępne jest wprowadzanie zapytań. Jest to możliwe, jeśli reguła zwraca właściwy dla tego miejsca typ danych.
Jeśli konieczna jest zmiana reguły biznesowej, wystarczy nanieść zmiany w miejscu, gdzie została ona zdefiniowana (tj. globalnie w Konfiguracji systemu lub w konfiguracji danego procesu). Nie jest możliwa oddzielna modyfikacja reguły w każdym miejscu, w którym jest ona wykorzystywana.
Reguły biznesowe można grupować. Aby stworzyć grupę reguł, należy wybrać przycisk Nowa grupa, a następnie dodać do niej dostępne reguły, korzystając z metody „przeciągnij i upuść”.
Tworzenie reguły
Zarówno reguły biznesowe, jak i reguły formularza można budować na dwa sposoby:
- przeciągając kursorem operatory, funkcje, zmienne i parametry ze słownika (①) po prawej stronie do obszaru definicji reguły (②). Istnieje również możliwość wstawienia danego elementu w wybranym miejscu tego obszaru – należy ustawić kursor w tym miejscu i dwukrotnie kliknąć lewym przyciskiem myszy na wybrany element słownika,
- przy aktywnym obszarze definicji reguły (②) (tj. po kliknięciu w ten obszar), wpisując z klawiatury pierwsze litery nazw operatorów, funkcji, zmiennych lub parametrów. Edytor podpowiada pasujące frazy, które można wybrać za pomocą kursora lub strzałek kierunkowych i klawisza Enter.
Po samej składni reguły można poruszać za pomocą klawiszów Tab, Enter oraz strzałek kierunkowych – bez używania myszy. Dzięki temu możliwe jest budowanie reguł tylko za pomocą klawiatury.
Szczegółowe informacje na ten temat można znaleźć w artykule Pisanie reguł biznesowych/formularza bez użycia myszy na naszym blogu technicznym.
Typy danych
Reguły biznesowe mogą zwracać różne typy danych (typ danych zwracany przez daną regułę determinuje jej dostępność – dla pewnych pól zapytań oczekuje się zwrotu określonego typu danych). Reguły biznesowe mogą zwracać następujące typy danych:
Wartości – wartość tekstowa (string, dowolny ciąg znaków), wartość zmiennoprzecinkowa, data.
Wykorzystanie: definiowanie wartości domyślnej atrybutów.
Warunek wykonania – Tak/Nie (Boolean, reguła zwraca „True” lub „False”).
Wykorzystanie: definiowanie warunku wykonania akcji oraz w krokach typu „Sterowanie obiegiem” przy definiowaniu wyboru ścieżki na podstawie wartości atrybutu.
Lista użytkowników – reguła może zwracać listę użytkowników (lub grup) w formacje ID#Nazwa. Identyfikatorem (ID) może być adres e-mail lub login. Podanie nazwy jest opcjonalne.
Wykorzystanie: definiowanie widoczności atrybutu, widoczności atrybutu na formularzu w kroku oraz widoczności ścieżki przejścia.
Edycja reguły
Po kliknięciu na przycisk Edytuj (ikona z trzema kropkami) dostępny po prawej stronie obszaru definicji reguły otwierane jest okno Edycji reguły:
Z tego poziomu również dostępny jest słownik (①). Aby ułatwić tworzenie i edycję reguł, wszystkie zmienne dostępne w słowniku są zamieniane na wygodne w użyciu, spójne obiekty, które pokazują intuicyjną nazwę tagu oraz jego wybrany wariant. Zmienną można przeciągać do edytora z drzewa po prawej stronie lub wstawiać ją w miejsce kursora poprzez dwukrotne kliknięcie na element drzewa. Jeśli zmienna posiada warianty (np. ze zmiennej „Aktualny użytkownik" można pobrać rożne parametry, takie jak adres e-mail lub login przełożonego), to pojawiają się one po kliknięciu na element prawym przyciskiem myszy. Usunięcie obiektu jest możliwe poprzez kliknięcie na niego i naciśnięcie klawisza Delete lub Backspace.
Drzewo zmiennych budowane jest dynamicznie w zależności od kontekstu, w jakim słownik został uruchomiony. Wewnątrz drzewa zmiennych można wyszukiwać elementy poprzez wpisanie wyrażenia w polu filtrowania (②). Zawartość filtrowanego drzewa zmienia się samoczynnie po każdej zmianie wpisanego tekstu. Przywrócenie drzewa do pierwotnej postaci możliwe jest poprzez usunięcie wartości z tego pola.
W oknie Edycji reguły dostępna jest również opcja Przełącz wszystkie edytory w zaawansowany tryb edycji (③), po zaznaczeniu której wszystkie elementy słownika wyświetlane są jako zmienne w postaci tagów, a także dostępne są ich oznaczenia (pola) w bazie danych.
Testowanie reguły
Sprawdzenie działania reguły jest możliwe za pomocą dedykowanych opcji dostępnych w dolnej części okna Edycji reguły:
- ID elementu – identyfikator elementu obiegu, który zostanie wykorzystany do testowania reguły lub podglądu wyrażenia,
- Pobierz ID – pobiera ID ostatniego wprowadzonego do procesu elementu obiegu i wstawia tę wartość w pole ID elementu,
- Testuj – wykonuje test reguły z wartościami zmiennych pobranymi w kontekście wskazanego elementu obiegu. Jeśli test przebiegnie poprawnie, wyświetlone zostanie okno Podgląd wyrażenia z wartością zwracaną przez regułę dla tego elementu obiegu,
- Pokaż – otwiera okno, w którym wyrażenie jest wyświetlanie z wartościami zmiennych pobranymi z podanego elementu obiegu.
Opcja Stwórz uniwersalną regułę jest dostępna na poziomie aplikacji. Wybranie jej i zapisanie nowo utworzonej reguły jako reguły procesowej sprawi, że będzie ona dostępna w obrębie całego procesu.
Pomoc kontekstowa
Po najechaniu myszą na operator lub funkcję w obszarze roboczym, wyświetla się pomoc kontekstowa z opisem i przykładem wykorzystania.
Elementy do budowania reguł
Podczas tworzenia reguł można korzystać ze słownika dostępnych elementów (zwanego również Edytorem zmiennych lub Edytorem wyrażeń) znajdującego się po prawej stronie okna. Jest to narzędzie wspomagające pisanie wyrażeń zawierających zmienne, tj. ciągi znaków, najczęściej ograniczone nawiasami klamrowymi „”, które mają specjalne znaczenie w systemie i w czasie wykonania reguł są zamieniane na odpowiednie wyrażenia tekstowe.
Elementy do budowania reguł w słowniku są zorganizowane w następujące sekcje:
Operacje
W tej sekcji dostępne są elementy, dzięki którym możliwe jest wykonywanie:
- Operacji arytmetycznych – takich jak dodawanie (+), odejmowanie (-), mnożenie (*) lub dzielenie (/) liczb,
- Operacji logicznych – pozwalających rozbudowywać warunki funkcji o elementy oraz (AND), lub (OR), nie (NOT),
- Porównań – dostępne są operacje:
- = – równa się, jest identyczny,
- <> – różne, nie równa się,
- > – większe,
- >= – większe lub równe,
- < – mniejsze,
- <= – mniejsze lub równe,
- EMPTY – puste (brak wartości).
Funkcje
W tej sekcji dostępne są dotychczas zdefiniowane Globalne reguły biznesowe i Reguły biznesowe procesu, a także Integracja i Funkcje, jakie mogą posłużyć do utworzenia nowej reguły biznesowej. Aby uprościć ich organizację, funkcje zostały podzielone na katalogi.
Wybór warunkowy
W tym katalogu znajduje się funkcja IF THEN umożliwiająca stworzenie warunku logicznego.
Przykład prostej reguły z użyciem funkcji IF THEN:
Dodatkowo dostępne są elementy, takie jak:
- POSITIVE – określenie warunku jako spełniony (TAK, TRUE, 1),
- NEGATIVE – określenie warunku jako niespełniony (NIE, FALSE, 0),
- PATH – wybór ścieżki z danego procesu.
Lista pozycji
Funkcje dotyczące atrybutu Lista pozycji są dostępne tylko przy tworzeniu reguł biznesowych dla poszczególnych procesów (nie są dostępne dla globalnych regułach biznesowych). Zawierają one następujące elementy:
- ITEM LIST COUNT – funkcja zwraca liczbę wierszy znajdujących się w atrybucie Lista pozycji,
- HAS ANY ROWS – funkcja zwraca wartość „TRUE”, jeżeli lista zawiera jakikolwiek element, w przeciwnym wypadku zwróci „FALSE”,
- SELECT VALUES – funkcja pozwala na zwrócenie wartości znajdujących się na Liście pozycji. Po wskazaniu funkcji w edytorze, należy określić kolumnę, z jakiej mają zostać wybrane wartości.
Reguły AI
Funkcje dotyczące mechanizmu analizy AI umożliwiają następujące działania:
- AI ANALYSIS RULE COUNT FOR INSTANCE – funkcja zlicza reguły AI działające na elemencie obiegu,
- AI ANALYSIS BROKEN RULE COUNT FOR INSTANCE – funkcja zlicza elementy AI złamane na danym elemencie obiegu,
- AI ANALYSIS SCORE FOR INSTANCE – funkcja zwraca element analizy AI dla elementu obiegu.
Użytkownicy
- CURRENT USER IS ONE OF – funkcja sprawdza, czy aktualny użytkownik znajduje się w określonej grupie osób, jeżeli tak, zwracana jest wartość „TRUE”, w przeciwnym razie „FALSE”,
- USER IS ONE OF – funkcja sprawdza, czy podany użytkownik, lista użytkowników lub ich grupa znajduje się w podanej liście lub grupie użytkowników,
- USERS – funkcja pozwala pobrać listę użytkowników, w postaci kolekcji wartości ID#Nazwa rozdzielonych znakiem średnika,
- GROUP MEMBERS – funkcja umożliwia przypisywanie zadań bezpośrednio do członków grupy. Korzystając z BPS_ID, pobiera dane dotyczące wszystkich członków grupy, uwzględniając przy tym ewentualne zagnieżdżone w grupie podgrupy. Lista użytkowników zwracana jest w takim przypadku w postaci kolekcji wartości ID#Nazwa rozdzielonych znakiem średnika.
- SUBSTITUTES OF – funkcja zwraca kolekcję aktualnych zastępców w trybie delegacji zadań dla wskazanego użytkownika.
Liczba
-
ROUND – funkcja służąca zaokrągleniu wartości liczbowych, umożliwia wskazanie dokładności zaokrąglenia.
PrzykładROUND [1.25] [1]
zwraca wartość[1.3]
,ROUND [1.25] [0]
zwraca wartość[1]
,ROUND [11.25] [-1]
zwraca wartość[10]
.
Tekst
Funkcje pozwalają na operacje na wartościach tekstowych, dostępne są następujące operacje:
- TO UPPER – zamienia wartość tekstową na duże litery, np. umowa → UMOWA,
- TO LOWER – zamienia wartość tekstową na małe litery, np. UMOWA → umowa,
- TEXT LEN – zwraca długość tekstu (liczbę znaków),
- SUBSTRING – pozwala na wydzielenie fragmentu tekstu na podstawie indeksu znaku początkowego oraz liczby znaków, jakie należy pobrać. Pierwszy znak w tekście posiada indeks „1”,
- STRING REPLACE – pozwala na zamianę wskazanej frazy w tekście na inną podaną frazę,
- INDEX OF – zwraca pozycję pierwszego wystąpienia ciagu znaków w przekazanym tekście,
- CONCAT – łączy wartości tekstowe w jeden tekst,
- TRIM – funkcja usuwająca białe znaki na początku oraz na końcu wskazanego tekstu,
- LIKE – pozwala sprawdzić, czy tekst zawiera podany wzór tekstu. Jeżeli tak, zwracana jest wartość „TRUE”,
wskazówka
Zastosowanie funkcji CONCAT wewnątrz funkcji LIKE umożliwi stworzenie zaawansowanych warunków filtrujących odnoszących się do Źródeł danych. Rozwiązanie to pozwoli zawęzić listę zwracanych wartości ze źródła danych, na przykład, podczas konfiguracji atrybutów typu Pole wyboru.
Więcej informacji na ten temat dostępnych jest w ARTYKULE na naszym blogu technicznym. - CONTAINS – pozwala sprawdzić, czy podany tekst zawiera określony fragment tekstu. Jeżeli tak zwracana jest wartość „TRUE”, przy sprawdzaniu ignorowana jest wielkość liter.
- STARTS WITH – sprawdza, czy podany tekst rozpoczyna się od określonego fragmentu, przy sprawdzeniu ignorowana jest wielkość liter,
- SPLIT – rozdziela wskazany tekst na części, zgodnie z podanym separatorem. Separatorem może być dowolny ciąg znaków. Wynikiem działania funkcji jest kolekcja elementów rozdzielonych średnikami,
- REMOVE HTML TAGS – usuwa z podanego tekstu wszystkie tagi HTML,
- TEXT – pozwala wprowadzić tekst z możliwością definiowania tłumaczeń.
Data i czas
- NOW – funkcja zwraca aktualną datę wraz z godziną,
- TODAY – funkcja zwraca aktualną datę,
- DATE DIFF – funkcja oblicza różnicę między dwoma datami, możliwe jest wskazanie następujących elementów różnicy: sekunda, minuta, godzina, dzień, tydzień, miesiąc, rok. Po określeniu wartości zwraca różnicę w postaci wartości liczbowej,
- ADD DATE – funkcja pozwala dodać do podanej daty określoną liczbę: sekund, minut, godzin, dni, miesięcy lub lat. Po jej wybraniu należy wybrać z listy element określający czas, a w kolejnym polu wskazać wartość liczbową jaka ma zostać dodana,
- DATE PART – funkcja zwraca liczbę całkowitą określającą sekundę, minutę, godzinę, dzień, miesiąc lub rok podanej daty.
Kolekcje elementów
- GET IDs – funkcja umożliwiająca pobranie z kolekcji w formacie ID#Nazwa kolekcji zawierającej samo ID. Pobrane elementy są rozdzielane średnikiem,
GET IDs ['144 # Amortyzator; 14 # Chłodnica; 4 # Skrzynia biegów]
zwraca [144; 14; 4]
- GET NAMEs – funkcja umożliwia pobranie z kolekcji w formacie ID#Nazwa kolekcji zawierającej same nazwy. Pobrane elementy są rozdzielone średnikiem,
GET NAMEs ['144 # Amortyzator; 14 # Chłodnica; 4 # Skrzynia biegów]
zwraca [Amortyzator; Chłodnica; Skrzynia biegów]
- IS IN – funkcja sprawdza, czy dany element znajduje się w kolekcji elementów, zwraca wartość „TRUE” lub „FALSE” w zależności od wyniku tego sprawdzenia, Elementy są porównywane jako ciągi znaków, wielkość znaków nie ma znaczenia. Przy porównywaniu brane są pod uwagę białe znaki występujące na początku, końcu oraz wewnątrz ciągu znaków. Funkcja umożliwia zdefiniowanie wielu kolekcji, które będą wykorzystywane przy przeszukiwaniu,
- COLLECTION – funkcja służąca do łączenie wielu kolekcji elementów. Efektem jej użycia jest zwrócenie nowej kolekcji zawierającej wszystkie połączone elementy,
- GET AT INDEX – pobiera element znajdujący się we wskazanym miejscu kolekcji,
- SUM – zwraca sumę wszystkich wartości w przekazanej kolekcji liczb,
- AVG – zwraca średnią arytmetyczną z wszystkich wartości przekazanej kolekcji liczb,
- MAX – zwraca największą wartość w przekazanej kolekcji liczb,
- MIN – zwraca najmniejszą wartość w przekazanej kolekcji liczb,
- COUNT – zwraca liczbę elementów w kolekcji,
- DISTINCT – zwraca unikatowe wartości z przekazanej kolekcji.
Konwersje
Funkcje pozwalające na zmianę typu wartości oraz zmianę formatu wyświetlania pola typu data:
- DECIMAL TO TEXT – pozwala na zmianę wartości zmiennoprzecinkowej na wartość tekstową,
- TEXT TO DECIMAL – pozwala na zmianę wartości tekstowej na wartość zmiennoprzecinkową,
- TEXT TO DATE – zmienia wartość tekstową na format daty,
- FORMAT DATE – pozwala na sformatowanie wartości daty według określonych wymagań.
Załączniki
Funkcje dotyczące załączników:
- ATTACHMENTS COUNT – zwraca aktualną liczbę załączników powiązanych z elementem,
- CONTENT AS BASE64 – zwraca załącznik w formacie BASE64,
- CONTENT TYPE – zwraca typ MIME załącznika, jaki jest zapisany w obiegu,
- FILE NAME – zwraca nazwę pliku załącznika,
- GET ATTACHMENTS – zwraca jeden lub więcej ID załączników dodanych do elementu.
Integracja
Reguły mogą zawierać wyrażenia zdefiniowane za pomocą języka SQL. Aby skorzystać z poleceń SQL, należy w tym katalogu wybrać funkcję SQL COMMAND. Można też zacząć wpisywać „SQL” w obszarze definicji – program zaproponuje wybranie polecenia SQL COMMAND (wówczas należy kliknąć na nie dwukrotnie lewym przyciskiem myszy lub nacisnąć klawisz Enter).
Zapytanie SQL można skonfigurować, klikając na ikonę z trzema kropkami znajdująca się obok nazwy wspomnianej funkcji. Wówczas otwarte zostanie okno edytora wyrażeń SQL, w którym, wykorzystując składnię języka SQL, należy wprowadzić pożądane instrukcje, wykorzystując do tego celu zmienne dostępne w słowniku.
W katalogu Integracja dostępne są również funkcje:
- SDK EXECUTION – umożliwia użycie SDK w regułach,
- DATA SOURCE VALUE – umożliwia pobranie wartości z określonej kolumny źródła danych. Jest to funkcjonalność analogiczna do sposobu tworzenia wyrażeń logicznych w poprzednich wersjach systemu WEBCON BPS, gdzie wyrażenia konstruowane były za pomocą języków skryptowych.
Wartości
Zakładka pozwala używać wartości zapisanych w atrybucie obiegu jako zmiennej w tworzonej regule biznesowej. W wielu przypadkach użycie wybranej funkcji odnosi się do pola występującego na formularzu. W takich przypadkach należy przeciągnąć z tej zakładki pole do miejsca w danej funkcji.
Obiekty
Zakładka umożliwia dodanie obiektów do reguły; mogą to być m.in. atrybuty globalne, aplikacje, źródła danych, spółki.
Parametry
Zakładka służy do tworzenia uniwersalnych reguł biznesowych, które będą mogły być wielokrotnie wykorzystywane w różnych scenariuszach. Parametr tworzony jest jednorazowo, po czym użytkownicy końcowi przekazują do wykorzystujących go reguł odpowiednie wartości, zależnie od przypadku. Przy tworzeniu parametru definiuje się jego Nazwę oraz spodziewany Typ wartości:
- wartość tekstowa
- wartość zmiennoprzecinkowa,
- Tak/Nie,
- data,
- lista użytkowników.
Dla każdego parametru można również dodać jego Opis.
Parametr po wstawieniu do reguły biznesowej podświetli się na żółto. Przetestowanie tak skonfigurowanej reguły będzie wymagało ręcznego wprowadzenia jej wartości.
Przykład reguły biznesowej z wykorzystanym Parametrem:
Więcej przydatnych informacji można znaleźć w artykule Reguły biznesowe na naszym blogu technicznym.