Przepływy w BPMN

Przepływy (Flows) określają, jak token procesu przechodzi pomiędzy elementami (zadaniami, bramkami, zdarzeniami). We Flowee BPMS najczęściej spotykamy Sequence Flow oraz jego szczególny przypadek – Default Flow.
Sequence Flow – przepływ sekwencyjny
Sequence Flow to podstawowy typ połączenia między elementami procesu.
Może być:
bezwarunkowy – token zawsze przechodzi tą ścieżką,
warunkowy (Conditional Flow) – token przechodzi tylko wtedy, gdy warunek jest spełniony.
Kiedy używać?
Zawsze, gdy chcesz połączyć dwa elementy procesu.
Sequence flow warunkowy – Condition
Na wyjściu z bramki (np. XOR, OR) lub z aktywności można zdefiniować warunek, np.: ${transition == 'Reject'}
Flowee BPMS interpretuje ten warunek w momencie przechodzenia tokena. Jeżeli warunek zwróci true, ścieżka może zostać uruchomiona.
Dobre praktyki:
warunki muszą zwracać true/false,
opieraj warunki na jednoznacznych zmiennych procesowych,
unikaj złożonej logiki w samych expression – lepiej przygotować dane wcześniej w tasku/skrypcie.
Default Flow – ścieżka domyślna
Default Flow to specjalny typ Sequence Flow, oznaczony graficznie ukośną kreską przy bramce.
Co to jest?
Ścieżka, którą proces wybiera, gdy:
żadna inna ścieżka warunkowa nie została spełniona.
Dlaczego jest ważna?
Zapewnia, że proces:
nie zatrzyma się na bramce,
ma zawsze jasno określone zachowanie w przypadku „pozostałych” scenariuszy.
Gdzie się ją stosuje?
Najczęściej na wyjściu z:
Exclusive Gateway (XOR)
Inclusive Gateway (OR)
Czy default flow jest wymagany?
❗ Z punktu widzenia BPMN – nie jest technicznie wymagany,
✅ z punktu widzenia dobrego projektowania procesów – jest silnie zalecany.
Brak default flow może spowodować:
błąd wykonania procesu,
„utknięcie” tokena na bramce,
niejednoznaczne zachowanie w edge-case.
Przykład:
„Jeśli żaden warunek nie pasuje → przejdź ścieżką Obsługa błędu / Scenariusz domyślny”.
Najczęstsze błędy
🔴 Brak default flow na XOR/OR
→ ryzyko zatrzymania procesu.
🔴 Warunki, które nigdy nie zwracają true
→ proces zawsze pójdzie defaultem.
🔴 Nakładanie się warunków w XOR
→ niejednoznaczna decyzja.
🔴 Logika biznesowa w expression
→ trudna do utrzymania, brak czytelności.
Zasada projektowania
Warunki na sequence flow powinny być proste, a logika decyzyjna przygotowana wcześniej w zadaniu (np. Service Task / Script Task / Business Rule Task).
Podsumowanie
Sequence Flow:
łączy elementy procesu,
może być warunkowy lub bezwarunkowy.
Default Flow:
jest specjalnym sequence flow,
uruchamia się, gdy żaden warunek nie pasuje,
chroni proces przed utknięciem.