Kontener dla procesu. Uczestnik interakcji. Pule wymieniają dane wyłącznie przez przepływy komunikatów. Można je zwinąć, aby ukryć szczegóły.
Otwórz w BP1 Modeler →Jedna pula, jeden proces: zamówienie przechodzi ze Sprzedaży przez Magazyn do Wysyłki — to pula koordynuje pracęOtwórz w BP1 Modeler →Kolaboracja: klient i sklep to osobne pule — współdziałają wyłącznie przez komunikaty
Tor (Lane)
Pas wewnątrz puli pokazujący, kto wykonuje zadania (stanowisko, rola, dział lub system IT).
Otwórz w BP1 Modeler →Tory dzielą jeden proces według ról: konsultant klasyfikuje zgłoszenie, a błąd trafia do toru „Inżynier”
Czynności (Activities)
Typy zadań
Abstrakcyjne
Task (None)
Ręczne
Manual
Użytkownika
User Task
Wysyłania
Send Task
Odbioru
Receive Task
Skryptowe
Script Task
Usługowe
Service Task
Reguła biznesowa
Business Rule
Zadanie abstrakcyjne (None Task)
Typ nie został określony. Stosowane we wczesnym modelowaniu, gdy sposób wykonania nie jest jeszcze ustalony lub gdy nie ma on znaczenia dla celu diagramu. W istocie to element zastępczy, później doprecyzowywany do konkretnego typu.
Zadanie użytkownika (User Task)
Wykonywane przez człowieka za pośrednictwem interfejsu oprogramowania: formularza CRM, ekranu w aplikacji webowej, pozycji w menedżerze zadań. Kluczowa różnica względem zadania ręcznego polega na tym, że osoba pracuje wewnątrz systemu, który śledzi status zadania.
Przykłady: zatwierdzenie wniosku w systemie, wypełnienie formularza, przejrzenie dokumentu w portalu samoobsługowym.
Zadanie ręczne (Manual Task)
Wykonywane przez człowieka bez udziału silnika BPM. System nie potrafi automatycznie wykryć, kiedy ta praca się zaczyna ani kończy.
Przykłady: fizyczne podpisanie dokumentu, rozmowa telefoniczna z klientem, spotkanie osobiste, dostarczenie przesyłki przez kuriera.
Zadanie usługowe (Service Task)
Wykonywane automatycznie przez program lub usługę. Bez udziału człowieka. Najczęstszy typ zadania w procesach wykonywalnych.
Przykłady: żądanie HTTP do API, zapis do bazy danych, wywołanie mikrousługi, uruchomienie obliczeń.
Zadanie wysyłania (Send Task)
Wysyła komunikat do konkretnego uczestnika zewnętrznego (innego procesu lub systemu) i kończy się natychmiast, bez czekania na odpowiedź. Wzorzec „wyślij i zapomnij”.
Przykłady: wysłanie e-maila do klienta, opublikowanie zdarzenia w kolejce komunikatów, wysłanie powiadomienia przez webhook.
Zadanie odbioru (Receive Task)
Czeka na przychodzący komunikat od uczestnika zewnętrznego. Proces zatrzymuje się na tym zadaniu, aż komunikat nadejdzie.
Szczególnym wariantem jest inicjujące zadanie odbioru: jeśli takie zadanie jest pierwszym krokiem procesu, samo odebranie komunikatu tworzy nową instancję procesu (alternatywa dla zdarzenia początkowego typu komunikat).
Przykłady: oczekiwanie na odpowiedź kontrahenta, oczekiwanie na wywołanie zwrotne od dostawcy płatności, oczekiwanie na potwierdzenie dostawy.
Zadanie skryptowe (Script Task)
Uruchamia osadzony skrypt (kod) zdefiniowany bezpośrednio w modelu procesu. W przeciwieństwie do zadania usługowego kod nie wywołuje żadnego systemu zewnętrznego — działa wewnątrz silnika BPM.
Wywołuje silnik decyzyjny (np. tabelę DMN). Dane wejściowe są przekazywane do zestawu reguł, a w odpowiedzi zwracana jest decyzja.
Przykłady: ustalenie rabatu według poziomu klienta, obliczenie składki ubezpieczeniowej, sprawdzenie wniosku pod kątem polityki, klasyfikacja zapytania.
Otwórz w BP1 Modeler →Typy zadań: kształt jest ten sam, tylko ikona w rogu mówi, jak wykonywana jest praca
Znaczniki zadań
Małe ikony pośrodku dolnej krawędzi prostokąta zadania. Wskazują zachowanie zadania — a nie jego typ.
Pętla
Loop
Wieloinst. ∥
Parallel MI
Wieloinst. ≡
Sequential MI
Kompensacja
Compensation
Ad-hoc ~
Ad-hoc
Podproces +
Subprocess
Znacznik
Znaczenie
Przykład
↻ Pętla
Zadanie powtarza się, dopóki warunek jest spełniony (jedna instancja, wiele iteracji)
Popraw dokument → wyślij → jeśli odrzucony, powtórz
∥ Wieloinstancyjność równoległa
N instancji uruchamia się jednocześnie — po jednej na każdy element kolekcji
Wyślij powiadomienie do wszystkich zatwierdzających jednocześnie
≡ Wieloinstancyjność sekwencyjna
Te same N instancji, ale jedna po drugiej
Przeprowadź rozmowę z każdym kandydatem po kolei
⏪ Kompensacja
Zadanie wycofujące: uruchamia się tylko po wyzwoleniu kompensacji, aby cofnąć już zakończone działanie
„Anuluj rezerwację” po tym, jak „Zarezerwuj hotel” już się zakończyło
~ Ad-hoc
Zadania wewnątrz podprocesu wykonywane są w dowolnej kolejności, można je powtarzać lub pomijać; zdarzenia początkowe i końcowe nie są w nim dozwolone
Swobodny wybór kroków podczas konsultacji z klientem
+ Podproces
Czynność złożona z ukrytą wewnętrzną sekwencją; przepływy nie mogą przekraczać jej granicy
„Obsługa zamówienia” ukrywa 10 wewnętrznych kroków
Otwórz w BP1 Modeler →Pętla: jedno zadanie się powtarza — „Negocjuj warunki” wykonuje się ponownie, aż obie strony się zgodząOtwórz w BP1 Modeler →Wieloinstancyjność równoległa (trzy kreski): „Poproś o ofertę” wykonuje się jednocześnie dla każdego dostawcy; proces idzie dalej, gdy nadejdą wszystkie ofertyOtwórz w BP1 Modeler →Kompensacja: „Anuluj rezerwację hotelu” wykonuje się tylko wtedy, gdy podróż zostanie anulowana po zarezerwowaniu hotelu — łączy je graniczne zdarzenie kompensacji, a nie przepływ
Podproces (Subprocess)
Czynność złożona oznaczona znakiem „+”. Zawiera własną sekwencję kroków. Przepływy nie mogą przekraczać jej granicy. Zdarzenia pośrednie dołącza się do krawędzi.
Otwórz w BP1 Modeler →Podproces obejmuje własne kroki: rozwinięty „Opłać zamówienie” pokazuje je z własnym początkiem i końcem; zwinięty „Wyślij zamówienie” ukrywa je za znacznikiem +
Call Activity
Gruba krawędź. Odwołuje się do globalnego podprocesu (np. „Zakupy”) wielokrotnie używanego w różnych procesach.
Różnica względem osadzonego podprocesu: w osadzonym podprocesie dane są dostępne bezpośrednio (współdzielony zakres z procesem nadrzędnym). Call Activity to odrębny proces — jego wejścia i wyjścia wymagają jawnego mapowania danych: co przekazujemy przy wywołaniu, a co odczytujemy po powrocie.
Otwórz w BP1 Modeler →Call Activity (gruba krawędź): „Sprzedaż” i „Leasing” wywołują ten sam globalny proces „Sprawdź zdolność kredytową”
Podproces ad-hoc
Znacznik „~”. Czynności w środku mogą wykonywać się w dowolnej kolejności, powtarzać lub być pomijane. Zdarzenia początkowe/końcowe nie są w nim dozwolone.
Otwórz w BP1 Modeler →Podproces ad-hoc (~): zadania nie mają przepływów — wykonuje się je w dowolnej kolejności, powtarza lub pomija
Podproces zdarzeniowy (Event subprocess)
Przerywana krawędź wewnątrz procesu. Wyzwalany przez zdarzenie początkowe, gdy proces nadrzędny jest aktywny. Przerywający — anuluje proces nadrzędny. Nieprzerywający — działa równolegle.
Otwórz w BP1 Modeler →Podproces zdarzeniowy (kropkowana krawędź): nie ma przepływu wejściowego — uruchamia go komunikat „Adres zmieniony” w trakcie realizacji zamówienia; nieprzerywające zdarzenie początkowe (linia przerywana) nie zatrzymuje głównego przepływu
Bramki (Gateways)
Sterują rozgałęzianiem i scalaniem. Bramka sama nie wykonuje pracy — tylko kieruje przepływem; decyzję przygotowuje zadanie przed nią.
Wyłączna XOR
Albo/Albo
Równoległa AND
I/I
Włączająca OR
Jedna lub więcej
Zdarzeniowa
Event-based
Złożona
Complex
Pusta
None
Bramka wyłączna (XOR)
Najczęściej stosowana bramka. Przy rozgałęzieniu aktywuje dokładnie jedną ścieżkę wyjściową — tę, której warunek jest spełniony jako pierwszy. Jeśli żaden warunek nie jest spełniony, proces kończy się błędem (dlatego dobrą praktyką jest zawsze definiowanie gałęzi „domyślnej”). Przy scalaniu natychmiast przepuszcza każdy napływający token, nie czekając na pozostałe.
Analogia: rozwidlenie drogi, na którym jedziesz tylko w jednym kierunku.
Przykłady: „Czy zamówienie jest opłacone? → Tak / Nie”, „Czy kwota > 10 000? → Tak / Nie”.
Wskazówka: sformułuj pytanie przed bramką, a warianty odpowiedzi umieść na wychodzących strzałkach.
Otwórz w BP1 Modeler →Bramka XOR: wybierana jest dokładnie jedna gałąź; scalająca bramka XOR przepuszcza zamówienie dalej bez czekania
Bramka równoległa (AND)
Przy rozgałęzieniu aktywuje jednocześnie wszystkie ścieżki wyjściowe, bezwarunkowo — bez sprawdzania. Przy scalaniu czeka na tokeny na wszystkich ścieżkach wejściowych i dopiero gdy wszystkie dotrą, przekazuje dalej pojedynczy token.
Analogia: kierownik rozdziela zadania pięciu pracownikom i czeka, aż wszyscy skończą.
Przykłady: równoległa wysyłka towaru i wystawienie faktury; różne działy przeglądające dokumenty w tym samym czasie.
Antywzorzec: nie scalaj bramką AND gałęzi, które zostały rozdzielone przez XOR lub gdy zawsze wybierana jest tylko jedna z nich. AND będzie w nieskończoność czekać na tokeny na wszystkich wejściach — proces się zakleszczy. Po XOR scalaj bramką XOR (lub pustym rombem).
Otwórz w BP1 Modeler →Bramka AND: wysyłka i fakturowanie startują jednocześnie; scalająca bramka AND czeka na oba
Bramka włączająca (OR)
Hybryda XOR i AND. Przy rozgałęzieniu aktywuje jedną lub więcej ścieżek w zależności od warunków — każdy warunek jest oceniany niezależnie. Przy scalaniu czeka tylko na tokeny ze ścieżek faktycznie aktywowanych (a nie na wszystkie, jak AND).
Analogia: bufet — bierzesz jedno danie, dwa albo wszystkie, ale nigdy zero.
Przykłady: klient wybrał dostawę i/lub odbiór osobisty i/lub pakowanie na prezent — wykonaj wybrane opcje i poczekaj, aż wszystkie się zakończą.
Uwaga: bramki OR są trudniejsze w analizie. Na rozgałęzionych diagramach reguły synchronizacji bywają nieoczywiste. Nie każdy silnik obsługuje je poprawnie.
Otwórz w BP1 Modeler →Bramka OR: towary fizyczne, cyfrowe lub jedne i drugie — wykonuje się jedna lub obie gałęzie, a scalająca bramka OR czeka tylko na te wybrane
Bramka zdarzeniowa (Event-based)
Zasadniczo różni się od pozostałych: kieruje przepływem nie na podstawie danych, lecz według tego, które zdarzenie nadejdzie pierwsze. Za bramką umieszcza się pośrednie zdarzenia oczekujące (zegar, komunikat, warunkowe, sygnał). Gdy tylko jedno się wyzwoli, pozostałe są anulowane.
Analogia: wysyłasz kandydatowi ofertę i czekasz: jeśli odpowie, idziesz dalej; jeśli przez tydzień milczy, przechodzisz do kolejnego kandydata.
Przykłady: oczekiwanie na płatność z zegarem (brak zapłaty w 3 dni → anuluj zamówienie); oczekiwanie na odpowiedź klienta lub upływ terminu.
Otwórz w BP1 Modeler →Bramka zdarzeniowa: wygrywa to, co nastąpi pierwsze — płatność oznacza wysyłkę zamówienia, a 3 dni bez niej — jego anulowanie
Bramka złożona (Complex)
Stosowana, gdy logiki rozgałęzień nie da się wyrazić standardowymi bramkami. Warunek scalania określa wyrażenie (np. „kontynuuj, gdy zakończą się 3 z 5 gałęzi” lub „gdy nadejdzie pierwsza odpowiedź i minie 10 minut”).
W praktyce: rzadko używana i nie każdy silnik BPM ją obsługuje. Jeśli wystarczy kombinacja XOR / AND / OR, wybierz raczej ją.
Pusta (domyślnie wyłączna)
Romb bez znacznika. Semantycznie równoważny bramce wyłącznej (XOR) — standard BPMN pozwala pominąć krzyżyk. Część metodyków uważa to za złą praktykę, bo pogarsza czytelność: nie wiadomo, czy autor zapomniał o znaczniku, czy świadomie wybrał XOR.
Zdarzenia (Events)
Kluczowe pojęcia
Zdarzenie to coś, co się dzieje (fakt), w odróżnieniu od zadania (aktywnego działania). Rysowane jako okręgi.
Wymiana z konkretnym odbiorcą: e-mail, rozmowa, HTTP, push. Dostępne w każdej pozycji.
Otwórz w BP1 Modeler →Komunikat: końcowe zdarzenie komunikatu sklepu wysyła zlecenie odbioru, a początkowe zdarzenie komunikatu firmy kurierskiej rozpoczyna nowy proces
Zegar (Timer)
Data/godzina, interwał, odliczanie (termin). Tylko przechwytujące.
Otwórz w BP1 Modeler →Zegar: start według harmonogramu, nieprzerywające przypomnienie po 1 dniu i przerywający termin po 2 dniach
Błąd (Error)
Poważna awaria. Przechwytujące — tylko na granicy. Rzucające — tylko na końcu.
Otwórz w BP1 Modeler →Błąd: jeśli obciążenie karty się nie powiedzie, graniczne zdarzenie błędu przerywa zadanie, a zamówienie trafia do anulowania
Warunkowe (Conditional)
Oczekiwanie na warunek zewnętrzny („stan magazynu spada poniżej minimum”). Tylko przechwytujące.
Otwórz w BP1 Modeler →Warunkowe: po potwierdzeniu proces czeka, aż towar będzie na stanie, a potem wysyła zamówienie
Sygnał (Signal)
Rozgłaszanie (w odróżnieniu od adresowanego komunikatu). Reaguje każdy subskrybent.
Otwórz w BP1 Modeler →Sygnał: centrala rozgłasza „Produkt wycofany”; każdy nasłuchujący go sklep uruchamia własny proces — przepływ komunikatów nie jest potrzebny
Zakończenie (Terminate)
Natychmiast zatrzymuje całą instancję procesu. Tylko końcowe.
Otwórz w BP1 Modeler →Bez Zakończenia: każda gałąź równoległa dochodzi do własnego końca; instancja kończy się dopiero po dłuższej z nich, po 45 minutach
Co, jeśli kontynuowanie zadania 2 po zakończeniu zadania 3 nie ma już sensu? Wtedy stosuje się poniższy wzorzec:
Otwórz w BP1 Modeler →Z Zakończeniem: jeśli doraźna naprawa rozwiąże zgłoszenie, końcowe zdarzenie Zakończenia od razu zatrzymuje całą instancję, łącznie z wciąż trwającym „Znajdź przyczynę”
Łącze (Link)
„Teleport” przepływu. Para rzucające + przechwytujące zastępuje długą strzałkę. Tylko pośrednie.
Otwórz w BP1 Modeler →Łącze: rzucające łącze „Wysyłka” kończy jeden rząd, a przechwytujące kontynuuje w następnym — zamiast długiej, krzyżującej się strzałki
Kompensacja (Compensation)
Odwraca wcześniej zakończone działanie. Zadanie kompensujące jest połączone asocjacją.
Otwórz w BP1 Modeler →Kompensacja: końcowe zdarzenie kompensacji wyzwala zdarzenie graniczne zakończonego zadania „Obciąż kartę”, a jego procedura kompensacji zwraca płatność
Eskalacja (Escalation)
Wysyłana z podprocesu do procesu nadrzędnego — nie jest błędem. Może być nieprzerywająca.
Otwórz w BP1 Modeler →Eskalacja: podproces dostawy rzuca „Opóźnienie dostawy”; nieprzerywające zdarzenie graniczne przechwytuje ją i powiadamia klienta, a dostawa trwa dalej
Anulowanie (Cancel)
Tylko w kontekście transakcji. Końcowe — wycofanie. Graniczne — przechwytywanie.
Dane, artefakty, przepływy
Obiekt danych
Data Object
Magazyn danych
Data Store
Wejście danych
Data Input
Wyjście danych
Data Output
Adnotacja
Text Annotation
Grupa
Group
Przepływ
Sequence Flow
Przepływ komun.
Message Flow
Warunkowy
Conditional Flow
Domyślny
Default Flow
Transakcja
Transaction
Obiekt danych (Data Object)
„Kartka papieru” z zagiętym rogiem. Reprezentuje informację, która jest tworzona, konsumowana lub przekazywana między zadaniami w ramach instancji procesu. Istnieje tylko dopóki instancja żyje.
Przykłady: zgłoszenie klienta, projekt umowy, raport składany po drodze.
Magazyn danych (Data Store)
Walec. Trwały magazyn, który przeżywa instancję procesu: baza danych, rejestr, repozytorium plików. Zadania z niego odczytują i do niego zapisują.
Przykłady: CRM, ERP, baza zamówień, archiwum dokumentów.
Wejście danych (Data Input) / Wyjście danych (Data Output)
Parametry procesu lub podprocesu na jego granicy. Wejście — to, co dostarczane z zewnątrz; wyjście — to, co zwracane. Strzałka z pustym/wypełnionym trójkątem.
Przykłady: podproces „Zakupy” przyjmuje na wejściu listę pozycji, a na wyjściu zwraca fakturę.
Adnotacja tekstowa (Text Annotation)
Komentarz dołączany do dowolnego elementu przerywaną linią. Nie wpływa na wykonanie — służy jedynie objaśnieniu dla czytelnika diagramu.
Grupa (Group)
Zaokrąglony prostokąt z przerywaną linią. Wizualne grupowanie elementów (np. „wszystkie zadania logistyczne”). Nie ma semantyki wykonania; przepływy mogą swobodnie przekraczać jej granicę.
Przepływ sekwencji (Sequence Flow)
Ciągła strzałka z wypełnionym grotem. Definiuje kolejność wykonania wewnątrz jednej puli. Nie może przekraczać granic puli.
Przepływ warunkowy (z małym rombem u źródła) — uruchamia się tylko, gdy jego warunek jest prawdziwy. Stosowany na strzałkach wychodzących z zadania bez bramki.
Przepływ domyślny (z kreską u źródła) — ścieżka awaryjna bramki XOR/OR lub rozgałęzienia warunkowego, wybierana, gdy żaden inny warunek nie jest spełniony.
Przepływ komunikatów (Message Flow)
Przerywana strzałka z otwartym grotem. Łączy różne pule — komunikat wymieniany między niezależnymi uczestnikami. Nie stosowana wewnątrz jednej puli.
Przykłady: klient wysyła zamówienie do sklepu internetowego; bank wysyła potwierdzenie płatności.
Transakcja (Transaction)
Podproces z podwójną krawędzią. Semantyka ACID: albo każde wewnętrzne działanie zostaje pomyślnie zatwierdzone, albo cała transakcja jest wycofywana przez zdarzenie Anulowania (wraz z kompensacjami). Stosowana do zachowania spójności w operacjach rozproszonych.
Przykłady: rezerwacja pakietu „lot + hotel + samochód” — jeśli którykolwiek krok się nie powiedzie, cała rezerwacja zostaje anulowana.
Gotowi wdrożyć BPMN w praktyce?
Porozmawiaj z naszym zespołem — zmapujemy Twój proces i pokażemy BP1.ai wykonujący BPMN na Twoich danych.