Business Process/Linter Rules

Parallel Gateway Balanced

Memastikan jumlah Parallel Gateway yang memecah alur seimbang dengan yang menggabungkannya.

AtributNilai
Rule IDparallel-gateway-balanced
SeverityError — wajib diperbaiki agar BPMN lolos linter
Elemen yang dicekSeluruh Parallel Gateway di dalam satu process
SumberPlugin linter AlurKerja (bpmnlint-plugin-alurkerja)

Rule Parallel Gateway Balanced menghitung Parallel Gateway (AND) di dalam satu process: berapa yang memecah alur (lebih dari satu sequence flow keluar) dan berapa yang menggabungkan alur (lebih dari satu sequence flow masuk). Jumlah keduanya harus sama.

Pesan di Studio

Temuan rule ini tampil di panel Problems BPMN Editor dengan pesan berikut:

  • Found N parallel gateway split(s) but only M join(s) — parallel paths will never be synchronized
    Ada pemecahan paralel yang tidak pernah digabungkan kembali.
  • Found N parallel gateway join(s) but only M split(s) — there are joins without matching splits
    Ada penggabungan paralel tanpa pemecahan paralel pasangannya.

Kenapa ini masalah

Parallel join menunggu semua cabang yang masuk tiba. Kalau cabang-cabang paralel tidak pernah digabung kembali, alur selanjutnya bisa berjalan berkali-kali. Sebaliknya, parallel join tanpa pasangan split bisa menunggu cabang yang tidak akan pernah datang, sehingga proses macet.

Cara memperbaiki

  1. Pastikan setiap Parallel Gateway yang memecah alur ditutup oleh Parallel Gateway yang menggabungkan semua cabangnya sebelum alur berlanjut.
  2. Jangan memakai Parallel Gateway untuk menggabungkan cabang yang berasal dari Exclusive Gateway — gunakan Exclusive Gateway sebagai penggabung untuk cabang XOR.
  3. Hindari satu gateway yang sekaligus menggabung dan memecah; pisahkan menjadi dua gateway (lihat No Gateway Join Fork).

Catatan

Cara rule menghitung

Rule ini membandingkan jumlah split dan join di satu process, bukan memeriksa pasangan satu per satu. Gateway yang sekaligus memiliki banyak masuk dan banyak keluar dihitung sebagai split dan join. Temuan dilaporkan pada process (pool), bukan pada gateway tertentu.

Rule terkait