Data: 21.09.2022

Zdarzenia pośrednie w notacji BPMN

Notacja BPMN zdarzenia pośrednie

Spis treści

W artykule przedstawiam zdarzenia pośrednie używane w notacji BPMN do modelowania procesów biznesowych.

Oprócz zdarzeń pośrednich, model procesu biznesowego może obejmować jeszcze dwa inne rodzaje zdarzeń:

Specyfikacja BPMN nie narzuca obowiązku stosowania zdarzeń początkowych i końcowych. Ja ich używam, gdyż uważam, że poprawiają czytelność modelu.

Notacja BPMN zdarzenia pośrednie – rola zdarzeń pośrednich w modelach procesów

Zdarzenie pośrednie występuje pomiędzy początkiem a końcem procesu i często wprowadza ścieżki alternatywne przebiegu procesu.

Może być ono używane do zaznaczenia miejsc procesu, w których:

  • oczekujemy na komunikat lub wysyłamy komunikat w trakcie wykonywania procesu
  • spodziewamy się opóźnień
  • występuje zakłócenie normalnego przebiegu procesu biznesowego i należy użyć obsługi wyjątków
  • chcemy pokazać dodatkową pracę do wykonania w trakcie procesu

Miejsce zdarzeń pośrednich w procesie

Zdarzenia pośrednie mogą być:

  • umieszczone w normalnym przepływie procesu. Wówczas mogą być wykorzystane do odbioru (ang. catch) lub do wysyłki (ang. throw) wyzwalacza
  • dołączone do granicy (krawędzi) zadania. Wówczas mogą być wykorzystane tylko do odbioru wyzwalacza

Zdarzenie pośrednie może nie mieć żadnego wyzwalacza. Reprezentuje je wówczas tylko podwójna cienka linia ciągła.

Title

Zdarzenia bez wyzwalacza nie możemy dołączać do krawędzi zadania.

Wyzwalacze zdarzeń pośrednich

Zdarzenie pośrednie może mieć jeden z poniższych wyzwalaczy:

  • wiadomość (ang. message)
  • zegar (ang. timer)
  • eskalacja (ang. escalation)
  • błąd (ang. error)
  • anulowanie (ang. cancel)
  • kompensacja (ang. compensation)
  • warunkowe (ang. conditional)
  • łącze (ang. link)
  • sygnał (ang. signal)
  • wielokrotne (ang. multiple)
  • równoległe wielokrotne (ang. parallel multiple)

Każdy z w/w wyzwalaczy posiada swoją ikoną, za pomocą której jest oznaczany. Symbol wyzwalacza rysujemy w środku okręgu zdarzenia pośredniego.

Poniżej zestawienie wszystkich zdarzeń pośrednich wraz z ich wyzwalaczami.

Title

Zdarzenia pośrednie w normalnym przepływie procesu

W celu łatwiejszego zrozumienia modelu procesu, BPMN wprowadza koncepcję tokena (żetonu). Token tworzony jest np. w zdarzeniu początkowym i przemieszcza się po strzałkach sekwencji przepływu od zdarzenia początkowego do zdarzenia końcowego.

Kiedy token dotrze do zdarzenia pośredniego, które jest umieszczone w normalnym przebiegu procesu, wydarzy się jedna z dwóch sytuacji:

  • dla zdarzenia z wyzwalaczem w funkcji wysyłającej – wyzwalacz aktywuje zdarzenie i np. wiadomość zostanie wysłana. Token „popłynie” dalej wzdłuż przepływu sekwencji, która wychodzi ze zdarzenia
  • dla zdarzenia z wyzwalaczem w funkcji odbierającej – token czeka w miejscu zdarzenia dotąd, aż wyzwalacz zostanie uruchomiony np. przyjdzie wiadomość. Jak wyzwalacz zostanie uruchomiony token „popłynie” dalej wzdłuż przepływu sekwencji, która wychodzi ze zdarzenia.

Jeśli zdarzenie jest używane w normalnym przepływie procesu, musi mieć przepływy sekwencji: przychodzący i wychodzący. Wyjątkiem od tej reguły jest zdarzenie pośrednie z wyzwalaczem Łącze (Link), które nie może mieć jednocześnie przychodzącego i wychodzącego przepływu sekwencji.

Wiadomość w normalnym przebiegu procesu

Wyzwalacz Wiadomość w głównym przebiegu procesu używany jest do wysłania lub odbioru wiadomości.

Title

