Lewati ke konten

Subprocess, Call Activity, dan Event Subprocess

Subprocess biasa memiliki scope dan detail alur internal. Bentuk expanded memperlihatkan detail; collapsed menyembunyikannya. Parent flow masuk dan keluar dari activity subprocess, tidak menerobos batasnya. Saat subprocess selesai, alur parent berlanjut.

Call Activity memanggil process/task global yang dapat digunakan ulang. Jangan menyamakan dengan embedded subprocess: yang satu memiliki scope lokal, yang lain mereferensikan definisi yang dapat dipakai lintas konteks. Data input/output dan keterikatan proses perlu ditentukan.

Event subprocess berada di dalam scope dan mulai ketika event pemicunya terjadi selama scope aktif. Mode interrupting menghentikan alur scope sesuai jenis trigger; non-interrupting menjalankan respons tambahan tanpa menghentikan alur utama.

Transaction adalah subprocess khusus yang memodelkan transaksi BPMN dengan event/flow cancel terkait. Jangan memakai kata “transaksi” pada label activity biasa lalu menganggap semantik transaction/cancel otomatis berlaku.

Ad-hoc menandai aktivitas internal yang tidak sepenuhnya diurutkan oleh Sequence Flow; urutan, pengulangan, atau aktivitas yang dilewati ditentukan sesuai model ad-hoc. Gunakan hanya bila kebebasan itu memang bagian realitas bisnis.

KebutuhanKandidat
Menyembunyikan detail lokal / menetapkan scopeEmbedded Subprocess
Menggunakan kembali definisi globalCall Activity
Menanggapi event selama scope aktifEvent Subprocess
Menggambarkan transaksi dengan cancel semanticsTransaction Subprocess
Aktivitas internal bersifat fleksibel/ad-hocAd-hoc Subprocess

[CAMUNDA] Periksa Camunda BPMN coverage untuk status versi. Notasi BPMN yang sah belum tentu executable di engine tertentu.

Subprocess sebagai kotak dekoratif tanpa scope, batas tanggung jawab, event attachment, atau kebutuhan mengelola kompleksitas tidak menambah makna. Hapus atau jelaskan alasan encapsulation.

“Kami memilih embedded subprocess untuk validasi pesanan karena langkah-langkahnya membentuk satu scope lokal dan exception-nya ditangani di dalam proses pemesanan. Call Activity ditolak karena proses ini tidak dipakai ulang sebagai definisi global.”

Ingat: pilih subprocess menurut batas semantik yang nyata, bukan semata-mata untuk merapikan gambar.