Business Process/Linter Rules

No Gateway Join Fork

Mencegah gateway melakukan join dan fork sekaligus.


AtributNilai
Rule IDno-gateway-join-fork
SeverityWarning — disarankan diperbaiki
Elemen yang dicekGateway
Sumberbpmnlint (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:

Contoh salah rule No Gateway Join Fork
...
<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:

Contoh benar rule No Gateway Join Fork
...
<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

  1. 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