W poniższym przykładzie mamy proces zawierający:

  • basen reprezentujący sklep
  • dwa tory pływackie reprezentujące Dział Zamówień i Magazyn Sklepu
  • proces obsługi zamówienia z wykorzystaniem zdarzeń pośrednich wywoływanych wyzwalaczem komunikatu. Czarną kopertą oznaczamy przekazanie komunikatu z Działu Zamówień do Magazynu. Białą kopertą oznaczamy odbiór komunikatu.

Title

W procesie korzystamy z obiektów danych. Obiekt danych służy do naniesienia na model dodatkowych informacji. W przykładowym rysunku zaznaczamy, że faktura ma być w wersji papierowej.

Zegar w normalnym przebiegu procesu

Zegar w normalnym przebiegu procesu działa jak mechanizm opóźnienia. Mechanizm ten o określonym czasie, w konkretnej dacie lub w konkretnym cyklu wyzwala zdarzenie np. o godz. 9:00 automatycznie zostaną wysłane raporty, w każdy poniedziałek o 11:00 wysłane zostaną zaproszenia na spotkanie.

Zegar występuje tylko w funkcji odbierającej i oznaczamy go następująco:

Title

W przykładzie za pomocą Zegara oznaczamy następujące zdarzenia:

  • wysyłkę do klienta po 6 miesiącach przypomnienia serwisowego
  • sprawdzenie po 7 dniach od wysyłki, czy klient zgłosił się na serwis

Title

W przykładzie do czynności Wprowadzenie lub aktualizacja harmonogramu docierają dwie sekwencje przepływu. Który z żetonów spłynie do czynności pierwszy ten spowoduje aktywację czynności. Sytuacja taka określana jest jako przepływ niekontrolowany. Jeśli chcielibyśmy, aby przepływ w procesie był kontrolowany powinniśmy przed czynnością Wprowadzenie lub aktualizacja harmonogramu umieścić bramkę wykluczającą sterowaną danymi.

Więcej na temat bramek dowiesz się z artykułu BPMN bramki logiczne

Eskalacja w normalnym przebiegu procesu

Eskalacja w normalnym przebiegu procesu występuje w funkcji wysyłającej. Zdarzenia eskalacji są najczęściej używane do zaprezentowania przepływu komunikacji z podprocesu do procesu nadrzędnego. Oznaczamy je następująco:

Title

W przykładzie poniżej mamy proces z podprocesem rozwiniętym. W podprocesie eskalacja pojawia się w sytuacji, gdy nie zostanie wykonana aktualizacja bazy. Zdarzenie z wyzwalaczem Eskalacja umieszczone w granicy podprocesu przechwytuje zdarzenie eskalacji.

Title

Więcej informacji na temat podprocesów znajdziesz w artykule BPMN podprocesy

Kompensacja w normalnym przebiegu procesu

Zdarzenie pośrednie kompensacji wskazuje, że konieczna jest kompensacja np. zwrot pobranych pieniędzy.

Występuje ono w roli wysyłającej.

Title

Jeśli czynność jest zidentyfikowana i została zakończona z sukcesem, wówczas zostanie ona skompensowana. Czynność kompensowana musi być widoczna z poziomu zdarzenia pośredniego kompensacji tzn.:

  • zdarzenie pośrednie kompensacji musi być zawarte w normalnym przepływie procesu na tym samym poziomie, na którym jest czynność kompensowana
  • zdarzenie pośrednie kompensacji jest zawarte w podprocesie zdarzeniowym kompensacji, który jest zawarty w procesie lub podprocesie zawierającym czynność kompensowaną

Aby czynność mogła zostać skompensowana, musi być ukończona i zawierać w granicy zdarzenie pośrednie kompensacji lub zawierać zdarzeniowy podproces kompensacyjny (ang. Compensation Event Sub-Process).

Poniższy rysunek zawiera proces realizacji zamówienia, w którym rezerwujemy i opłacamy salę oraz catering. Jeśli rezerwacja zostanie anulowana, anulujemy rezerwację sali i cateringu oraz dokonujemy zwrotu opłat (kompensujemy dwie czynności Rezerwacja i opłacenie sali oraz Rezerwacja i opłacenie cateringu).

Title

W normalnym przebiegu procesu umieszczone jest zdarzenie pośrednie, które wysyła wyzwalacz Kompensacja. W krawędzi zadań Rezerwacja i opłacenie sali oraz Rezerwacja i opłacenie cateringu znajdują się zdarzenia pośrednie krawędziowe, które przechwytują wyzwalacz Kompensacji.

