Jak tworzyć diagramy w BPMN

Jako BA tworzę diagramy procesowe w BPMN. Zamiast szukania po książkach i w internecie, których elementów mogę użyć (i co oznaczają), dodałem je tutaj – aby móc szybko i efektywnie tworzyć diagramy w BPMN.

Inspiracją do tego posta, było szkolenie mojego kolegi z pracy, który jest niewątpliwie ekspertem w tworzeniu diagramów. Jako, że diagramy tworzę średnio co trzy miesiące, stworzyłem sobie tę krótką ściągę – na podstawie szkolenia. Jeżeli uważacie, że gdzieś popełniłem błąd – dajcie znać. Dodaję też opis dla tych, którzy dopiero BPMN poznają. Może się przyda.

Spis treści:

BPMN: Bramki
BPMN: Baseny (pools), tory (swimlines) i komunikaty
BPMN: Typy aktywności
BPMN: Zdarzenia
BPMN: Multitaski, pętle i podprocesy
BPMN: Podprocesy ad hoc
BPMN Data Store i Data Object

BPMN: Bramki

Patrząc z poziomu kodu to bramki tak naprawdę zwykłe IF, ELSE, ewentualnie CASE. Czyli dana akcja jest wykonywana jeżeli kryterium akcji jest spełnione. Podstawowe bramki to:

BPMN Opis
Bramka wykluczająca (exclusive gateway).
Tylko jedna ścieżka z wielu możliwych może być wykonana.
Bramka niewykluczająca (inclusive gateway).
Wszystkie ścieżki spełniające kryteria mogą być wykonane. Przy tym rodzaju bramek często spotyka się ścieżkę przeciętą slashem (ukośnikiem). Oznacza to domyślną ścieżkę, która zawsze musi być wykonana.
Bramka zrównoległająca (parallel gateway).
Akcje są wykonywane równolegle, niezależnie od siebie. Każda ścieżka musi być wykonana. Początkowa ramka zrównoległająca musi kończyć się końcową bramką zrównoległającą, która musi otrzymać sygnał negatywny, bądź pozytywny ze wszystkich ścieżek.

Przykład bramki wykluczającej w diagramie BPMN:

Przykład bramki wykluczającej w diagramie BPMN

Bramka wykluczająca (exclusive gateway). Jeżeli naprawa auta nie przekracza 1000 złotych jest wykonywana automatycznie. Gdy koszt naprawy przekracza 1000 złotych , trzeba powiadomić klienta. Tylko jeden warunek może być spełniony, choć tu dla ścisłości można by dodać warunek <= 1000 pln.

Przykład bramki niewykluczającej w diagramie BPMN:

Przykład bramki niewykluczającej w diagramie BPMN

Bramka niewykluczająca (inclusive gateway). Oględziny auta z klientem podczas odbioru auta są obowiązkowe i muszą być zawsze wykonane. Reszta ścieżek zostaną wykonane, gdy warunek będzie spełniony.

Przykład bramki zrównoległającej w diagramie BPMN:

Przykład bramki zrównoległającej w diagramie BPMN

Bramka zrównoległająca (parallel gateway). Wszystkie ścieżki muszą być wykonane, mogą się odbywać równolegle. Na końcu musi być bramka kończąca, oczekująca na pozytywny lub negatywny wynik danej ścieżki.

BPMN: Baseny (pools), tory (swimlines) i komunikaty

Baseny i tory służą do wydzielenia różnych uczestników. Krótko mówiąc basen to obiekt/aplikacja/uczestnik niepowiązany z innym basenem (inny obiekt/aplikacja/uczestnik). Tory służą do podziału jednego obiektu (basenu) na podobiekty będące częścią basenu. Komunikaty służą do komunikacji pomiędzy basenami.

BPMN Opis
Basen Zwykły prostokąt z nazwą po lewej stronie. Przypomina właśnie zewnętrzny obrys basenu. Proces może istnieć tylko w basenie. Do komunikacji pomiędzy basenami służą komunikaty.
Tor Zwykły prostokąt z nazwą po lewej stronie, będący integralną częścią basenu. Przypomina wydzielony tor pływacki basenu. Oznacza innego uczestnika tego samego obiektu (basenu)
Komunikat.
Strzałka z pełnym białym grotem, z białym okręgiem u podstawy. Służy do połączenia różnych procesów z innych basenów.

