Działania arytmetyczne w atrybutach formularza

Facebooktwitterpinterestlinkedinmail
Dotyczy wersji 2022 R4; autor: Łukasz Maciaszkiewicz

 

Wprowadzenie

Jedną z podstawowych funkcji aplikacji tworzonych w systemie WEBCON BPS, obok gromadzenia i analizowania danych, jest przeliczanie wartości wprowadzanych przez użytkowników końcowych bezpośrednio w formularzu. System oferuje w tym względzie szereg rozwiązań pozwalających w łatwy i szybki sposób zdefiniować działania arytmetyczne wykonywane na wartościach wprowadzanych w atrybutach. W niniejszym artykule, posiłkując się przykładami, przedstawiono sposoby konfigurowania atrybutów formularza, w taki sposób aby wykonywały one wspomniane działania, wyświetlając ich wynik w atrybutach formularza.

 

Uwaga: w artykule pominięto konfigurację atrybutu typu „Lista pozycji”, w przypadku którego dostępny jest specjalny rodzaj kolumny, tj. „Wartość wyliczana zmiennoprzecinkowa”, umożliwiający szybkie definiowanie działań arytmetycznych. Szczegółowe informacje na temat kolumny „Wartość wyliczana zmiennoprzecinkowa” dostępne są pod adresem: https://kb.webcon.pl/wykorzystanie-kolumn-wyliczanych-2/

 

Edytor reguł

W systemie WEBCON BPS tworzenie działań arytmetycznych ułatwia edytor reguł. Jest on dostępny po kliknięciu ikony wielokropka w prawym górnym rogu pól umożlwiających wprowadzanie reguł. Narzędzie to nie jest niezbędne do tworzenia operacji arytmetycznych, niemniej warto z niego skorzystać zwłaszcza w przypadku bardziej rozbudowanych operacji arytmetycznych.

Okno edytora reguł

 

W głównym oknie edytora, po prawej stronie dostępne są kolejno zakładki „Operacje”, „Funkcje”, „Wartości” oraz „Obiekty”. Pozwalają one na wybieranie i dodawanie rozmaitych elementów do reguły dwuklikiem lub metodą drag-and-drop, znacząco skracając czas jej tworzenia. Elementy takie można także dodawać bezpośrednio w polu edycji – podczas wpisywania znaków w tym polu wyświetlane jest menu kontekstowe z sugestiami elementów, których nazwa rozpoczyna się od wprowadzonych znaków.

W przypadku znacznej części elementów zawartych w zakładkach „Operacje” i „Funkcje” należy pamiętać, że operacje bądź funkcje będą wymagały uzupełnienia konkretnymi wartościami bądź elementami (wybieranymi na przykład z zakładek „Wartości” lub „Obiekty). Elementy takie należy wstawić wewnątrz nawiasów kwadratowych, pamiętając o zachowaniu odpowiedniej kolejności narzucanej wybraną funkcją bądź działaniem.

Przykład funkcji „Set Focus” wstawionej w polu edycji – wewnątrz nawiasu kwadratowego funkcji należy wstawić wybrany atrybut

 

Szczegółowe informacje na temat poszczególnych funkcji i operacji dostępnych z poziomu edytora reguł dostępne są w poświęconym temu zagadnieniu artykule pod adresem: https://kb.webcon.pl/slownik-funkcji-dla-regul-biznesowych-i-regul-formularza/

 

Reguła biznesowa a reguła formularza

W prezentowanych w niniejszym artykule przykładach do wykonywania działania arytmetycznego posłużono się regułami formularza. Jest to jedno z możliwych podejść, ale nie jedyne: innym sposobem jest skorzystanie z reguł biznesowych. Istnieją pewne różnice między wspomnianymi typami reguł, o których mowa również w artykule zacytowanym w rozdziale powyżej. Generalizując, należy mieć świadomość, że reguły biznesowe mają bardziej „sztywny” charakter i nie mogą być zmieniane w żaden sposób przez użytkownika końcowego: zestaw zasad zdefiniowanych przez administratora ma zastosowanie w tym przypadku nie tylko do zawartości formularza, ale także do wszystkich elementów systemu, np. akcji, startowania elementów itd.

