Lewati ke konten utama

Call Activity

Simbol Call Activity dalam BPMN 2.0

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):

Anatomy Call Activity

  • 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.

WaktuParent ProcessCalled 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.

WaktuParent ProcessCalled 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 PemanggilInput ke KYCOutput dari KYC
Pembukaan RekeningnomorKTP, namaLengkapstatusKYC, skorRisiko
Pengajuan KreditnomorKTP, namaLengkapstatusKYC, skorRisiko
Pembuatan Kartu KreditnomorKTP, namaLengkapstatusKYC, 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 PemanggilInput ke ApprovalOutput dari Approval
Pengajuan Cutiapprover1, approver2, nilaiCutihasilPersetujuan, komentar
Permintaan Anggaranapprover1, approver2, nilaiAnggaranhasilPersetujuan, komentar
Pengadaan Asetapprover1, approver2, nilaiAsethasilPersetujuan, 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.