Przykłady basenów, torów i komunikatów w BPMN:

Przykład diagramu BPMN z basenami, torami i komunikatami

BPMN: baseny, tory i komunikaty. Klient jest osobnym i niezależnym uczestnikiem od serwisu. Dlatego serwis i klient to oddzielne baseny. Jako, że serwis ma złożoną strukturę, to został on podzielony na pod uczestników (tory) czyli obsługę klienta i warsztat. Klient ma swój proces, warsztat swój – ale pomiędzy nimi odbywa się komunikacja.

Powyższy proces można też ukazać w taki sposób:

Przykład diagramu BPMN z basenami, torami i komunikatami - jeden basen bez szczegółów

BPMN: baseny, tory i komunikaty. Klient jest osobnym i niezależnym uczestnikiem od serwisu. Jako serwis nie wiemy co się dzieje u klienta, więc pozostawiamy pusty basen. W takim przypadku nasze aktywności komunikują się z krawędzią innego basenu. Koperty w aktywnościach oznaczają przyjęcie/wysłanie komunikatu.

BPMN: Typy aktywności

Typy aktywności dodatkowo określają rodzaj akcji. Jest to pomocne, aby zredukować opis aktywności. Ikonkę umieszczamy w tasku w lewym górnym rogu. Podstawowe aktywności to:

BPMN Opis
Task użytkownika. Wymagana aktywność użytkownika.
Task automatyczny. Aktywność użytkownika nie jest wymagana.
Task wysyłający komunikat do innego basenu (poola).
Task odbierający komunikat z innego basenu (poola).
Task skryptowy np. wczytujący dane zewnętrzne.
Task manualny oznaczający manualną aktywność użytkownika np. odebranie listu z poczty.

BPMN: Zdarzenia

Zdarzenia informują nas o punkcie początkowym, końcowym lub pośrednim – istotnym dla procesu, aby go ukazać na diagramie. Poniższa grafika może nie pokazuje tego dokładnie ale rodzaje zdarzeń różnią się tylko obramowaniem.

BPMN Opis
Zdarzenie początkowe. Informuje nas o punkcie startowym procesu. Okręg z normalnym obramowaniem.
Zdarzenie pośrednie. Informuje nas o ważnym zdarzeniu w środku procesu. Proces będzie mógł być kontynuowany, gdy przyjdzie informacja zwrotna, bądź jakieś kryterium zostanie spełnione. Okręg z podwójnym obramowaniem.
Zdarzenie końcowe. Informuje nas o punkcie końcowym procesu. Okręg z pogrubionym obramowaniem.

Każdy rodzaj zdarzenia może mieć swój typ, najważniejsze z nich to:

BPMN Opis
Zdarzenie komunikatu. Może być początkowe, pośrednie i końcowe. Odbiór komunikatu to biała koperta. Wysyłka komunikatu oznaczona jest czarną kopertą.
Zdarzenie czasowe. Jak dla mnie zdarzenie początkowe i pośrednie. Zdarzenie cykliczne, bądź wykonywane o określonej porze. Czyli proces może zacząć się określonej godzinie, lub cyklicznie co godzinę (może być wstrzymany np. do godziny 12, bądź do określonych ram czasowych i kontynuować proces o określonych porach).
Zdarzenie sygnałowe. Może być początkowe, pośrednie i końcowe. Odbiór sygnału to biały trójkąt. Wysyłka sygnału oznaczona jest czarnym trójkątem. Sygnał nie jest kierowany do konkretnego użytkownika, jest jakby przesyłany w przestrzeń niczym fale radiowe z nadzieją że ktoś go odbierze.
Zdarzenie błędu. Jak dla mnie zdarzenie końcowe. Oznacza zakończenie procesu błędem.
Zdarzenie warunkowe. Może być początkowe, pośrednie. Proces może być zaczęty lub kontynuowany po spełnieniu jakiegoś kryterium np. 100 stopni.

Przykład wykorzystania zdarzeń w BPMN:

BPMN: różne rodzaje zdarzeń. Pomiędzy basenami jest zachowana komunikacja, ale każdy z basenów ma swój proces. Zdarzenia pośrednie z białą kopertą oznaczają, że proces będzie kontynuowany, gdy komunikat zostanie odebrany przez użytkownika. Zdarzenie początkowe z biała kopertą może rozpocząć proces dopiero, gdy komunikat zostanie odebrany.