Ze zdarzenia kompensacji do zadania kompensującego prowadzi linia kropkowana. Na linii możemy umieścić strzałkę z oznaczeniem kierunku przepływu.

Warunek w normalnym przebiegu procesu

Zdarzenie warunkowe jest wyzwalane w momencie, gdy warunek stanie się prawdziwy np. jeśli temperatura w mieszkaniu osiągnie 25 stopni powinna włączyć się klimatyzacja.

Warunek w normalnym przebiegu procesu występuje w funkcji odbierającej wyzwalacz.

Title

Przykład procesu ze zdarzeniem pośrednim zawierającym wyzwalacz Warunek.

Title

Proces zawiera ikony uszczegóławiające zadania. Więcej informacji na temat zadań znajdziesz w artykule Notacja BPMN zadania

Łącze (link) to mechanizm łączący dwie sekcje procesu. Łącze używane jest w parach w roli wysyłającej i odbierającej.

Title

Zdarzenia wyzwalane za pomocą Łącza używane są tylko w normalnym przepływie procesu – nie możemy ich umieszczać w krawędzi wykonywanej czynności.

Możemy używać ich tylko na pojedynczym poziomie procesu – nie mogą one łączyć procesu nadrzędnego z podprocesem.

Linku możemy używać jako łączników procesu umieszczonego na więcej niż jednej stronie.

W poniższym przykładzie proces biznesowy drukujemy na dwóch stronach. W aplikacji MS Visio proces drukowany na dwóch stronach oznaczony Linkiem rysujemy w ramach jednej strony.

Strona 1, na której z czynności Zakup biletu przepływ sekwencji prowadzi do zdarzenia pośredniego z wyzwalaczem Łącze w funkcji wysyłającej.

Title

Strona 2, na której przepływ sekwencji prowadzi od zdarzenia pośredniego z wyzwalaczem Łącze w funkcji odbierającej do czynności Rezerwacja pokoju w hotelu.

Title

Zdarzeń pośrednich z wyzwalaczem Link możemy używać w ramach procesu, aby przejść od jednej czynności do drugiej bez konieczności rysowania długich linii przepływu sekwencji. Możemy użyć wielu zdarzeń pośrednich z wyzwalaczem Link w roli wysyłającej, ale tylko jednego zdarzenia z wyzwalaczem Link w roli odbierającej.

W poniższym przykładzie zamiast dwóch strzałek przepływu sekwencji używam dwóch linków, które prowadzą do czynności Zamknięcie zamówienia.

Title

Ten sam proces z narysowaną sekwencją przepływu zamiast zdarzeń pośrednich:

Title

Sygnał w normalnym przebiegu procesu

Sygnał służy do ogólnej komunikacji w obrębie procesu, pomiędzy poziomami procesów oraz między basenami i diagramami procesów. Oznaczamy go następująco:

Title

Sygnał w BPMN jest podobny do rozbłysku sygnałowego, który wystrzelił w niebo – każdy może go zobaczyć i zareagować na niego.

Sygnał posiada źródło ale nie ma konkretnego celu, nie jest kierowany do konkretnych osób. W normalnym przebiegu procesu sygnał może występować w roli odbierającej i wysyłającej.

W poniższym przykładzie Załoga statku wycieczkowego emituje informację o możliwości zwiedzania statku. Klienci zwiedzający port mogą usłyszeć informację i zareagować na nią.

Title

Zdarzenie złożone w normalnym przebiegu procesu

Zdarzenie złożone może być wywołane na kilka różnych sposobów. Może być ono wywołane przez wystąpienie jednego z wyzwalaczy lub przez wystąpienie wszystkich z nich. Oznaczamy je następująco:

Title

W poniższym przykładzie Zespół Analiz otrzymuje zlecenie przygotowania raportów. W trakcie trwania procesu może wystąpić jedno z poniższych zdarzeń lub obydwa z nich:

  • brak możliwości pobrania danych lub
  • nieprawidłowe dane w bazie

Jeśli któreś z tych zdarzeń wystąpi informowany jest o nim Zespół IT, który rozwiązuje problem.

Title

Zdarzenie złożone równoległe w głównym przebiegu procesu

Zdarzenie złożone równoległe wskazuje, że istnieje więcej niż jeden wyzwalacz zdarzenia. Oznaczamy je następująco:

Title

Do uruchomienia zdarzenia konieczne jest wystąpienie wszystkich wyzwalaczy.

