SINTAKS BPMN : EVENT

Dalam BPMN ada tiga jenis Event yaitu start events, intermediate events dan end events. Ketiga jenis event ini dapat menangkap (catching event) atau mentrigger proses (throwing event). Catching event dapat digunakan saat:

    • Memulai proses.
    • Melanjutkan alur proses.
    • Task sedang diproses atau sub-proses dibatalkan.

Throwing events adalah event yang dapat:

    • Dibangkitkan selama proses berjalan
    • Dibangkitkan di akhir proses


Start Event

None/Blank event

Secara teknis, Blank/None start event digunakan saat trigger untuk memulai sebuah process instance belum ditentukan secara spesifik. Sebagai contoh, None start event digunakan saat process instances dimulai dengan melakukan pemanggilan API melalui method startProcessInstanceBy.

Subproses selalu dimulai oleh None/Blank Event.

Timer

Start event dengan tipe Timer digunakan untuk memulai sebuah proses pada waktu yang telah ditentukan. Notasi ini digunakan untuk proses yang bisa dimulai hanya sekali saja dan proses yang harus dimulai pada interval waktu yang spesifik.

Sebuah subproses tidak bisa memiliki sebuah start event bertipe Timer

Message

Start event dengan tipe message dapat digunakan untuk memulai sebuah proses. Berbeda dengan tipe signal, Message event selalu diarahkan ke satu orang penerima. Sebuah process dapat dimulai dengan menggunakan salah satu dari dua pesan yang berbeda. Sebagai contoh, dapat dilihat pada diagram di bawah ini. Order fulfillment dapat dimulai berdasarkan Message adanya order dari web atau dari fax.

Hal-hal yang harus dipenuhi saat sebuah definisi proses dimulai dengan Message event adalah:

    • Nama message event harus unik pada sebuah definisi proses.
    • Nama message event harus unik pada seluruh proses yang di deploy.
    • Saat deployment versi baru dari sebuah definisi proses, message subscription dari versi sebelumnya dibatalkan.

Signal

Start event bertipe Signal dapat digunakan untuk memulai sebuah process instance. Hal-hal yang harus dipenuhi saat sebuah definisi proses dimulai dengan Signal event adalah:

    • Nama Signal event harus unik pada sebuah definisi proses.
    • Nama Signal event tidak harus unik pada seluruh proses yang di deploy. Jadi, diperbolehkan untuk memiliki lebih dari satu Signal event dengan nama yang sama pada keseluruhan proses yang di-deploy.
    • Saat deployment versi baru dari sebuah definisi proses, Signal subscription dari versi sebelumnya dibatalkan.

Conditional

Start event bertipe conditional dapat digunakan untuk memulai sebuah proses dengan mengevaluasi sejumlah kondisi. Sebuah proses dapat memiliki satu atau lebih start event bertipe conditional. Hal-hal yang harus diperhatikan saat sebuah definisi proses dimulai dengan Conditional event:

  • Kondisi dari conditional start event harus bersifat unik pada sebuah definisi proses.
  • Saat deployment versi baru dari sebuah definisi proses, Conditional subscription dari versi sebelumnya dibatalkan.

Intermediate Event

Intermediate Event atau acara perantara dalam Business Process Model and Notation (BPMN) adalah jenis event atau acara yang terjadi di tengah-tengah jalur alur suatu proses bisnis. Intermediate event digunakan untuk menunjukkan kejadian atau kondisi yang mempengaruhi jalannya suatu proses bisnis, tetapi tidak memulai atau mengakhiri proses.

Intermediate event dapat terjadi dalam bentuk sinyal (signal), pesan (message), waktu (timer), kesalahan (error), penanganan (compensation), atau kondisi (conditional). Setiap jenis intermediate event memiliki arti dan fungsi yang berbeda-beda dalam proses bisnis.

Contoh intermediate event dalam BPMN adalah ketika suatu tugas harus menunggu persetujuan dari pihak lain sebelum dapat dilanjutkan. Event ini dapat direpresentasikan sebagai intermediate event tipe "Sinyal" atau "Pesan" yang menunjukkan bahwa tugas tersebut berhenti dan menunggu pemberitahuan atau sinyal dari pihak yang berwenang. Setelah menerima sinyal atau pesan, tugas tersebut dapat dilanjutkan.

Terminate Event

Terminate event berfungsi untuk mengakhiri sebuah scope dan semua yang terkandung di dalamnya. Terminate event ini berguna jika kita memiliki aliran paralel dalam suatu proses dan ingin segera menggunakan semua token yang tersedia dalam scope yang sama. Terminate event pada tingkat instance proses akan mengakhiri seluruh instance, dan seluruh sub prosesnya.

Sumber: Buku Tanya Jawab BPMN & Camunda (2023), Ditulis oleh Wisnu Manupraba & Novi Setiani

Knowledge series