No Gateway Join Fork
Mencegah gateway melakukan join dan fork sekaligus.
| Atribut | Nilai |
|---|---|
| Rule ID | no-gateway-join-fork |
| Severity | Warning — disarankan diperbaiki |
| Elemen yang dicek | Gateway |
| Sumber | bpmnlint (rule bawaan) |
Rule No Gateway Join Fork memeriksa apakah sebuah gateway melakukan penggabungan (join) dan percabangan (fork) secara bersamaan, yaitu memiliki lebih dari satu incoming sekaligus lebih dari satu outgoing sequence flow. Gateway yang menggabungkan kedua peran ini membuat alur token sulit dibaca dan rawan salah tafsir. Sebaiknya pisahkan menjadi dua gateway: satu untuk join dan satu untuk fork.
Contoh penggunaan yang salah:
...
<bpmn:exclusiveGateway id="ExclusiveGateway_1">
<bpmn:incoming>SequenceFlow_1</bpmn:incoming>
<bpmn:incoming>SequenceFlow_2</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_3</bpmn:outgoing>
<bpmn:outgoing>SequenceFlow_4</bpmn:outgoing>
</bpmn:exclusiveGateway>
...Contoh penggunaan yang benar:
...
<bpmn:exclusiveGateway id="ExclusiveGateway_1">
<bpmn:incoming>SequenceFlow_1</bpmn:incoming>
<bpmn:incoming>SequenceFlow_2</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_3</bpmn:outgoing>
</bpmn:exclusiveGateway>
...Pesan di Studio
Temuan rule ini tampil di panel Problems BPMN Editor dengan pesan berikut:
Gateway forks and joins
Cara memperbaiki
- Pisahkan menjadi dua gateway: satu gateway untuk menggabungkan cabang yang masuk, disusul satu gateway untuk memecah alur ke cabang berikutnya.
Referensi
Dokumentasi BPMN Linter: https://github.com/bpmn-io/bpmnlint/blob/main/docs/rules/no-gateway-join-fork.md