W poniższym przykładzie wystąpić muszą dwa zdarzenia (Zaimportowane dane i ostatni dzień miesiąca), aby możliwe było wykonanie zadania Przygotowanie podsumowania sprzedaży.

Title

Zdarzenia pośrednie krawędziowe

Zdarzenia pośrednie krawędziowe to zdarzenia umieszczone w krawędzi zadania. W BPMN mamy do dyspozycji dwa rodzaje zdarzeń krawędziowych:

  • zdarzenia przerywające normalny przepływ procesu biznesowego – czynność wykonywana zostaje przerwana
  • zdarzenia nieprzerywające normalnego przepływu procesu – często w tej sytuacji dochodzą dodatkowe czynności do wykonania np. w trakcie procesowania przez bank wniosku kredytowego klient chce podwyższyć sumę kredytu i pracownik banku musi uzyskać dodatkową akceptację.

Jeśli zdarzenie jest dołączone do granicy czynności:

  • nie może mieć przychodzących przepływów sekwencji
  • musi mieć wychodzący przepływ sekwencji

Wiadomość w krawędzi zadania

Zdarzenia z wyzwalaczem Wiadomość umieszczone w krawędzi zadania mogą przerywać bieg procesu lub go nie przerywać.

Title

Wiadomość (komunikat) przychodzi od uczestnika procesu i wywołuje zdarzenie. Jeśli komunikat dołączony jest do granicy działania, po jego wyzwoleniu normalny przepływ procesu zostanie zmieniony w przepływ wyjątkowy (ang. exception flow).

W poniższym przykładzie Wiadomość dołączona jest do krawędzi czynności i przerywa ona główny bieg procesu. W trakcie rozpatrywania wniosku kredytowego wpływa pismo klienta z rezygnacją z pożyczki. Po jego nadejściu proces rozpatrywania wniosku kredytowego zostaje przerwany.

Title

W przykładzie poniżej Wiadomość zmienia przebieg procesu ale go nie przerywa. W trakcie procesowania zamówienia, wpływa od klienta prośba o zmianę adresu wysyłki. Jeśli zamówienie nie zostało wysłane, adres zostanie zmieniony i nastąpi wysłanie zamówienia.

Title

Zegar w krawędzi zadania

Zegar umieszczony w krawędzi zadania, podobnie jak Komunikat, może przerywać proces lub go nie przerywać. Oznaczamy go następująco:

Title

W poniższym przykładzie uruchomiona zostaje aktualizacja bazy. O godzinie 6:00 rano aktualizacja zostaje wstrzymana, jeśli nie jest jeszcze zakończona.

Title

W poniższym przykładzie otrzymujemy zlecenie aktualizacji raportów. Codziennie o godzinie 17:00 wpływają nowe raporty sprzedażowe. Jeśli o 17:00 proces aktualizacji trwa i w procesie wykonywane są dodatkowe zadania.

Title

Błąd w krawędzi zadania

Błąd występuje tylko w krawędzi czynności, nie występuje w głównym przepływie procesu. Oznaczamy go następująco:

Title

W poniższym przykładzie mamy proces wypłaty gotówki z bankomatu. W trakcie wprowadzania PIN pojawia się błąd działania bankomatu. Wypłata gotówki zostaje przerwana i następuje zwrot karty.

Title

Eskalacja w krawędzi zadania

Ten typ zdarzenia służy do obsługi eskalacji. Jeśli jest dołączony do granicy działania, przechwytuje eskalację. W przeciwieństwie do błędu, domyślnie zakłada się, że eskalacja nie przerywa czynności, do której jest dołączona. Mamy jednak możliwość użycia kształtu z przerywaną linią, który sygnalizuje, że eskalacja przerywa zadanie.

Oznaczamy ją następująco:

Title

W przykładzie, w podprocesie, sprawdzamy, czy zamówienie zostało wysłane w ciągu 24 godzin. Jeśli nie zostało wysłane, ścieżka procesu kończy się zdarzeniem końcowym eskalacji. Zdarzenie eskalacji jest przechwytywane przez zdarzenie pośrednie krawędziowe dołączone do granicy podprocesu i powoduje wykonanie dodatkowych czynności w procesie.

Title

Anulowanie w krawędzi zadania

Anulowanie używane jest w podprocesie transakcyjnym. Oznaczamy je następująco:

Title

Ten typ zdarzenia musi być dołączony do granicy podprocesu i zostać uruchomiony, jeśli w ramach podprocesu transakcyjnego token dotrze do zdarzenia końcowego Anulowanie.

Podproces transakcyjny oznaczamy prostokątem z cienką podwójną linią.

