Call Activity
Call Activity memanggil sebuah proses yang sudah terdefinisi secara global dan berdiri sendiri (reusable process). Berbeda dari Sub-Process yang definisinya ada di dalam proses induk, proses yang dipanggil oleh Call Activity adalah proses independen yang bisa dipanggil dari mana saja.
Simbol: Persegi panjang sudut membulat dengan garis tebal (bold border)
Konsep Inti: Reusability
Call Activity adalah jawaban BPMN untuk prinsip Don't Repeat Yourself (DRY) dalam pemodelan proses.
Bayangkan sebuah Bank yang memiliki prosedur KYC (Know Your Customer) yang sama persis untuk:
- Pembukaan rekening tabungan
- Pengajuan kredit
- Pembuatan kartu kredit
- Perubahan data nasabah
Tanpa Call Activity: Prosedur KYC digambar berulang di setiap proses → 4 salinan, jika ada perubahan regulasi KYC harus update di 4 tempat.
Dengan Call Activity: Prosedur KYC didefinisikan sekali sebagai proses global → 4 proses memanggil KYC via Call Activity → perubahan KYC cukup di satu tempat, langsung berlaku di semua proses.
Anatomy Call Activity
Diagram berikut mengilustrasikan hubungan antara Parent Process (proses pemanggil) dan Called Process (proses global yang dipanggil):

- Baris atas — Parent Process: Proses sederhana yang mengandung satu Call Activity (ditandai dengan border tebal dan tanda
+). Tampilan ini menyembunyikan kompleksitas proses yang dipanggil. - Baris bawah — Called Process: Proses global yang sebenarnya berjalan ketika Call Activity dieksekusi. Proses ini berdiri sendiri dan bisa dipanggil dari proses mana pun.
Parameter Mapping: Input dan Output
Karena Called Process berjalan dalam scope-nya sendiri, variabel perlu di-mapping secara eksplisit.
Input Mapping
Nilai dari variabel proses pemanggil dikirim ke proses yang dipanggil sebelum Called Process dimulai:
| Variabel di Parent Process | → | Variabel di Called Process |
|---|---|---|
namaLengkap | → | nama |
nomorKTP | → | nik |
tanggalLahir | → | tgl_lahir |
jenisPermohonan | → | tipe |
Contoh: Proses Pengajuan Kredit mengirimkan nomorKTP miliknya ke variabel nik yang dikenali oleh Proses KYC.
Output Mapping
Hasil dari Called Process dikembalikan ke variabel proses pemanggil setelah Called Process selesai:
| Variabel di Called Process | → | Variabel di Parent Process |
|---|---|---|
statusVerifikasi | → | hasilKYC |
skorRisiko | → | skorKYC |
catatanVerifikator | → | keteranganKYC |
Contoh: Proses KYC menghasilkan statusVerifikasi = "LULUS", yang dikembalikan ke variabel hasilKYC di proses Pengajuan Kredit untuk digunakan pada langkah berikutnya.
Business Key
Identifier yang menghubungkan instance proses induk dengan instance proses yang dipanggil — berguna untuk pelacakan dan audit trail.
Mode Eksekusi
Synchronous (Default)
Proses induk berhenti dan menunggu sampai Called Process selesai, baru melanjutkan ke langkah berikutnya.
| Waktu | Parent Process | Called Process |
|---|---|---|
| T1 | ▶ Berjalan → tiba di Call Activity | — |
| T2 | ⏸ Menunggu | ▶ Mulai berjalan |
| T3 | ⏸ Menunggu | ▶ Memproses... |
| T4 | ▶ Melanjutkan dengan output KYC | ✅ Selesai |
Gunakan ketika hasil dari Called Process dibutuhkan untuk langkah berikutnya di Parent Process.
Asynchronous (Loose Coupling)
Proses induk tidak menunggu — ia mengirimkan pemanggilan dan langsung melanjutkan atau selesai. Biasanya diimplementasikan via Message atau Send Task, bukan Call Activity langsung.
| Waktu | Parent Process | Called Process |
|---|---|---|
| T1 | ▶ Berjalan → trigger Call | — |
| T2 | ▶ Langsung lanjut ke step berikutnya | ▶ Mulai berjalan |
| T3 | ✅ Selesai | ▶ Masih memproses... |
| T4 | — | ✅ Selesai (terpisah) |
Gunakan ketika Parent Process tidak membutuhkan hasil dari Called Process secara langsung.
Contoh Penggunaan di Berbagai Proses
Contoh 1: KYC sebagai Reusable Process
Proses yang memanggil KYC:
| Proses Pemanggil | Input ke KYC | Output dari KYC |
|---|---|---|
| Pembukaan Rekening | nomorKTP, namaLengkap | statusKYC, skorRisiko |
| Pengajuan Kredit | nomorKTP, namaLengkap | statusKYC, skorRisiko |
| Pembuatan Kartu Kredit | nomorKTP, namaLengkap | statusKYC, skorRisiko |
Proses KYC (dipanggil oleh ketiganya):
Start → Validasi NIK → Cek BI Checking → Verifikasi Alamat → End
Contoh 2: Proses Persetujuan Standar
Banyak organisasi memiliki prosedur approval yang sama untuk berbagai jenis permintaan:
| Proses Pemanggil | Input ke Approval | Output dari Approval |
|---|---|---|
| Pengajuan Cuti | approver1, approver2, nilaiCuti | hasilPersetujuan, komentar |
| Permintaan Anggaran | approver1, approver2, nilaiAnggaran | hasilPersetujuan, komentar |
| Pengadaan Aset | approver1, approver2, nilaiAset | hasilPersetujuan, komentar |
Proses Approval 2-Level (parameter-driven):
Start → User Task: Persetujuan Level 1 (assignee dari approver1) → User Task: Persetujuan Level 2 (assignee dari approver2) → End
Boundary Events pada Call Activity
Call Activity bisa memiliki Boundary Event seperti Activity lain. Boundary Event berlaku untuk seluruh called process — jika timer habis sebelum called process selesai, called process dibatalkan dan alur pindah ke Boundary Event.
Contoh Timer Boundary:
Call Activity: Proses KYC — jika tidak selesai dalam 5 menit → Service Task: Log Timeout & Eskalasi
Contoh Error Boundary:
Call Activity: Proses Pembayaran Eksternal — jika error "Pembayaran Gagal" → User Task: Pilih Metode Pembayaran Alternatif
Versioning
Ketika proses yang dipanggil berubah, Call Activity bisa dikonfigurasi untuk:
- Selalu memanggil versi terbaru (latest version)
- Memanggil versi spesifik (misalnya v2.1)
Ini penting untuk kontrol perubahan — proses yang sedang berjalan tidak terganggu oleh update proses yang dipanggil.
Hal yang Perlu Diperhatikan
Coupling yang Tepat
Call Activity menciptakan tight coupling antara proses pemanggil dan yang dipanggil. Perubahan interface (input/output) pada Called Process bisa berdampak ke semua pemanggil.
Monitoring
Instance Call Activity menghasilkan child instance di BPMS — Anda bisa melacak instance induk dan semua child-nya secara terpisah.
Rekursi
Secara teknis Call Activity bisa memanggil dirinya sendiri (rekursif), tapi ini sangat jarang dan harus dirancang dengan hati-hati untuk menghindari infinite loop.
Selanjutnya: Sub-Process vs. Call Activity →
Artikel Terkait
Sudah memahami konsep BPMN?
Wujudkan diagram Anda menjadi workflow automation nyata tanpa coding - dengan AlurKerja, platform BPM buatan Indonesia.