Z drugiej strony reguły formularza stanowią zasadniczo bardziej elastyczne ramy i dają większą swobodę użytkownikowi końcowemu. Mając zastosowanie wyłącznie do formularza, pozwalają one posiadającemu odpowiednią wiedzę użytkownikowi końcowemu na dokonywanie własnych modyfikacji przy pomocy konsoli.

Różnica między jednym a drugim podejściem sprowadza się więc w głównej mierze do kwestii zachowania większej kontroli i bezpieczeństwa. W przypadku wrażliwych danych zaleca się korzystanie z reguł biznesowych, zaś w przypadkach gdy bezpieczeństwo danych nie jest sprawą pierwszorzędną, a kwestią podstawową jest przykładowo ogólnie pojęte doświadczenie użytkownika, warto skorzystać z reguł formularza.

 

Przykład 1: sumowanie wartości z atrybutów

W omawianym przykładzie formularz aplikacji zawiera trzy atrybuty typu „Liczba zmiennoprzecinkowa”. Dwa z nich („Pole 1” i „Pole 2”) służą do wprowadzania wartości liczbowych, a trzeci („Suma”) do ich sumowania.

Okno przykładowego formularza

 

Aby zdefiniować regułę formularza wykonującą działanie arytmetyczne należy przejść do narzędzia Designer Studio i zaznaczyć interesujący atrybut, którego wartość będzie wykorzystywana w działaniu (w tym przypadku będzie to najpierw atrybut „Pole 1” – następnie całą czynność należy powtórzyć w przypadku atrybutu „Pole 2”). W oknie atrybutu otwórz zakładkę „Styl i zachowanie”, a następnie kliknij ikonę wielokropka w prawym górnym rogu pola „Reguła formularza wykonywana na zmianę wartości”. Otwarte zostanie okno „Edytora reguł”.

Otwieranie okna „Edytora reguł”

 

W edytorze reguł należy wprowadzić regułę wykorzystującą funkcję „SET”. W tym celu należy otworzyć zakładkę „Funkcje” i z węzła „Zachowanie” wybrać funkcję „SET”. Pozwala ona zmieniać wartość wskazanego atrybutu. W polu edycji można przystąpić do edycji reguły, uzupełniając odpowiednie pola wartościami pobieranymi ze wskazywanych atrybutów. Pierwsze wolne pole (bezpośrednio po słowie „SET”) należy uzupełnić atrybutem, w którym wstawiana będzie suma działania arytmetycznego (w przykładzie jest to atrybut „Suma”). Kolejne pole należy uzupełnić właściwym działaniem arytmetycznym. Aby to zrobić, wybierz najpierw pierwszy atrybut (w przykładzie jest to „Pole 1”), którego wartości będą dodawane, następnie wstaw znak działania arytmetycznego (w tym przypadku jest to „+”, ale może być to dowolna operacja arytmetyczna) i drugi atrybut (w przykładzie: „Pole 2”). W omawianym przypadku reguła ma postać wskazaną na poniższym zrzucie, warto jednak pamiętać, że liczba atrybutów w działaniu arytmetycznym może być większa niż dwa, a samo działanie może być bardziej skomplikowane.

Reguła wykonująca zdefiniowane działanie arytmetyczne

 

Po zakończeniu edycji reguły należy zapisać konfigurację klikając przycisk „Zapisz i publikuj proces” bądź ikonę „Zapisz wszystko”.

Aby sprawdzić działanie reguły, otwórz formularz zawierający wspomniane atrybuty w Portalu (atrybuty muszą być ustawione jako „Widoczne” na „Matrycy atrybutów”). Wpisanie dowolnej wartości w atrybucie „Pole 1” lub „Pole 2” powoduje przeniesienie jej do atrybutu „Suma”. Wpisanie wartości w obu polach powoduje ich zsumowanie.

Wynik działania arytmetycznego jest przenoszony do atrybutu „Suma”

 

Warto wspomnieć o dwóch dodatkowych kwestiach dotyczących konfigurowania samych atrybutów, tj. ustawieniach widoczności atrybutu „Suma” i możliwości umieszczania atrybutów w różnych zakładkach w formularza.

 

  • Atrybut w trybie „Tylko do odczytu (możliwość zmiany przez JavaScript)”