W poniższym przykładzie mamy podproces transakcyjny, w którym rezerwujemy wycieczki i hotel w ramach jednej transakcji. Jeśli wszystkie czynności w ramach transakcji zostaną wykonane poprawnie, token przechodzi do zadania „Wysłanie potwierdzenia rezerwacji”.

W trakcie realizacji zadań Rezerwacja hotelu i Rezerwacja wycieczek może wystąpić Błąd. W przypadku błędu wysłana zostaje informacja do działu IT oraz do klienta.

Title

Kompensacja w krawędzi zadania

Kompensacja dołączona do granicy zadania służy do przechwycenia zdarzenia kompensacyjnego. Oznaczamy je następująco:

Title

Zdarzenia kompensacyjne są wykorzystywane w kontekście uruchomienia lub obsługi odszkodowania (kompensacji).

W poniższym przykładzie mamy proces rezerwacji pokoju w hotelu. Jeśli wystąpi wydarzenie Rezygnacja z rezerwacji, uruchomiona zostanie kompensacja, w wyniku której odwrócone zostaną zdania rezerwacji i obciążenia karty kredytowej.

Title

Warunek w krawędzi zadania

Zdarzenie Warunek jest aktywowane, gdy określony warunek stanie się prawdziwy np. gdy zegar wskaże godzinę 17:00 wszyscy pracownicy opuszczą biuro. Oznaczamy je następująco:

Title

W poniższym przykładzie mamy proces organizacji wycieczki. Jeśli nadejdzie burza wycieczka jest odwoływana.

Title

Jeśli temperatura spadnie poniżej 10 stopni uczestnicy wyposażeni zostają w ciepłe buty i ciepłe ubrania.

Title

Sygnał w krawędzi zadania

Sygnał służy do ogólnej komunikacji w obrębie procesu, między poziomami procesów, między basenami i diagramami. Oznaczamy go następująco:

Title

Sygnał BPMN jest podobny do rozbłysku sygnałowego, który wystrzelił w niebo – każdy może go zauważyć i zareagować na niego. Sygnał ma źródło, ale nie ma konkretnego adresata.

W przykładzie w wyniku otrzymania alertu pogodowego anulujemy wycieczkę i proces zostaje przerwany:

Title

W przykładzie, w trakcie zakupów, otrzymujemy sygnał o awarii terminali płatniczych. Proces nie zostaje przerwany.

Title

Zdarzenie Złożone w krawędzi zadania

Zdarzenie złożone oznacza, że do zdarzenia przypisanych jest wiele wyzwalaczy. Jeśli jest ono dołączone do granicy czynności może tylko przechwytywać wyzwalacz. Oznaczamy je następująco:

Title

Do aktywowania zdarzenia wystarczy wystąpienie jednego z wyzwalaczy.

W przykładzie, jeśli klient zrezygnuje z pożyczki lub zmieni wniosek na pożyczkę odnawialną, wniosek o kredyt gotówkowy jest anulowany.

Title

W przykładzie klient może zgłosić zamówienie dodatkowej ilości sztuk lub poprosić o dołożenie dodatkowych produktów. Proces nie jest przerywany.

Title

Zdarzenie złożone równoległe w krawędzi zadania

Zdarzenie równoległe oznacza, że do zdarzenia przypisanych jest wiele wyzwalaczy. Wszystkie przypisane wyzwalacze są wymagane, aby zdarzenie zostało wyzwolone.

Oznaczamy je następująco:

Title

W przykładzie, jeśli wpłynie wniosek o zmianę polisy na lokatę oraz potwierdzenie wpłaty, proces wystawiania polisy zostanie przerwany.

Title

W przykładzie, jeśli otrzymamy prośbę o zmianę samochodu oraz dopłatę aktywowany zostaje przepływ wyjątku.

Title

Cel modelowania procesów

Modelowanie procesów biznesowych BPMN staje się coraz popularniejsze w firmach. Dobrze narysowane procesy biznesowe umożliwiają np.:

  • łatwiejsze wdrożenie nowych pracowników
  • prezentację przepływu pracy i wychwycenie miejsc, w których nie działamy efektywnie
  • uporządkowanie i lepsze zrozumienie wykonywanych w firmie zadań
  • lepszą komunikację pomiędzy działami technicznymi i operacyjnymi
Ewa Barbara Lelusz
Ewa Barbara Lelusz
Analityk biznesowy
Udostępnij wpis:udostępnij Facebookudostępnij Linkedinudostępnij e-mail

Polecane