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ść.
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.
zdarzenie „z zegarkiem” nie oznacza „czekania” a „moment” w czasie , jest zdarzeniem pośrednim w procesie (token do niego musi jakoś dojść) a tu jest troszkę urwane z choinki…do tego jeżeli sterowanie (strzałki przepływu) dochodzą do czynności bez żadnej brami to jest to równoznaczne z logiką XOR więc powyższy przypadek oznacza, że Akcja=powtórz wykona się natychmiast bez czekania na cokolwiek…
Zgodnie z publikacjami może oznaczać oczekiwanie przez pewien czas jak i do pewnego momentu. Zgadzam się jednak, że powinno być: reguła biznesowa, time intermediate event, a następnie powtórz działania. Wtedy efekt byłby zgodny z oczekiwaniem.
„Zgodnie z publikacjami może oznaczać oczekiwanie przez pewien czas”, nie wiem jakie publikacje, ale „zdarzenie” to fakt, coś co nie trwa w czasie (semantyka BPMN). Takie zdarzenie może oznaczać „12:00 każdego dnia” albo „upłynęło 30 min od XXX” i kluczem jest tu wtedy XXX…
Zdarzeniem jest to, że upłynął jakiś czas od momentu określenia kolejnej czynności. Np. Oracle podaje przykład: gdy aktualizujesz kilka baz danych z procesu, odczekaj kilka minut, aby mieć pewność, że się zakończyły przed kontynuacją procesu. I do tego proponuje Timer event skonfigurowany jako cycle. Pewnie czas będzie liczony od wysłania ostatniej transakcji. Czytając proces wszystko jest jasne. I w moim przykładzie, zakończyła się reguła biznesowa i po czasie czas zakończenia + 24 godziny, czynność zostanie powtórzona.
co powoduje, ze zaczynami liczyć ten czas (jaka droga token dociera do zdarzenia Odczekaj danych okres (zgodnie z dokumentacją BPMN powinno być „upłynął dany okres”)