Business Process/Linter Rules

Single Event Definition

Memastikan sebuah event tidak memiliki lebih dari satu event definition.


AtributNilai
Rule IDsingle-event-definition
SeverityError — wajib diperbaiki agar BPMN lolos linter
Elemen yang dicekEvent
Sumberbpmnlint (rule bawaan)

Rule Single Event Definition memeriksa agar sebuah event tidak memiliki lebih dari satu event definition. Event dengan beberapa event definition (misalnya dua message event definition sekaligus) bersifat ambigu dan tidak sesuai praktik yang benar. Setiap event sebaiknya menyatakan satu pemicu yang jelas.

Contoh penggunaan yang salah:

Contoh salah rule Single Event Definition
...
<bpmn:process id="Process_0q7j8eg" isExecutable="true">
  <bpmn:intermediateCatchEvent id="IntermediateEvent_1">
    <bpmn:messageEventDefinition messageRef="Message_1" />
    <bpmn:messageEventDefinition messageRef="Message_2" />
  </bpmn:intermediateCatchEvent>
</bpmn:process>
<bpmn:message id="Message_1" name="Message 1" />
<bpmn:message id="Message_2" name="Message 2" />
...

Contoh penggunaan yang benar:

Contoh benar rule Single Event Definition
...
<bpmn:process id="Process_0q7j8eg" isExecutable="true">
  <bpmn:intermediateCatchEvent id="IntermediateEvent_1">
    <bpmn:messageEventDefinition messageRef="Message_1" />
  </bpmn:intermediateCatchEvent>
</bpmn:process>
<bpmn:message id="Message_1" name="Message 1" />
...

Pesan di Studio

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

  • Event has multiple event definitions

Cara memperbaiki

  1. Pastikan setiap event hanya memiliki satu tipe pemicu.
  2. Kalau memang dibutuhkan beberapa pemicu, pecah menjadi beberapa event, atau gunakan Event-based Gateway untuk menunggu salah satu dari beberapa kejadian.

Referensi

Dokumentasi BPMN Linter: https://github.com/bpmn-io/bpmnlint/blob/main/docs/rules/single-event-definition.md