Reguły biznesowe w regułach formularza

Facebooktwitterpinterestlinkedinmail
Dotyczy wersji 2020.1.3.x; autor: Konrad Wojtycza

 

Zagnieżdżenie reguł biznesowych w regułach formularza, pozwala na odniesienie się do danych zawartych w Active Directory lub zewnętrznych źródłach danych. Rozszerza to funkcjonalność reguł formularza i pozwala na korzystanie z danych spoza formularza podczas definiowania logiki procesu.

Wykonanie reguły formularza dla określonej grupy osób

Za pomocą reguł biznesowych można stworzyć warunek określający pewną grupę, dla której reguła formularza powinna zostać wykonana. Korzystając z funkcji w sekcji users (Rys. 1) istnieje możliwość podania listy użytkowników lub grupy z Active Directory oraz zdefiniowanych grup BPS.

Rys. 1 Reguła biznesowa z funkcją sprawdzająca, czy obecny użytkownik należy do wskazanej grupy

 

Po zdefiniowaniu reguły biznesowej zwracającej TRUE lub FALSE można przystąpić do tworzenia reguły formularza, która będzie pokazywać określone atrybuty tylko dla zdefiniowanej wcześniej grupy osób. W sekcji definicji reguły formularza należy odwołać się do reguły biznesowej po prostu wpisując jej nazwę – wtedy też pojawi się podgląd zawartości tej reguły biznesowej.

Rys. 2 Reguła formularza z zagnieżdżoną regułą biznesową ‘User is from secretary’

Można też posłużyć się panelem z prawej strony. W zakładce Funkcje pojawia się lista zdefiniowanych reguł biznesowych w procesie. Reguła ta jest dodawana metodą przeciągnij-upuść (drag and drop) lub poprzez podwójne kliknięcie myszką. Utworzona reguła formularza została przedstawiona na Rys. 3.

Rys. 3 Pełna definicja reguły formularza z wykorzystaniem reguły biznesowej

 

Wykonanie reguły formularza w zależności od danych w innych dokumentach/obiegach

W regułach biznesowych istnieje możliwość odwołania się do bazy SQL i zwrócenie określonych danych na podstawie konfiguracji procesu lub zarejestrowanych dokumentów w systemie. W przykładzie posłużono się funkcją SQL COMMAND i sprawdzono czy dla danego kontrahenta istnieją już zarejestrowane umowy określonego typu (Rys. 4). Jeśli tak, użytkownik będzie mógł przejść ścieżką, która zainicjuje dane z jednej z tabel.

Rys. 4 Reguła biznesowa wykorzystująca funkcje SQL COMMAND

 

Tak zdefiniowana reguła biznesowa może zostać użyta w definicji warunku reguły formularza, za pomocą której ścieżka umożliwiająca inicjalizację danych będzie ukrywana i pokazywana (Rys. 5).

Rys. 5 Reguła formularza ukrywająca/ pokazująca ścieżkę umożliwiającą inicjalizację danych

 

Ustawianie zmodyfikowanej wartości pola z istniejącego dokumentu

W konfiguracji pola wyboru typu Autouzupełnianie lub Okno wyboru istnieje możliwość przekazania wartości z kolumn źródła danych do wskazanych pól na formularzu. Ograniczeniem takiego rozwiązania jest możliwość przekazywania tylko dokładnych danych jakie znajdują się w źródle. Jeśli istnieje potrzeba zmodyfikowania danych do przekazania można posłużyć się zapytaniem SQL, które definiowane jest w regule biznesowej (Rys. 6).

Rys. 6 Reguła biznesowa zwracająca datę o rok późniejszą niż ‘Start date’ ostatniej umowy

 

Dane zwrócone w regule biznesowej można wykorzystać w regule formularza ustawiając wartość określonego pola. Jeżeli ta reguła zostanie wykonana na zmianę wartości pola o nazwie Previous agreement to do pola Start date wpisana zostanie data o rok późniejsza niż na dokumencie wskazanym w polu wyboru.

