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 atasParent Process: Proses sederhana yang mengandung satu Call Activity (ditandai dengan border tebal dan tanda +). Tampilan ini menyembunyikan kompleksitas proses yang dipanggil.
  • Baris bawahCalled 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 ProcessVariabel di Called Process
namaLengkapnama
nomorKTPnik
tanggalLahirtgl_lahir
jenisPermohonantipe

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 ProcessVariabel di Parent Process
statusVerifikasihasilKYC
skorRisikoskorKYC
catatanVerifikatorketeranganKYC

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
T2Menunggu▶ Mulai berjalan
T3Menunggu▶ Memproses...
T4Melanjutkan 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
T2Langsung 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.