W opisywanym powyżej przykładzie atrybut „Suma”, w którym zapisywany jest wynik działania arytmetycznego, skonfigurowano na „Matrycy atrybutów” jako „Widoczny”. Ustawienie takie powoduje, że użytkownik końcowy może ręcznie modyfikować wynik działania. Aby temu zapobiec, atrybut taki można skonfigurować na „Matrycy atrybutów” jako „Tylko do odczytu (możliwość zmiany przez JavaScript)”. W ten sposób do atrybutu będzie przenoszony wyłącznie wynik działania arytmetycznego, a użytkownik końcowy nie będzie w stanie go modyfikować w żaden sposób.

Atrybut „Suma” w trybie „Tylko do odczytu (możliwość zmiany przez JavaScript)”

 

  • Umieszczanie atrybutów w zakładkach

W przypadku bardziej rozbudowanego formularza część atrybutów może być umieszczona w osobnej zakładce. Warto pamiętać, że nie wpływa to na działanie reguły, a wartości umieszczane w atrybutach znajdujących się w osobnych zakładkach mogą nadal być sumowane. Suma podobnie jak w opisywanym wcześniej przypadku zostanie przeniesiona do odpowiedniego, utworzonego w tym celu atrybutu.

W polu „Suma” (niebieska ramka) wstawiany jest wynik dodawania atrybutu „Pole 1” (czerwona ramka) i znajdującego się w odrębnej zakładce atrybutu „Pole 2” (czerwona ramka)

 

Przykład 2: przypadek biznesowy: wyliczanie stawki ubezpieczenia

W tym przykładzie aplikacja wykorzystywana jest przez firmę ubezpieczeniową do wyliczania stawki ubezpieczenia osoby wnioskującej o objęcie ją ochroną ubezpieczeniową. Do wyliczenia stawki ubezpieczenia branych jest pod uwagę szereg zmiennych określanych w poszczególnych atrybutach. Ostateczna kwota ubezpieczenia wyświetlana jest w atrybucie „Kwota ubezpieczenia” po wprowadzeniu wszystkich wymaganych danych.

 

  • Dobra praktyka tworzenia reguł używanych wielokrotnie

Przed przejściem do właściwej konfiguracji warto poczynić pewną dygresję dotyczącą dobrych praktyk tworzenia reguł. W przypadku bardzo rozbudowanych formularzy i skomplikowanych działań arytmetycznych, w których wykorzystywane są wartości z wielu atrybutów często zachodzi konieczność wstawiania tej samej reguły w wielu miejscach. Aby uniknąć konieczności tworzenia za każdym razem tej samej reguły od podstaw, warto tworzyć reguły w węźle „Reguły formularza” (drzewo wyboru → nazwa aplikacji → nazwa procesu → „Konfiguracja” → „Reguły formularza”), klikając przycisk „Nowa reguła” i tworząc ją w dostępnym w nowo otwartym oknie edytorze.

Węzeł „Reguły formularza” pozwala tworzyć i przechowywać reguły, które są wstawiane w wielu miejscach systemu

 

Innym sposobem zapisania reguły w węźle „Reguły formularza” jest utworzenie reguły w docelowym miejscu, np. wstawienie jej w polu „Reguła formularza wykonywane na zmianę wartości” (dostępnym w sekcji „Styl i zachowanie” atrybutu), a następnie kliknięcie jej prawym przyciskiem myszy i wybranie opcji „Stwórz regułę” z menu rozwijanego. Po wstawieniu nazwy i ewentualnego opisu w nowo otwartym oknie „Tworzenie reguły” i kliknięciu przycisku „OK” reguła taka jest zapisywana we wspomnianym węźle i może być wielokrotnie wykorzystywana.

Tworzenie reguły w edytorze reguł dostępnym z poziomu atrybutu

 

Aby wstawić następnie taką regułę, np. w atrybucie, wystarczy w oknie edytora reguł wpisać jej nazwę i wybrać ją z listy rozwijanej. Reguła jest wstawiana w postaci jasnozielonego kafelka z nazwą wpisaną w jego wnętrzu.

Ogromną zaletą takiego podejścia do tworzenia i wstawiania reguł jest krótszy czas ich wstawiania, ale nie tylko: zmiana zapisanej reguły automatycznie ma zastosowanie do wszystkich miejsc, w których została ona wstawiona. Oznacza to, że nie ma konieczności ewentualnej zmiany w regule w każdym jej wystąpieniu, co jest konieczne w przypadku przepisywania całej reguły za każdym razem.

 

  • Konfiguracja

