Lewati ke konten

A09 — Receive Task

KodeA09
Nama BPMNReceive Task
TierA (wajib dikuasai)
DiperkenalkanModul 3
SpesifikasiOMG BPMN 2.0.2 §10.2.1 TODO-VERIFY

A09 — Receive Task: ikon amplop kosong (outline) di pojok kiri atas (langkah ke-8: 'Terima bukti pengiriman')
Unduh .bpmn

Memuat diagram…

Persegi panjang dengan sudut melengkung + ikon amplop kosong (outline) di pojok kiri atas. Cari “Terima bukti pengiriman” (langkah kedelapan, sebelum End Event).

Bedakan dengan Message Intermediate Catch Event: Receive Task adalah kotak (aktivitas); Catch Event adalah lingkaran (event).


Receive Task menyatakan: “Proses menunggu di sini sampai pesan tertentu diterima dari partisipan lain. Penerimaan pesan ini adalah pekerjaan yang bermakna bisnis.”

Token tiba di Receive Task dan menunggu — tidak melanjutkan sampai pesan yang ditunggu tiba.


Membuat penerimaan pesan sebagai aktivitas bisnis yang eksplisit. Berguna ketika “menunggu dan memproses pesan” adalah langkah yang ingin kamu tampilkan sebagai unit kerja, bukan hanya penanda event.


Token tiba di Receive Task dan menunggu. Proses tidak melanjutkan sampai pesan yang cocok tiba. Ketika pesan tiba, Receive Task selesai dan token bergerak ke outgoing Sequence Flow.

Ini adalah mekanisme sinkronisasi asinkron: proses A mengirim pesan, proses B menunggu di Receive Task, ketika pesan tiba, proses B melanjutkan.


  • Menunggu konfirmasi pembayaran, persetujuan, atau notifikasi dari sistem lain.
  • Ketika “menerima dan memproses pesan” adalah unit kerja yang bermakna bisnis.
  • Berpasangan dengan Message Flow masuk dari Pool pengirim.

  • Jika menunggu pesan adalah hanya penanda titik tengah → gunakan Message Intermediate Catch Event (E02).
  • Untuk penerimaan event waktu → gunakan Timer Intermediate Catch Event (E03).

Receive Task “Terima bukti pengiriman” (amplop outline) — menunggu pesan dari pihak lain:

A09 — Receive Task dalam rangkaian tipe task berbeda
Unduh .bpmn

Memuat diagram…


Kasus 3 — pola komunikasi antar-Pool yang menggunakan Message Event (alternatif Receive Task):

Kasus 3 — komunikasi antar-Pool dalam Collaboration diagram
Unduh .bpmn

Memuat diagram…


Ikon amplop kosong di pojok kiri atas kotak = Receive Task. Task ini menunggu pesan sebelum melanjutkan. Cari Message Flow yang mengarah ke sini dari Pool lain.


“Receive Task = Task yang hanya menerima data”

Tidak. Receive Task spesifik untuk menerima pesan dari partisipan lain (lintas Pool). Untuk menerima data di dalam satu proses, gunakan Data Object dan Data Association.


Receive Task tanpa Message Flow masuk

Gejala: ada Receive Task tapi tidak ada Message Flow yang mengarah ke sana.

Diagnosis: token akan menunggu selamanya — tidak ada pesan yang bisa datang.

Perbaikan: tambahkan Message Flow dari elemen pengirim di Pool lain.


Tertukar denganPerbedaan kunci
Message Intermediate Catch Event (E02)Catch Event adalah penanda titik tunggu; Receive Task adalah unit kerja penuh
Send Task (A08)Send Task mengirim; Receive Task menerima
User Task (A04)User Task menunggu aksi manusia; Receive Task menunggu pesan dari sistem lain

Menunggu pesan adalah unit kerja utama → Receive Task
Menunggu pesan adalah titik penanda saja → Intermediate Message Catch Event
Menunggu konfirmasi manusia → User Task

  1. Apakah ini menunggu pesan dari partisipan lain (lintas Pool)?
  2. Apakah “menunggu dan memproses pesan” ini adalah pekerjaan bermakna bisnis?

Receive Task vs. Message Intermediate Catch Event adalah pilihan gaya yang sering digunakan secara bergantian. Perbedaannya: Receive Task secara eksplisit menyatakan bahwa penerimaan pesan adalah aktivitas yang dikerjakan — ada yang “mengerjakan” penerimaan itu. Intermediate Catch Event lebih abstrak: proses “berhenti dan menunggu.” Untuk konteks bisnis di mana penerimaan pesan melibatkan pemrosesan (misal: customer memeriksa email konfirmasi, memverifikasi isinya), Receive Task lebih ekspresif.


  • Nama mengikuti pola “kata kerja + objek” (mis. “Terima konfirmasi pesanan”).
  • Ada Message Flow masuk dari elemen pengirim di Pool lain.

Di Camunda 8, Receive Task dikonfigurasi untuk menunggu message dengan nama tertentu. Mirip dengan Intermediate Message Catch Event dalam konfigurasi. Keduanya bisa digunakan bergantian di Camunda.


Receive Task menunggu pesan dari partisipan lain sebelum melanjutkan — token “diblokir” di sini sampai pesan yang cocok tiba, menjadikan penerimaan pesan sebagai unit kerja yang eksplisit.