
Notacja BPMN zdarzenia początkowe
W artykule przedstawiam zdarzenia początkowe, których używamy w notacji BPMN do modelowania procesów biznesowych.
W poniższej tabeli znajdziesz zestawienie wszystkich zdarzeń początkowych, których możemy używać w modelowaniu procesów biznesowych. Najbardziej popularne zdarzenia to Komunikat i Czasomierz.
Oprócz zdarzeń początkowych model procesu biznesowego obejmuje dwa inne rodzaje zdarzeń:
- zdarzenia pośrednie
- zdarzenia końcowe
Specyfikacja BPMN za pomocą zdarzenia początkowego określa, w którym miejscu rozpocznie się przebieg procesu biznesowego. Oznaczamy je okręgiem z ciągłym, cienkim obramowaniem.
Zdarzenie początkowe rozpoczyna przepływ procesu i nie może mieć żadnych przychodzących przepływów sekwencji.
Proces biznesowy może mieć więcej niż jeden poziom np. gdy zawiera podprocesy rozwinięte. Zdarzenia początkowego i końcowego używamy niezależnie dla każdego poziomu procesu.
W przykładzie poniżej jest proces udzielenia kredytu z podprocesem rozwiniętym „Skompletowanie umowy”. W podprocesie bramka równoległa rozgałęzia proces na dwie ścieżki. Obydwie muszą być spełnione, aby podproces mógł się zakończyć.
Zdarzenia początkowe i końcowe nie są obowiązkowe w modelach procesów.
W notacji BPMN procesy biznesowe mogą być modelowane bez wykorzystania zdarzeń początkowych. Jeśli jednak proces zawiera zdarzenie końcowe, musi też zawierać zdarzenie początkowe i odwrotnie – jeśli stosowane jest zdarzenie początkowe, na zakończenie procesu używamy jednego lub większej liczby zdarzeń końcowych.
Przykład procesu ze zdarzeniem początkowym i końcowym.
Zdarzenia początkowe mogą być używane dla następujących typów procesów:
- procesy najwyższego poziomu (ang. top-level processes)
- podprocesy (ang. sub-processes)
- podprocesy sterowane zdarzeniami (ang. event sub-processes)
Zdarzenia początkowe dla procesów najwyższego poziomu
Zdarzenia początkowe dla procesów najwyższego poziomu mogą występować bez wyzwalacza (ang. None) lub mogą być wywoływane przez następujące wyzwalacze:
- Komunikat (ang. Message)
- Czasomierz (ang. Timer)
- Warunek (ang. Conditional)
- Sygnał (ang. Signal)
- Złożone (ang. Multiple)
- Równoległe złożone (ang. Parallel Multiple)
Brak wyzwalacza
Zdarzenia początkowe bez wyzwalacza oznaczamy pustym okręgiem narysowanym ciągłą, cienką linią.
Zdarzenie bez wyzwalacza umieszczone w diagramie najwyższego poziomu oznacza, że proces uruchamiany jest przez jego wykonawcę. Wykonawcami procesu mogą być ludzie lub systemy informatyczne.
Zdarzenie bez wyzwalacza umieszczone w diagramie poziomu podrzędnego np. w podprocesie, oznacza, że podproces zostanie uruchomiony natychmiast po dotarciu przepływu sekwencji do tego zdarzenia.
Zdarzenie początkowe z wyzwalaczem Komunikat
Zdarzenia początkowe wyzwolone za pomocą komunikatu oznaczamy okręgiem z symbolem koperty w środku.
Wiadomość (komunikat) przychodzi od uczestników procesu i uruchamia proces.
W modelach procesów możemy wykorzystać obiekty danych. Są to elementy graficzne, za pomocą których możemy oznaczyć np. uczestnika procesu, który wysłał wiadomość. Łączymy go ze zdarzeniem za pomocą strzałki przepływu komunikatów (strzałka narysowana linią kreskowaną).
Zdarzenie początkowe z wyzwalaczem Czasomierz
Używając czasomierza możemy zaznaczyć, że start procesu następuje w konkretnej dacie, o określonej godzinie lub w określonym cyklu np. w każdy poniedziałek o 9:00 rano. Symbol czasomierza to okrąg z zegarem w środku.
Poniżej w przykładzie system codziennie o 18:00 pobiera aktualne dane z bazy, aktualizuje raporty i wysyła je mailem do odbiorców.
Zdarzenie początkowe z wyzwalaczem Warunek
Proces jest uruchamiany gdy warunek staje się prawdziwy np. jeśli temperatura w serwerowni zrobi się powyżej 30 stopni uruchomi się proces schładzania.
Zdarzenie z wyzwalaczem Warunek może być wielokrotnie wywołane. Aby jednak zdarzenie mogło zostać ponownie wywołane, warunek musi stać się fałszywy i ponownie prawdziwy np. temperatura w serwerowni musi spaść poniżej 30 stopni (warunek fałszywy) i ponownie wzrosnąć powyżej 30 stopni (warunek prawdziwy).
W przykładzie schemat zawiera następujące elementy:
- zdarzenie z wyzwalaczem Warunek, które rozpoczyna proces – jeśli liczba produktów w systemie spadnie poniżej 10 wysyłany jest mail do magazyniera
- zadania: Wysłanie maila do magazyniera i Weryfikacja stanu magazynu
- bramka wykluczająca, na której rozgałęziamy proces w zależności od tego, czy ilość produktów w magazynie jest większa lub mniejsza od 10.
Zdarzenie początkowe z wyzwalaczem Sygnał
Sygnał nadchodzi z innego procesu, który go nadał i uruchamia rozpoczęcie procesu.
Sygnał różni się od wiadomości (komunikatu) tym, że wiadomość nadawana jest do konkretnego odbiorcy. Sygnał natomiast nadawany jest do wielu odbiorców, którzy nie są określeni np. sygnałem jest informacja przez megafon skierowana do klientów centrum handlowego.
Jeden sygnał może rozpoczynać wiele procesów biznesowych.
W przykładzie mamy proces, w którym:
- sklep informuje Biuro Informacji o przygotowaniu loterii
- Biuro Informacji przygotowuje i ogłasza komunikat – ma on formę sygnału, gdyż skierowany jest do wszystkich osób obecnych w centrum handlowym
- klienci, którzy zareagują na sygnał zgłaszają się do Biura Informacji aby wziąć udział w loterii
Zdarzenie początkowe z wyzwalaczem Złożone
Zdarzenie złożone oznacza, że istnieje wiele sposobów rozpoczęcia procesu. Tylko jeden z nich jest wymagany, aby proces się rozpoczął.
W programie MS Visio zdarzenie to występuje pod nazwą „Wielokrotne”.
W przykładzie proces się rozpocznie, jeśli wystąpi jedna z trzech sytuacji:
- rezygnacja klienta z polisy lub
- sprzedaż samochodu lub
- kradzież samochodu
Model tego procesu możemy narysować z wykorzystaniem trzech zdarzeń początkowych zamiast wyzwalacza Złożone:
Zdarzenie początkowe z wyzwalaczem Złożone równoległe
Zdarzenie złożone równoległe oznacza, że proces posiada wiele wyzwalaczy i każdy z nich musi zostać uruchomiony, aby instancja procesu się rozpoczęła.
W programie MS Visio zdarzenie to występuje pod nazwą „Wiele równoległych”.
W przykładzie kandydat ubiegający się o pracę musi znać angielski, Excela i mieć rok doświadczenia, aby zostać zaproszonym na rozmowę i aby rozpoczął się dla niego proces rekrutacji.
Proces ten możemy narysować używając bramki równoległej:
Zdarzenia początkowe dla podprocesu
Dla podprocesu używamy tylko zdarzenia początkowego bez symbolu wyzwalacza (pusty okrąg).
Inne typy wyzwalaczy nie są używane, gdyż dla podprocesu wyzwalaczem jest przepływ sekwencji z procesu nadrzędnego.
Zdarzenia początkowe dla podprocesów zdarzeniowych
Zdarzenie początkowe może również zainicjować podproces sterowany zdarzeniami (ang. Event Sub-Process). Może ono przerywać bieg procesu głównego lub go nie przerywać. Linia ciągła okręgu oznacza, że zdarzenie przerywa bieg procesu. Linia kreskowana oznacza, że zdarzenie nie przerywa biegu procesu.
Podproces zdarzeniowy:
- nie występuje w głównym przebiegu przetwarzania
- może mieć on tylko jedno zdarzenie początkowe
- jest używany do obsłużenia jakiegoś zdarzenia, które wystąpi
Dla podprocesów sterowanych zdarzeniami możemy używać tych samych typów zdarzeń, których używamy w przypadku zdarzeń granicznych.
Komunikat
Komunikat oznaczamy kopertą w środku okręgu.
W przykładzie otrzymujemy wniosek o założenie lokaty. Na etapie procesowania wniosku mogą wystąpić następujące zdarzenia pośrednie:
- rezygnacja klienta z lokaty – zdarzenie to przerywa proces i token przechodzi do podprocesu „Rezygnacja z lokaty”
- zmiana przez klienta strategii inwestycyjnej – zdarzenie to nie przerywa procesu, obsłużone zostaje podprocesem „Lokata – zmiana strategii”
Czasomierz
Czasomierz oznaczamy za pomocą zegara w środku okręgu.
W przykładzie otrzymujemy zlecenie przygotowania raportów. W trakcie aktualizacji danych w bazie, mogą wystąpić następujące zdarzenia pośrednie:
- o godzinie 15:00 baza zostanie automatycznie wyłączona – zdarzenie to obsłużone jest podprocesem zdarzeniowym „Wyłączenie bazy”
- o godzinie 12:00 mogą uruchomić się automatycznie importy nowych danych – importy nie przerywają procesu aktualizacji bazy. Zdarzenie to obsłużone jest podprocesem „Nowe dane”
Eskalacja
Zdarzenia eskalacji używamy, jeśli zaistnieje sytuacja, która uniemożliwia ukończenie procesu np. jeśli pracownik nie wykona zadania we wskazanym terminie, uruchamiana zostaje eskalacja i zadanie zostaje przekazane do innej osoby.
Domyślnie eskalacja nie przerywa przebiegu procesu. Specyfikacja BPMN dopuszcza jednak używanie eskalacji do przerwania procesu.
W przykładzie mamy proces zamówienia na rower. W trakcie montażu roweru mogą zaistnieć następujące zdarzenia pośrednie wywołujące eskalację:
- brak części w sklepie i w magazynie – zdarzenie to przerywa proces – nie możemy zrealizować montażu, gdyż nie mamy możliwości zamówienia potrzebnych części. Zdarzenie to obsłużone jest podprocesem zdarzeniowym „Anulowanie zamówienia”
- brak części w sklepie – zdarzenie to nie przerywa procesu – możemy zrealizować montaż po tym jak zamówimy części z magazynu. Zdarzenie to obsłużone jest podprocesem zdarzeniowym „Zamówienie części z magazynu”
Błąd
Podproces zdarzenia z wyzwalaczem Błąd zawsze przerywa zawierający go proces główny.
W przykładzie mamy proces aktualizacji raportów. W trakcie aktualizacji bazy może pojawić się zdarzenie pośrednie „Błąd serwera”, które powoduje zamknięcie bazy. Proces zostaje wstrzymany, a zdarzenie pośrednie obsłużone jest podprocesem zdarzeniowym „Błąd serwera bazy”.
Kompensacja
Zdarzenia kompensacji używamy tylko do uruchomienia wbudowanego podprocesu sterowanego zdarzeniami. Zdarzenia początkowego kompensacji nie używamy w procesie najwyższego poziomu.
Zdarzenie to jest wywoływane, kiedy pojawi się konieczność skompensowania zrealizowanych czynności.
Kompensacja nie przerywa procesu. Proces musi zostać zakończony przed uruchomieniem zdarzenia kompensacji, gdyż kompensacja wycofuje zadania, które już zostały zrealizowane.
W przykładzie mamy proces, w którym rezerwujemy bilety lotnicze, hotel i samochód. Do każdego zadania przypisane jest zdarzenie pośrednie kompensacji i zadanie odwracające wykonaną czynność.
W podprocesie zdarzeniowym „Anulowanie podróży” poszczególne zadania są wycofywane i kompensowane.
Warunkowe
Zdarzenie warunkowe zachodzi, gdy zostanie spełniony określony warunek np. jeśli podczas importu danych do bazy pojawi się błąd, plik którego nie można zaimportować jest pomijany i wysyłany jest komunikat do administratora.
W przykładzie uruchamiamy importy do bazy. Jeśli w bazie nie ma miejsca i nie ma możliwości powiększenia bazy, dane nie zostaną zapisane. Sytuacja ta obsłużona jest podprocesem zdarzeniowym „Anulowanie importów”.
Jeśli bazę można powiększyć dane zostaną zapisane. Sytuacja ta obsłużona jest podprocesem zdarzeniowym „Rozszerzenie bazy”.
Sygnał
Sygnał jest komunikatem skierowanym do nieokreślonych osób. Konkretny odbiorca sygnału nie jest określony.
W przykładzie mamy proces sprzedaży funduszy inwestycyjnych dla pracowników i dwa zdarzenia pośrednie:
- zdarzenie pośrednie z wyzwalaczem sygnał w głównym przebiegu procesu „Ogłoszenie sprzedaży funduszy” – wysyłamy sygnał i ogłaszamy dla wszystkich pracowników sprzedaż funduszy. Zdarzenie to nie przerywa przebiegu procesu i jest ono obsłużone podprocesem zdarzeniowym „Wybór funduszu”.
- zdarzenie pośrednie krawędziowe – sygnał, za pomocą którego ogłaszamy wstrzymanie procesu sprzedaży. Zdarzenie to przerywa proces i jest obsłużone podprocesem zdarzeniowym „Anulowanie akcji sprzedaży”.
Zdarzenie złożone
W przypadku zdarzenia złożonego istnieją różne sposoby uruchomienia podprocesu sterowanego zdarzeniami. Do uruchomienia podprocesu wymagane jest wystąpienie tylko jednego ze zdarzeń.
W programie MS Visio zdarzenie złożone występuje pod nazwą „Wielokrotne”.
W przykładzie mamy proces zakupu samochodu. Do granicy zadania „Wybór samochodu” dołączone są dwa złożone zdarzenia pośrednie.
Jedno ze zdarzeń przerywa proces, gdyż w przypadku wybranego auta ani ABS ani klimatyzacja nie są dostępne. Drugie zdarzenie pośrednie procesu nie przerywa, gdyż asystent parkowania lub asystent pasa mogą zostać dokupione.
Zdarzenie złożone równoległe
Zdarzenie złożone równoległe wskazuje, że istnieje wiele sposobów wyzwalania podprocesu zdarzenia. Wszystkie z nich są wymagane, aby rozpocząć podproces.
W programie MS Visio zdarzenie złożone równoległe występuje pod nazwą „Wiele równoległych”.
W przykładzie mamy proces zakupu samochodu. Do zadania „Wybór samochodu” dołączone są dwa zdarzenia pośrednie. Jedno z nich przerywa proces, gdyż opcja kupienia odtwarzacza CD nie jest dostępna. Drugie zdarzenie nie przerywa procesu, gdyż zarówno asystenta parkowania jak i asystenta pasa można dokupić.
Jak zawsze zapraszam do dzielenia się uwagami. Chętnie rozszerzę artykuł o dodatkowe informacje.