Utworzono prosty proces zawierający dwuetapowy obieg. Formularz wykorzystywany w obiegu zawiera szereg atrybutów gromadzących dane na temat osoby wnioskującej o ubezpieczenie samochodu. Dane pogrupowano w trzech zakładkach: „Dane właściciela pojazdu”, „Dane pojazdu” i „Dane liczbowe”. Pierwsze dwie zakładki służą do gromadzenia danych od wnioskującego, trzecia zakładka uzupełniana jest automatycznie za pomocą reguł przeliczających wcześniej zebrane dane. Na potrzeby prezentacji przypadku ostatnią wspomnianą zakładkę i wszystkie atrybuty w niej zawarte pokazano na formularzu, ale warto mieć na uwadze, że mogłyby być ustawione jako niewidoczne lub jako atrybuty techniczne niepotrzebne użytkownikowi w zgłoszeniu.

Formularz zgłoszeniowy dla wniosku o ubezpieczenie samochodu

 

  • Konfiguracja atrybutów w zakładce „Dane liczbowe”

Zważywszy, że kwestia reguł nie jest jako taka tematem niniejszego artykułu, sposób przekazywania danych do zakładki „Dane liczbowe” opisano poniżej jedynie pobieżnie, aby dać czytelnikowi ogólne pojęcie, jakie dane i w jakim przypadku zostaną uwzględnione w ostatecznej regule zawierającej przedmiotowe działanie arytmetyczne.

[Wszystkie opisywane poniżej reguły wstawiano w polu „Reguła formularza wykonywana na zmianę wartości” (nazwa atrybutu → zakładka „Styl i zachowanie” → pole „Reguła formularza wykonywana na zmianę wartości”)].

  • Atrybuty „Wiek”, „Doświadczenie w latach” i „Wiek pojazdu” są uzupełniane danymi liczbowymi (atrybuty typu „Liczba zmiennoprzecinkowa”) po wstawieniu dat w odpowiednio atrybutach „Data urodzenia”, „Data pierwszego wydania prawa jazdy” i „Data produkcji” (atrybuty „Data i godzina”). Do przeliczania dat na lata użyto reguły formularza zawierającej funkcję „DATE DIFF”. Funkcję tę wstawiono wewnątrz funkcji „SET” wstawiającej dane do wskazanego w niej atrybutu.

Reguła z funkcją „SET” i wstawioną wewnątrz niej funkcją „DATE DIFF”. Pierwsza ustawia wartość atrybutu, druga przelicza datę na liczbę lat

 

  • Wartości zawarte w atrybutach „Dodatkowe ryzyko, jeżeli < 26 lat”, „Zniżka za doświadczenie” i „Udział w zdarzeniu drogowym” są uwzględniane w ostatecznym działaniu arytmetycznym warunkowo (warunek określono w samej regule, w której wstawione jest wspomniane działanie). Aby jednak zwrócić uwagę na to, które wartości zostaną uwzględnione w działaniu arytmetycznym, zastosowano regułę z funkcją „SET CONTROL BACKGROUND” wyróżniającą w takim przypadku odpowiedni atrybut kolorową ramką. Regułę tę wstawiono odpowiednio w atrybutach: „Data urodzenia”, „Data pierwszego wydania prawa jazdy” i „Uczestnik zdarzenia w ruchu drogowym?”.

Przykład zastosowania funkcji „SET CONTROL BACKGROUND” w atrybucie „Data urodzenia”

 

  • Atrybut „Stawka podstawowa” to atrybut z domyślnie wypełnioną wartością (300). Jest to wartość podstawowa każdej polisy ubezpieczeniowej bez uwzględnienia jakichkolwiek zmiennych.
  • Konfiguracja reguły zawierającej działanie arytmetyczne

Regułę formularza zawierającą działanie arytmetyczne wyliczające ostateczną kwotę ubezpieczenia zapisano w węźle „Reguły formularza” pod nazwą „Działanie arytmetyczne”. Oprócz działań arytmetycznych, w regule użyto dwóch funkcji:

  • „SET” – ustawia wartość wskazanego atrybutu.
  • „IF THEN” – funkcja wprowadzająca warunkowy wybór określonej wartości.

