Zdarzenie graniczne
Czym jest zdarzenie graniczne
Zdarzenie graniczne BPMN 2.0 to pośrednie zdarzenie przechwytujące dołączone do krawędzi aktywności. Podczas jej wykonywania oczekuje na określony sygnał, na przykład upływ terminu, wiadomość, błąd, sygnał lub zmianę danych. Gdy sygnał wystąpi, zdarzenie otwiera ścieżkę wychodzącą z aktywności.
- Zawsze znajduje się na krawędzi zadania, podprocesu, transakcji lub Call Activity. Nie można dołączyć go do zdarzenia ani bramki, nie może też pozostawać poza przebiegiem procesu.
- Ma wychodzące Sequence Flow, ale nie ma przychodzącego: jedynym punktem wejścia jest aktywność, do której zostało dołączone.
- Oczekuje na sygnał tylko wtedy, gdy aktywność jest aktywna. Jeśli aktywność zakończy się wcześniej, zdarzenie graniczne nie zostanie uruchomione. Wyjątkiem jest Compensation: zostaje uzbrojone po zakończeniu aktywności.
- Gdy sygnał wystąpi, token przechodzi przez wychodzący Sequence Flow zdarzenia granicznego. Zdarzenie przerywające zastępuje token aktywności, a nieprzerywające dodaje obok niego kolejny token.
- W notacji zdarzenie jest przedstawiane jako podwójny okrąg na krawędzi aktywności, z symbolem wyzwalacza wewnątrz.
ProcessMind obsługuje zdarzenia graniczne wszystkich typów wymienionych na tej stronie. Przeciągnij zdarzenie z grupy Zdarzenie graniczne lub Zdarzenie graniczne bez interakcji. w palecie Elementy BPMN na krawędź aktywności, aby je dołączyć. Można też przeciągnąć istniejące pośrednie zdarzenie przechwytujące na krawędź aktywności. Przeciągnięcie go z powrotem poza krawędź odłącza je. Dołączenie i ustawienie przerywania są zachowywane podczas eksportu i ponownego importu BPMN.
Zdarzenia przerywające i nieprzerywające
Zdarzenia graniczne występują w dwóch wariantach. To, który wariant zostanie użyty, decyduje o tym, co stanie się z aktywnością po wystąpieniu sygnału.
| Przerywające | Nieprzerywające | |
|---|---|---|
| Wygląd | Podwójny ciągły okrąg | Podwójny przerywany okrąg |
| Wpływ na aktywność | Natychmiast anulowana; praca w jej ramach zostaje przerwana | Działa dalej; nic nie zostaje anulowane |
| Ścieżki po wystąpieniu sygnału | Tylko ścieżka zdarzenia granicznego; zwykły wychodzący Sequence Flow aktywności nie jest używany | Obie: zwykła ścieżka jest kontynuowana, a ścieżka zdarzenia granicznego przebiega równolegle |
| Częstotliwość uruchamiania | Raz; po wystąpieniu sygnału aktywność zostaje zakończona | Wielokrotnie, dopóki aktywność pozostaje aktywna, na przykład przy każdym cyklu powtarzającego się timera |
| Atrybut BPMN | cancelActivity="true" | cancelActivity="false" |
Przerywające zdarzenie graniczne zastępuje zwykłą kontynuację aktywności. Nieprzerywające zdarzenie graniczne rozpoczyna odgałęzienie od tej aktywności.
Zdarzenie przerywające należy wybrać, gdy jego wystąpienie sprawia, że dalsze wykonywanie aktywności nie ma sensu lub jest niebezpieczne, na przykład po przekroczeniu terminu, wystąpieniu błędu albo wycofaniu. Zdarzenie nieprzerywające sprawdzi się, gdy potrzebna jest dodatkowa praca równolegle z aktywnością albo przypomnienie lub powiadomienie, które nie powinno przerywać wykonywanej pracy.
Oba rodzaje zdarzeń mają zastosowanie tylko wtedy, gdy aktywność jest w toku. Zdarzenie przerywające anuluje aktywność, a wraz z nią dezaktywuje pozostałe zdarzenia graniczne tej aktywności. Zdarzenie nieprzerywające pozostawia aktywność i pozostałe zdarzenia graniczne bez zmian.
Jedna aktywność, kilka zdarzeń granicznych. Do jednej aktywności można przypisać kilka zdarzeń granicznych. Przykładowy zestaw dla zadania zatwierdzania:
- Przerywający Timer po dwóch dniach roboczych: eskalacja i zakończenie zadania.
- Nieprzerywający Timer co cztery godziny: wysłanie przypomnienia bez przerywania zadania.
- Przerywający Error w Subprocess wykonującym właściwą kontrolę: obsługa błędu technicznego.
Rodzaje zdarzeń granicznych
ProcessMind obsługuje poniższe rodzaje zdarzeń. Zdarzeń przerywających jest więcej, ponieważ niektóre wyzwalacze mają sens tylko wtedy, gdy zatrzymują aktywność.
Przerywające zdarzenia graniczne
| Typ | Znaczenie | Typowy przykład |
|---|---|---|
| Message | Oczekuje na konkretną wiadomość skierowaną do tej aktywności. | Aktywność „Oczekiwanie na ofertę dostawcy” zostaje przerwana przez wiadomość „oferta wycofana”, a proces przechodzi do „Wybór innego dostawcy”. |
| Timer | Termin: czas trwania, data lub cykl liczony od rozpoczęcia aktywności. | Dla „Zatwierdź wydatek” ustawiono Timer na dwa dni. Jeśli zadanie nie zostanie ukończone, case przechodzi do „Eskalacja do kierownika finansowego”. |
| Error | Przechwytuje błąd zgłoszony wewnątrz aktywności i ją zatrzymuje. Zdarzenia graniczne Error zawsze przerywają aktywność. | Subprocess „Sprawdzenie zdolności kredytowej” zgłasza „kontrola nie powiodła się”. Ścieżka zdarzenia granicznego prowadzi do „Zlecenie ręcznej oceny ryzyka”. |
| Escalation | Zatrzymuje aktywność, gdy musi ją przejąć osoba na wyższym szczeblu. | „Rozwiąż incydent” zostaje poddane eskalacji po przekroczeniu czasu pierwszej reakcji, a proces przechodzi do „Przejęcie sprawy przez koordynatora incydentu”. |
| Anuluj | Przechwytuje zdarzenie końcowe Cancel w Subprocess typu Transaction. Można go użyć tylko w Transaction. | Klient anuluje Transaction „Rezerwacja podróży”. Ścieżka zdarzenia granicznego prowadzi do „Zwrot płatności i anulowanie rezerwacji”. |
| Compensation (przypadek szczególny) | Uruchamia obsługę Compensation dla zakończonej aktywności, aby cofnąć jej skutek. Nie anuluje pracy w toku. | „Pobranie zaliczki” zostaje cofnięte przez „Zwrot zaliczki”, gdy później w procesie zamówienie zostanie anulowane. |
| Conditional | Uruchamia się, gdy podczas wykonywania aktywności zostaje spełniony warunek biznesowy. | „Rezerwacja towaru” zostaje przerwana, gdy availableStock < orderedQuantity; case przechodzi do „Oczekiwanie na dostawę i powiadomienie klienta”. |
| Signal | Przechwytuje sygnał rozgłoszeniowy. Sygnał nie jest skierowany do jednej aktywności, więc może na niego zareagować każdy pasujący odbiorca. | „Zebranie brakujących dokumentów” zostaje przerwane przez sygnał firmowy „sprawa wycofana”, a case zostaje zamknięty. |
| Multiple | Uruchamia się po wystąpieniu dowolnego z kilku wyzwalaczy. | „Oczekiwanie na odpowiedź klienta” reaguje na wiadomość „otrzymano odpowiedź” albo Timer ustawiony na dziesięć dni. Pierwszy wyzwalacz anuluje oczekiwanie. |
| Parallel Multiple | Uruchamia się dopiero po wystąpieniu wszystkich wyzwalaczy. | „Zebranie zgód na wydanie” czeka na wiadomość o zgodzie działu prawnego i wiadomość o zgodzie działu bezpieczeństwa, zanim proces będzie kontynuowany. |
Warto pamiętać o kilku zasadach dotyczących tej grupy:
- Błąd należy przypisać do Subprocess, Call Activity lub Transaction, czyli aktywności, w której rzeczywiście może wystąpić błąd. Zwykłe Task nie zawiera elementów, które mogłyby ulec awarii.
- Anuluj należy przypisać do podprocesu transakcji. W innym miejscu nie ma zdarzenia, które mogłoby przechwycić.
- Wynagrodzenie to przypadek szczególny. Zdarzenie zostaje uzbrojone po zakończeniu aktywności i wyzwala je zdarzenie rzucające kompensację w innym miejscu procesu. Modeluje „cofnij wykonaną już czynność”, a nie „zatrzymaj trwającą czynność”.
- Multiple oznacza wyścig między wyzwalaczami. Parallel Multiple działa jak bramka, która czeka na wszystkie wyzwalacze.
Nieprzerywające zdarzenia graniczne
| Typ | Znaczenie | Typowy przykład |
|---|---|---|
| Message | Wiadomość przychodzi, gdy aktywność jest nadal wykonywana, i rozpoczyna równoległą ścieżkę. | „Przygotowanie oferty” trwa nadal, gdy wiadomość „otrzymano uwagi recenzenta” uruchamia „Zapisanie uwag recenzenta”. |
| Timer | Przypomnienie lub okresowa kontrola, która nie zatrzymuje aktywności. | Dla „Obsługa zgłoszenia do pomocy technicznej” ustawiono powtarzający się Timer na osiem godzin. Uruchamia on „Wysłanie informacji o statusie”, a obsługa zgłoszenia trwa dalej. |
| Escalation | Uruchamia eskalację równolegle z aktywnością, nie kończąc jej. | „Rozpatrywanie reklamacji” trwa nadal, gdy eskalacja „klient strategiczny” uruchamia „Powiadomienie dyrektora ds. klienta”. |
| Conditional | Warunek uruchamia równoległą ścieżkę, a aktywność jest nadal wykonywana. | „Rozpatrywanie wniosku kredytowego” trwa nadal, gdy riskScore > 70 uruchamia „Oznaczenie do kontroli audytowej”. |
| Signal | Sygnał rozgłoszeniowy uruchamia równoległą ścieżkę dla każdego odbiorcy, a aktywność jest kontynuowana. | „Nocne przetwarzanie wsadowe” trwa nadal, gdy sygnał „zamknięcie rynku” uruchamia „Zapisanie stanu pośrednich sum”. |
| Multiple | Dowolny z kilku wyzwalaczy uruchamia równoległą ścieżkę, a aktywność jest kontynuowana. | „Negocjowanie umowy” pozostaje otwarte. Wiadomość od drugiej strony albo Timer ustawiony na trzy dni uruchamia „Wysłanie przypomnienia”. |
| Parallel Multiple | Wszystkie wyzwalacze łącznie uruchamiają równoległą ścieżkę, a aktywność jest kontynuowana. | „Oczekiwanie na wyniki wszystkich kontroli” pozostaje aktywne do otrzymania wiadomości i sygnału, po czym uruchamia „Zapisanie gotowości”. |
Nieprzerywające zdarzenia graniczne służą do obsługi przypomnień, powiadomień, obserwacji i równoległej eskalacji. Nie zmieniają głównego przepływu, lecz dodają do niego odgałęzienie.
Rodzaje zdarzeń, które nie są zdarzeniami granicznymi
Niektóre rodzaje zdarzeń mogą wyglądać jak zdarzenia graniczne, ale nimi nie są:
- Link łączy części przepływu. To pośrednie zdarzenie przechwytujące lub wyzwalające w sekwencji, a nie element przypisany do aktywności.
- Terminate kończy całą instancję procesu i występuje wyłącznie jako zdarzenie końcowe.
- Brak nie jest wyzwalaczem, dlatego zdarzenie graniczne nigdy nie może mieć typu „Brak”. Każde zdarzenie graniczne musi coś przechwytywać.
Dodawanie zdarzenia granicznego w ProcessMind
- Otwórz paletę Elementy BPMN.
- Wybierz typ z grupy Zdarzenie graniczne, aby dodać zdarzenie przerywające, albo z grupy Zdarzenie graniczne bez interakcji., aby dodać zdarzenie nieprzerywające.
- Przeciągnij je na krawędź Task, Subprocess, Transaction lub Call Activity.
- Upuść element. Zdarzenie przyciągnie się do najbliższej krawędzi, a aktywność stanie się jego elementem nadrzędnym.
- Narysuj Sequence Flow od zdarzenia granicznego do pierwszego kroku ścieżki wyjątku lub ścieżki równoległej.
Wskazówki dotyczące pracy ze zdarzeniami granicznymi:
- Upuszczenie zdarzenia pośredniego na krawędzi aktywności przypisuje je do niej. Upuszczenie tego samego zdarzenia na pustym obszarze diagramu tworzy zwykłe pośrednie zdarzenie przechwytujące. Później można przeciągnąć je na krawędź, aby je przypisać, albo poza krawędź, aby je odłączyć.
- Zdarzenie graniczne przesuwa się, ukrywa i usuwa razem z aktywnością, do której jest przypisane. Nie można umieścić go niezależnie od aktywności.
- Wersja nieprzerywająca jest osobną pozycją w palecie, a nie polem wyboru. Jeśli aktywność ma być kontynuowana, należy wybrać tę wersję przed przeciągnięciem.
- Podczas eksportu przypisanie jest zapisywane jako
attachedToRef, a ustawienie przerywania jakocancelActivity. Oba ustawienia zostaną odtworzone po ponownym zaimportowaniu pliku.
Częste błędy
- Zdarzenie graniczne bez wychodzącego przepływu. Przechwytuje wyzwalacz, ale nie ma dokąd przejść, więc ścieżka wyjątku kończy się ślepo.
- Nieprzerywający Timer, gdy potrzebne jest twarde zatrzymanie. Aktywność jest kontynuowana, więc upłynięcie terminu nie kończy pracy. W przypadku terminu należy użyć wersji przerywającej.
- Zdarzenie graniczne Error przypisane do zwykłego Task. Należy przypisać je do Subprocess lub Call Activity zawierającego krok, w którym może wystąpić błąd.
- Oczekiwanie, że zdarzenie graniczne uruchomi się po zakończeniu aktywności. Nie może się tak stać. Wyjątkiem jest Compensation, które zostaje uzbrojone po zakończeniu aktywności.
- Użycie Cancel poza Transaction. Zdarzenie graniczne Cancel jest przeznaczone wyłącznie dla Subprocess typu Transaction.
- Dodanie dwóch zdarzeń przerywających do jednej aktywności i oczekiwanie, że zostaną uruchomione obie ścieżki. Wygrywa pierwszy wyzwalacz. Aktywność i pozostałe zdarzenia graniczne zostają anulowane.
Wszystkie zdarzenia i odpowiadające im symbole
| Początkowe | Pośrednie | Końcowe | ||||||
|---|---|---|---|---|---|---|---|---|
| Type | Zwykłe | Podproces zdarzeniowy | Nieprzerywający podproces zdarzeniowy | Przechwytujące | Graniczne | Nieprzerywające graniczne | Rzucające | |
| Brak | | |||||||
| Message | | | | | | | | |
| Timer | | | | | | | ||
| Conditional | | | | | | | ||
| Link | | | | |||||
| Signal | | | | | | | | |
| Error | | | | |||||
| Escalation | | | | | | | ||
| Zakończenie | | |||||||
| Compensation | | | | | ||||
| Cancel | | | ||||||
| Wielokrotne | | | | | | | | |
| Wielokrotne równoległe | | | | | | | ||
Generowanie niestandardowego modelu BPMN
Powiązane tematy
- Zdarzenia: wszystkie rodzaje zdarzeń.
- Zdarzenie pośrednie: zdarzenia występujące w środku przepływu.
- Aktywności: zadania i Subprocess, do których można przypisać zdarzenie graniczne.
- Obsługiwane elementy BPMN: elementy importowane i eksportowane przez ProcessMind.
- BPMN 2.0: praktyczny przewodnik: notacja omówiona na przykładach.
Projektuj lepsze procesy. Buduj spójną architekturę. Zachowaj kontrolę.
Uzyskaj dostęp od razu, bez karty kredytowej i czekania. Przedstaw sposób działania organizacji w postaci przejrzystych, powiązanych modeli procesów.
Buduj architekturę procesów, określaj właścicieli i mechanizmy kontroli oraz uzgadniaj role i zakresy odpowiedzialności na każdym poziomie.
Rozpocznij okres próbny i stwórz solidną podstawę do nadzorowania, zarządzania i ciągłego doskonalenia procesów.