BPMN: Multitaski, pętle i podprocesy

Dzięki multitaskom i pętlom możemy jeszcze bardziej uprościć diagram, nie wchodząc w szczegóły danej aktywności. Podprocesy pozwalają nam na rozbudowanie procesu.

BPMN Opis
Multitask sekwencyjny. Aktywność może następować tylko jedna po drugiej. Nie może być wykonywana jednocześnie.
Multitask równoległy. Aktywność może być wykonywana jednocześnie z innymi.
Pętla. Oznacza zwielokrotnienie danej aktywności.
Podproces. Rozbudowanie głównego przejrzystego procesu.

BPMN z multitaskami i pętlą. W dziale obsługi pracuje paru pracowników. Wszystkie auta musza zostać przyjęte. Za to jest jeden mechanik, dlatego naprawa musi być wykonywana pojedynczo. Wystawienie faktury odbywa się w tym samym czasie dla każdego naprawionego auta. Dodatkowo aktywność „Naprawa auta” jest oznaczona podprocesem.

Mamy dwie możliwości ukazana podprocesu: jako osobny diagram, albo jako część głównego diagramu.

BPMN podproces jako osobny diagram. Znak plusa w głównej aktywności oznacza że aktywność jest bardziej złożona. Dlatego możemy powiązać z głównym procesem inny diagram pod nazwą głównej aktywności.

BPMN podproces wewnątrz głównego procesu.

BPMN: Podprocesy ad hoc

Dzięki znacznikowi ad hoc możemy wyszczególnić wszystkie aktywności składające się na podproces, ale które niekoniecznie muszą zostać wykonane.

BPMN Opis
Znacznik ad hoc.

BPMN podproces as hoc. Diagnoza auta jest oznaczona jako podproces ad hoc.

BMPN podproces z aktywnościami ad hoc. Jako osobny kontener. Nie ma zdarzenia początkowego i końcowego. Na dole tylda. W tym przypadku każda aktywność może być wykonana wiele razy, ale nie musi.
Przykład 1. Podpięcie komputera -> Weryfikacja zawieszenia -> Weryfikacja układu kierowniczego.

BPMN podproces ad hoc z zależnościami. Nie które aktywności mogą być powtarzane, inne nie. Niektóre z aktywności mogą tylko nastąpić po określonej aktywność.
Przykład 1. Podpięcie komputera -> Weryfikacja zawieszenia -> Weryfikacja układu kierowniczego -> Podpięcie komputera
Przykład 2. Weryfikacja zawieszenia -> Weryfikacja układu kierowniczego -> Weryfikacja tarcz i klocków

BPMN: Data Store i Data Object

Data Store i Data Object służą do pokazania elementów kluczowych dla procesu a nie będących aktywnością.

BPMN Opis
Data Object. Istotny element, który istnieje tylko raz.
Data Store. Istotny element, trwały.

BPMN z Data Object i Data Store. Dane klienta są istotne, i co najważniejsze później są wykorzystane – muszą zostać zapisane. Faktura jest ulotna, raz wydrukowana trafia do klienta, więcej nie jest wykorzystywana. Data Store i Data Object połączone są z aktywnościami kropkowaną linią.

Podsumowanie: Powyższy kod VBA Excel umieszczony w poście pod tytułem "Jak tworzyć diagramy w BPMN" zamieszczony na witrynie "exceldb.net" mógł zostać w całości pobrany z innej strony. Moim zamiarem nie jest kopiowanie czyiś rozwiązań tj. kodu VBA (dlatego zawsze staram się podać źródło kodu Excel VBA), a jedynie stworzenia miejsca skąd będę mógł pobrać działający już kod Excel VBA. Ten post pod tytułem "Jak tworzyć diagramy w BPMN" zawiera kod VBA Excel, który kiedyś wykorzystałem - niniejszym archiwizuje go z myślą o przyszłych aplikacjach Excel VBA wykorzystujących "Jak tworzyć diagramy w BPMN". Jeżeli osoby trzecie będą mogły skorzystać z tego kodu VBA "Jak tworzyć diagramy w BPMN" będzie mi niezmiernie miło. Niech ta witryna "exceldb.net" będzie swego rodzaju wyminą informacji pomiędzy ludźmi programującymi w Excel VBA.
Link: http://exceldb.net/blog/2020/07/31/jak-tworzyc-diagramy-w-bpmn/