Działanie obu funkcji opisano szczegółowo w artykule: https://kb.webcon.pl/slownik-funkcji-dla-regul-biznesowych-i-regul-formularza/

Utworzona reguła ma postać przedstawioną na poniższym zrzucie:

Reguła wyliczająca kwotę ubezpieczenia

 

Funkcja „SET” otwiera w tym przypadku regułę i wskazuje atrybut, którego wartość będzie zmieniana za jej pomocą, tj. „Kwota ubezpieczenia”.

Wartość atrybutu „Stawka podstawowa” (300) jest wartością stałą, uwzględnianą zawsze w kwocie ubezpieczenia. Do wartości tej dodawana jest wartość wynikająca z wieku pojazdu – każdy rok pojazdu mnożony jest przez liczbę 10. Obie wspomniane wartości („[Stawka podstawowa]” i „[wiek pojazdu] * [10]”) są uwzględniane bezwarunkowo i zawsze.

Kolejnymi składowymi reguły i działania arytmetycznego są wyrażenia warunkowe wprowadzane funkcją „IF THEN”. Warunki te opisano poniżej:

  • do wspomnianej powyżej kwoty [stawka podstawowa + (wiek pojazdu * 10)] doliczane jest 5%, jeżeli osoba wnioskująca nie ukończyła 26. roku życia,
  • do kwoty [stawka podstawowa + (wiek pojazdu * 10)] doliczane jest 6%, jeżeli osoba wnioskująca była uczestnikiem zdarzenia drogowego (brała udział w wypadku);
  • od kwoty [stawka podstawowa + (wiek pojazdu * 10)] odliczane jest 10%, jeżeli osoba wnioskująca posiada prawo jazdy od ponad 5 lat.

Tak skonfigurowaną regułę/działanie arytmetyczne wstawiono w czterech atrybutach (zakładka „Styl i zachowanie” → pole „Reguła formularza wykonywana na zmianę wartości”), których zmiana przez użytkownika może wpłynąć na zmianę kwoty ubezpieczenia, tj.  „Data urodzenia”, „Data pierwszego wydania prawa jazdy”, „Uczestnik zdarzenia w ruchu drogowym” i „Data produkcji”. Uwzględnienie reguły we wszystkich tych atrybutach jest konieczne, aby prezentowana kwota ubezpieczenia była stale aktualizowana po zmianie jakiekolwiek z istotnych wartości, np. po skorygowaniu błędnie wprowadzonej daty urodzenia.

Po zakończeniu powyższych czynności nową konfigurację zapisano za pomocą przycisku „Zapisz i publikuj proces” (możliwe jest także naciśnięcie przycisku „Zapisz wszystko).

 

  • Działanie reguły/operacji arytmetycznej w praktyce

Po zakończeniu powyższych czynności należy otworzyć odpowiedni formularz zgłoszeniowy w Portalu.

W prezentowanym przypadku zgłoszenia dokonuje osoba urodzona w roku 1998 r., a więc poniżej 26. roku życia (w działaniu uwzględniana wartość atrybutu „Dodatkowe ryzyko, jeżeli < 26 lat”), posiadająca prawo jazdy od 2016 r. (uwzględniana wartość atrybutu „Zniżka za doświadczenie”) i uczestnicząca w przeszłości w zdarzeniu w ruchu drogowym (uwzględniana wartość atrybutu „Udział w zdarzeniu drogowym”). Ubezpieczany pojazd został wyprodukowany 22 marca 2015 r. (wiek pojazdu to 7 lat). Dla osoby takiej wyliczona kwota ubezpieczenia wynosi 373,70 PLN.

Formularz z wyliczoną kwotą ubezpieczenia i wyróżnionymi kolorową ramką zmiennymi mającymi zastosowanie

 

Podsumowanie

Możliwość używania reguł do tworzenia działań arytmetycznych to bardzo użyteczna funkcjonalność pozwalająca konfigurować atrybuty formularza w taki sposób, aby przeliczały wprowadzane wartości. Umiejętnie zaprojektowany formularz i poprawnie skonfigurowane działanie arytmetyczne mogą zapewnić użytkownikowi końcowemu łatwy i szybki dostęp do informacji wyliczanych dynamicznie na podstawie wprowadzanych przez niego danych.