Reguła biznesowa w pętli

W poprzednim wpisie dotyczącym prezentacji pętli w BPMN, wskazałem, że w taki sposób przedstawiona pętla jest nieskończona. Brak połączenia lub zerwane połączenie powoduje powtórzenie czynności. Zabezpieczeniem przed nieskończonym wykonywaniem czynności jest wprowadzenie kroku, który ma sprawdzić:

  • jaki jest status ostatniego działania,
  • ile razy wystąpiła taka sytuacja,
  • ile biznesowo razy dopuszczalne jest powtórzenie czynności,
  • jaka powinna być kolejna czynność.

 

callcenter450c

Powyższe elementy przekładają się na regułę biznesową, która na podstawie zainstniałych warunków (status operacji, liczba wystąpień, ograniczenie biznesowe) określa kolejne działanie – Powtórzenie działań lub zakończenie procesu. Taką sytuację przedstawia powyższy diagram w BPMN. Między wskazaniem zdarzeń a kolejnym krokiem, został dodany krok reguła biznesowa (ang. business rule task) o nazwie Określ działanie.

W kroku Powtórz działania powinien być odnotowywany historyczny status a zerowany bieżący, ponieważ bez tego proces nie wejdzie nigdy w ścieżkę dzwonienia do odbiorcy. Równocześnie może podbijać licznik wystąpienia statusu w danej kampanii. Decyzją biznesową można zmienić zapisy reguły biznesowej (wartości graniczne) bez konieczności zmiany procesu. Można też wskazać, że nigdy nie jest powtarzane wybieranie numeru.

Zadanie: Reguła biznesowa

W artykule „A New Information Systems Paradigm: What does a Business Analyst Needs to Know?” na ModernAnalyst.com autorzy przybliżają czytelnikom serwisu ewolucję systemów informacyjnych i sposobu ich tworzenia. Przechodzą od prostych rozwiązań, wymagających więdzy po stronie szeroko pojętego biznesu nt. choćby tworzenia zapytań SQL, aż do rozwiązań nowoczesnych, rozbudowanych z implementacją systemów klasy workflow, wspartych silnikami baz danych i nie tylko.

Jednym z elementów, które poruszają, jest zarządzanie regułami biznesowymi i tworzenie systemów wspierających ich definiowanie, przechowywanie oraz wykonywanie. Tzw. BRMS (Business Rules Management System, czyli System Zarządzania Regułami Biznesowymi) są nieodłącznym elementem tworzonych systemów. Powstają one trochę przez analogię do wspomnianych jakiś czas temu przeze mnie BPMS (Business Process Management System, czyli System Zarządzania Procesami Biznesowymi) czy DBMS (Data Base Management System, czyli System Zarządzania Bazą Danych).
Załóżmy, że mamy następującą regułę biznesową, wykorzystywaną w korespondencji wysyłanej z systemu:

  • Płeć: mężczyzna → powitanie: Pan;
  • Płeć: kobieta oraz Stan: mężatka → powitanie: Pani;
  • Płeć: kobieta oraz Stan: wolny → powitanie: Panna;

Reguła jest bardzo prosta i to co się rzuca w oczy, w przypadku pierwszej reguły, stan cywilny nie ma znczenia. Powyższą regułę można byłoby w łatwy sposób zapis w bazie danych – jako 3 wiersze, z 3 atrybutami.

Powyższy artykuł przypomina, że w celi opisu takich reguł powstawała Decision Model Notation (DMN) – notarcja modeli decyzyjnych. Artykuł nie rozwija tego tematu, ale w Internecie można znaleźć informacje. W szczególności na stronach brcommunity.com wskazują, że definiowanie reguł jest związane z ich wielokrotnym użytkowaniem. Jest to silne wsparcie dla osób projektujących proces, za pomocą notacji BPMN 2.0, gdzie została przygotowana opcja „BusinessRuleTask”. Służy ona do wołania o wynik poszczególnych reguł. Od notacji BPMN można przejść do postaci wykonawczej poprzez zastosowanie BPML. Przykład zastosowanie tego typu zadania – BusinessRuleTask- został wskazany na powyższym diagramie BPMN. Zadania tego typu oznaczane są przez symbol pogrubionej „tabelki”.

W biznesie można spotkać się z dwoma typami reguł biznesowych – reguły ogólne, mające zastosowanie do wielu procesów, mających miejsce w różnych miejscach orgranizacji oraz reguły szczególne, wykorzystywane w danym procesie biznesowym. Opis reguł biznesowych jest ważnym elementem, który pozwala na zrozumienie działania procesu oraz okoliczności jego wykonania. Często są to tabele lub diagramy drzewiaste ze względu na różnorodnosć powiązań. Samo wykonanie reguł biznesowych może zostać zaimplementowane w różnych sposób – może to być np. tabela bazy danych, na której wykonywane są zapytania SQL a wynikiem jest wynik reguły. Na konferencjach często można usłyszeć w jaki sposób implementować reguły i w jakich sytuacjach. Równocześnie zwracana jest uwaga, aby sposób ich definiowania i przechowywania pozwalał na ich późniejsze aktualizowanie bez konieczności zmiany systemu odwołującego się.

