Single Event Definition
Memastikan sebuah event tidak memiliki lebih dari satu event definition.
| Atribut | Nilai |
|---|---|
| Rule ID | single-event-definition |
| Severity | Error — wajib diperbaiki agar BPMN lolos linter |
| Elemen yang dicek | Event |
| Sumber | bpmnlint (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:
...
<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:
...
<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
- Pastikan setiap event hanya memiliki satu tipe pemicu.
- 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
