Business Process/Linter Rules

XOR Gateway Has Condition

Memastikan setiap cabang Exclusive Gateway memiliki kondisi yang bermakna, kecuali default flow.

AtributNilai
Rule IDxor-gateway-has-condition
SeverityError — wajib diperbaiki agar BPMN lolos linter
Elemen yang dicekSequence flow yang keluar dari Exclusive Gateway (XOR) yang bercabang
SumberPlugin linter AlurKerja (bpmnlint-plugin-alurkerja)

Rule XOR Gateway Has Condition memeriksa Exclusive Gateway (XOR) yang memiliki dua cabang atau lebih. Setiap sequence flow yang keluar harus memiliki condition expression, kecuali satu cabang yang ditandai sebagai Default Flow. Rule ini juga menolak kondisi placeholder seperti ${true} yang selalu bernilai benar.

Pesan di Studio

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

  • Sequence flow from XOR gateway is missing condition expression — every non-default branch must have a condition
    Ada cabang tanpa kondisi dan cabang itu bukan Default Flow.
  • Sequence flow uses placeholder condition "${true}" — replace with a meaningful condition (e.g. ${status == "approved"})
    Kondisi cabang hanya berisi ${true} atau #{true}.

Kenapa ini masalah

Exclusive Gateway hanya memilih satu cabang berdasarkan kondisi. Cabang tanpa kondisi membuat engine tidak bisa menentukan jalur mana yang diambil, dan kondisi ${true} membuat cabang itu selalu terpilih sehingga cabang lain tidak pernah berjalan.

Cara memperbaiki

  1. Klik setiap sequence flow yang keluar dari gateway, lalu isi Condition di Properties Panel, misalnya ${status == "approved"}.
  2. Untuk cabang "selain itu", tandai sebagai Default Flow — cabang default tidak memerlukan kondisi.
  3. Ganti kondisi ${true} dengan kondisi yang benar-benar memeriksa nilai variabel proses.
  4. Beri nama setiap cabang yang memiliki kondisi (misalnya Disetujui / Ditolak) — sequence flow berkondisi tanpa nama akan dilaporkan oleh Label Required.

Lihat juga Variabel dan Operator untuk penulisan kondisi.

Rule terkait