Rys. 7 Reguła formularza wykorzystująca regułę biznesowa z Rys. 6

 

Należy mieć na uwadze to, że jeżeli do różnych atrybutów przekazywane będą różne wartości to konieczne jest zdefiniowanie osobnych reguł biznesowych dla każdego pola.

Wykorzystanie zewnętrznego źródła danych

Poniżej opisano wykorzystanie zewnętrznego źródła danych w postaci bazy danych ERP w celu pobrania danych dostawcy.

Rys. 8 Skonfigurowane połączenie do zewnętrznej bazy danych typu MSSQL

 

Połączenia do zewnętrznej bazy danych konfigurowane są w zakładce Data sources -> Connections. W przedstawionym przykładzie połączenie zdefiniowane jest do bazy danych typu MSSQL (Rys. 8).

Po skonfigurowaniu połączenia do bazy danych, można dodać także źródło danych SQL z zapytaniem wybierającym dane z wybranej tabeli, w przedstawionym przykładzie są to dane dostawców z tabeli Suppliers (Rys. 9).

Rys. 9 Źródło danych wybierające dane z tabeli Suppliers znajdującej się w bazie danych MSSQL systemu ERP

Tak przygotowane źródło danych posłuży do pobrania na formularz danych dostawcy na podstawie jego Nazwy – pole Supplier name lub identyfikatora podatkowego VAT ID – pole Supplier VAT ID. Dane dostawcy zostaną wyświetlone na formularzu w polach Name, VAT ID, City oraz Address po przejściu ścieżką Download Supplier data (Rys. 10).

Rys. 10 Formularz przygotowany do pobrania danych dostawcy

 

Na ścieżce „Download Supplier data” została zdefiniowana akcja zmiany wartości wielu pól, ze źródła danych dzięki zastosowaniu filtra danych wybierani są jedynie dostawcy, dla których wartość wprowadzonego w polach Supplier name albo Supplier VAT ID jest równa odpowiednio wartości kolumny Sup_Name lub Sup_VATID z tabeli Suppliers w bazie danych ERP. Mapowanie atrybutów widoczne jest w sekcji Fields mapping (Rys. 11).

Rys. 11 Konfiguracja akcji Zmień wartość wielu pól

 

Tak przygotowana konfiguracja pozwoli po wyborze ścieżki ‘Download Supplier data’ na formularzu na pobranie z bazy ERP danych dostawcy odpowiadającego wartościom pól Supplier name albo Supplier VAT ID (Rys. 12).

Rys. 12 Formularz z pobranymi danymi dostawcy

 

Wydajność reguł formularza z zagnieżdżonymi regułami biznesowymi

Tworząc regułę formularza wykorzystująca regułę biznesowa, która zwraca wynik zapytania z bazy danych, należy mieć na uwadze poprawność oraz szybkość wykonywania zapytania zdefiniowanego w funkcji SQL COMMAND. W przypadku niezoptymalizowanych zapytań wykonywanych na dużych tabelach ryzykujemy spadek szybkości ładowania formularza, jeśli reguła jest wykonywana podczas jego ładowania. W przypadku reguł formularza z zagnieżdżonymi regułami biznesowymi na zmianę wartości pola, niezoptymalizowane zapytanie będzie uruchamiane po każdej zmianie wartości, co może znacznie obniżyć wydajność formularza a nawet spowodować zawieszenie się formularza i utratę danych.

Podsumowanie

Wykorzystanie reguł biznesowych w regułach formularza to działanie użyteczne, kiedy w logice procesu musimy uwzględnić dane spoza formularza. Należy jednak pamiętać, aby wykorzystywać zewnętrzne źródła danych tylko w sytuacjach, kiedy jest to niezbędne. A w przypadku użycia zewnętrznego źródła, należy koniecznie pamiętać o optymalizacji funkcji zawartych w regułach biznesowych, aby nie obniżać wydajności działania formularza.