Posts Tagged ‘pętla’

h1

Proces nieskończony

Sierpień 11, 2018

Jadąc ostatnio autobusem komunikacji miejskiej, chciałem przy wejściu „odbić” kartę. Karta ta musi zostać przyłożona do czytnika w momencie, gdy nie ma się wykupionego biletu długookresowego a korzysta się z mechanizmu tzw. portmonetki. Zamiast poprawnie naliczonej opłaty zobaczyłem pomarańczowy ekran z błędem. Na szczęście drugi czytnik działał poprawnie.

Po zajęciu miejsca, akurat z dobrym widokiem na czytnik, zauważyłem, że na ekranie jest odliczany czas. Potem następował restart aplikacji, wyświetlenie „poprawnego” ekranu czytnika, informację o błędzie komunikacji i ponownie pomarańczowy ekran. A potem po minucie, znów restart i wszystko zaczynało się od początku. I tak w nieskończoność (tak mi się zdawało). Prezentuje to poniższy diagram w BPMN.

petla_1_kadr

Na powyższym diagramie zaprezentowano typ obiektu BPMN określanego jako podproces (ang. subprocess, co jest oznaczone znakiem „+”) z oznaczeniem wykonywania go w pętli (ang. loop subprocess). Jego charakter wykonywania w pętli jest oznaczony symbolem strzałki (w kształcie okręgu) a same szczegóły działania są opisane na diagramie. W dolnej części diagramu wskazano części składowe tego podprocesu.

Wydaje się, że po określonej liczbie restartów czytnik mógłby się zatrzymać i wyświetlić ekran z błędem i prośbą o skorzystanie z innego czytnika lub mógłby się wyłączyć do momentu ręcznej ingerencji przez operatora (np. na pętli autobusowej). W takiej sytuacji potrzebne byłoby wskazanie liczby powtórzeń oraz obsługi sytuacji, gdy po określonej liczbie powtórzeń efekt procesu nie jest zgodny z oczekiwaniami.

Specjalnie na diagramie zostawiłem oznaczenie błędu (czerwony symbol z „x”) przy obiekcie podprocesu pochodzące z aplikacji, w której go rysowałem. Aplikacja wskazała mi, że nie określiłem poprawnego warunku zakończenia pętli, co zrobiłem świadomie, aby zobrazować, że opisywany proces w rzeczywistości się nie kończył – nie miał np. warunku na liczbę wykonywanych powtórzeń w sytuacji, gdy zdarzenie początkowe pojawia się za każdym razem (np. błąd komunikacji).

Reklamy
h1

Reguła biznesowa w pętli

Czerwiec 9, 2013

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.