Automatyczne reguły oparte o wzorce

Automatyczna odpowiedź: Potwierdzenie otrzymania wiadomości. Państwa wiadomość została przekazana do właściwego pracownika […] ”, a dalej podpis i informacja „Wiadomość została wygenerowana automatycznie, prosimy na nią nie odpowiadać.”. Takiego maila otrzymałem w odpowiedzi na wiadomość skierowaną do podmiotu gospodarczego, wskazując w tytule numer sprawy. Nie otrzymałem jeszcze odpowiedzi na to zgłoszenie. Jednak mogę sobie wyobrazić co się stało na poziomie skrzynki odbiorczej. Mechanizm obsługujący, pobrał tytuł wiadomości, sprawdził do kogo powinna trafić sprawa, a potem wysłał maila z powyższą odpowiedzią. Poniższy diagram w BPMN prezentuje przebieg takiego procesu automatycznego.

buss_rule_1_450px

Na diagramie znajduje się tym zadania „reguła biznesowa” (ang. business rule task), o której pisałem już kilkakrotnie, obrazując ją różnymi przykładami oraz zastosowaniami. W ramach tego kroku następuje próba odnalezienia osoby przyporządkowanej do określonych sformułowań lub numerów użytych w tytule. Mogą to być poszukiwania dokładnego odpowiednika lub zakresów wartości (wzorca). z uwzględnieniem ewentualnych określeń poprzedzających lub następujących po poszukiwanym fragmencie. Reguła może też przewidywać, że inne przypadki są przesyłane do ręcznego przyporządkowania. Reguły mogłyby także zakładać priorytety sprawdzania.

Fragment tytułu (wzorzec) – przykłady Przyporządkowanie
[NR SPRAWY] 2018/06/1* Osoba X
[NR SPRAWY] 2018/06/0* Osoba Y
[NR SPRAWY] 2017/* Skrzynka ogólna
….  
*PRODUKT A* Zespół A
*PRODUKT B* Zespół B
 
*PRODUKT N* Zespół N
RE/ODP:*   Pierwotny nadawca
(lub osoba zastępująca)
brak przyporządkowania Skrzynka ogólna

Wartości graniczne

Prawie 3 lata temu napisałem na blogu wpis dotyczący karty aglomeracyjnej, a w szczególności sposobu naliczania opłat na niej. Osatnio zauważyłem, że obowiązuje zasada, że jeżeli jednego dnia, nastąpi naliczenie opłat w wysokości opłaty za bilet 24-godzinny, naliczanie opłat zostaje wstrzymane. Na poniższym diagramie, pochodzącym z pierwotnego wpisu, zostało dodane rozszerzenie, które obsługuje to ograniczenie w procesie. Ta cena biletu 24-godzinnego (oznaczenie CB24G) jest „górną” wartością graniczną stosowaną w tym procesie. Jest to moja próba przykładowego zobrazowania procesu – nie sprawdzałem jak dokładnie przebiega ten proces w rzeczywistości.

W ramach kroku naliczenie opłaty, następuje sprawdzenie jaką kwotę dotychczas pobrano za przejazdy oraz czy te opłaty dotyczą danego dnia (lub inaczej zdefiniowanego okresu). Jeżeli przekroczono kwotę, jest ona ustalana na cenę biletu 24-godzinnego (CB24G). Przy następnym przebiegu, następuje sprawdzenie okresu, który został opłacony (do końca doby) i jeżeli został przekroczony, naliczanie opłaty rozpoczyna się od początku.

konto2v450px

Wiele procesów ma wbudowane wartości graniczne dolne lub górne. Inne zastosowanie wartości granicznej można zauważyć w procesie sprzedaży w internecie, gdy proces wyboru opłaty za dostawę jest wyłączany w momencie obsługi koszyka o wartości wyższej niż pewna umowna wartość. Można sobie też wyobrazić proces sprzedaży, gdy transakcja jest realizowana dopiero od wybrania X sztuk produktów. W księgarni internetowej można teoretycznie spotkać rozwiązanie, że przy określonej liczbie książek w koszyku, można wybrać dodatkową książkę taniej.

W podanych przykładach wartość graniczna jest używana na bramce do włączenia lub wyłączenia pewnej części procesu/ścieżki. Takie działanie może być korzystne dla Klienta procesu lub nie. Wynika z przejętego modelu biznesowego, a w szczególności kosztów obsługi danego procesu.

Wartości graniczne mogą też być stosowane w regułach biznesowych czy pętlach.