Otázka 4 / 14

Na příkladu vysvětlete, jak v BPMN modelujete tok procesu včetně synchronizace, bran (XOR/AND/OR) a výjimek. Jak rozlišujete sequence flow a message flow, pool/lane a jak předcházíte uvíznutí tokenu?

Základní konstrukce a význam

  • Sequence flow: pořadí kroků uvnitř jednoho poolu.
  • Message flow: komunikace mezi pooly (účastníci/systémy).
  • Pool: účastník (organizace, systém).
  • Lane: odpovědnost uvnitř procesu (ne integrační hranice).

Brány (gateways)

  • XOR: právě jedna větev (podmínky musí být vzájemně výlučné + ideálně pokrývat všechny případy).
  • AND: paralelní větvení/spojení (join čeká na všechny aktivované větve).
  • OR: jedna nebo více větví; OR join čeká jen na ty větve, které byly aktivovány.
  • Kritické pravidlo: správně párovat split/join (častý zdroj deadlocku je OR split + AND join).

Synchronizace a „stavy procesu“

  • čekání na událost (message/timer) je explicitně modelované intermediate eventem
  • pojmenování čekání často odvozené od stavu business objektu (např. „čeká na platbu“)

Výjimky a prevence deadlocku

  • modelujte alternativní toky (zamítnutí, chyba validace, nedostupnost)
  • používejte boundary events (např. timeout, error) na aktivitách
  • přidejte timer event pro eskalaci/expiraci, aby proces nečekal nekonečně

Typické chyby

  • message flow uvnitř poolu (má být sequence)
  • lanes jako náhrada organizační struktury místo odpovědností
  • skryté čekání („a pak se to nějak vrátí“) bez události
  • nepokryté podmínky na XOR (token „nemá kam jít“)