Lewati ke konten utama

Send Task & Receive Task

Send Task dan Receive Task adalah dua tipe task yang berpasangan — satu mengirim pesan, satu menunggu pesan. Keduanya erat kaitannya dengan Message Event, namun memiliki nuansa penggunaan yang berbeda.


Send Task

Send Task adalah task yang dirancang khusus untuk mengirimkan pesan ke peserta lain.

Simbol: Ikon amplop terisi (filled envelope) di sudut kiri atas
Analogi: Anda duduk, menyiapkan surat, memasukkannya ke amplop, lalu mengirimnya — ini adalah pekerjaan yang Anda lakukan.

Kapan Send Task vs. Message Throwing Event

AspekSend TaskMessage Throwing Intermediate Event
Semantiknya"Pekerjaan mengirimi pesan""Kejadian bahwa pesan dikirim"
Ada durasi/effort?✅ Bisa ya❌ Instan
Bisa dipantau/dimonitor?✅ Masuk task list
Bisa gagal dan perlu retry?Lebih rumit
Kejelasan diagramLebih eksplisitLebih ringkas

Gunakan Send Task ketika:

  • Pengiriman pesan adalah "pekerjaan" yang membutuhkan persiapan (menyiapkan konten, format, lampiran)
  • Pengiriman bisa gagal dan perlu penanganan error khusus
  • Anda ingin menunjukkan bahwa ada effort (waktu, sumber daya) dalam pengiriman

Gunakan Message Throwing Event ketika:

  • Pengiriman pesan adalah konsekuensi instan dari suatu kejadian
  • Diagram ingin menunjukkan "pada titik ini, pesan dikirim" tanpa menekankan proses pengirimannya

Contoh Send Task

Lane: Sistem Back-Office
[Send Task: Kirim Surat Keputusan Kredit ke Nasabah]
- Persiapkan PDF surat keputusan dari template
- Lampirkan jadwal angsuran
- Kirim via email dan cetak fisik untuk arsip
- Duration estimate: 5 menit (termasuk pembuatan dokumen)
Lane: Petugas Pengadaan
[Send Task: Kirim Purchase Order ke Vendor]
- Buat dokumen PO berdasarkan data persetujuan
- Kirim via email resmi perusahaan
- Simpan salinan di sistem DMS

Contoh Proses dengan Send Task

[Exclusive Gateway: Hasil Analisis Kredit]
├─ Disetujui → [Send Task: Kirim Surat Persetujuan]
│ ↓
│ [Service Task: Proses Pencairan]

└─ Ditolak → [Send Task: Kirim Surat Penolakan]

[End Event: Kredit Ditolak]

Receive Task

Receive Task adalah task yang dirancang untuk menunggu dan menerima pesan dari peserta lain.

Simbol: Ikon amplop tidak terisi (outline envelope) di sudut kiri atas
Analogi: Anda menunggu di depan kotak surat sampai surat datang — ini adalah pekerjaan menunggu yang aktif.

Kapan Receive Task vs. Message Catching Event

AspekReceive TaskMessage Catching Intermediate Event
Semantiknya"Pekerjaan menerima dan memproses pesan""Kejadian bahwa pesan diterima"
Ada pemrosesan setelah terima?✅ Implisit❌ Terpisah di task berikutnya
Kejelasan diagramLebih eksplisitLebih ringkas
Bisa instantiating process?✅ (jika adalah task pertama)✅ (Message Start Event)

Gunakan Receive Task ketika:

  • Penerimaan pesan disertai pemrosesan yang segera dilakukan (verifikasi format, logging)
  • Anda ingin menekankan bahwa ada effort dalam "menerima" (memeriksa kelengkapan, mengarsipkan)

Gunakan Message Catching Event ketika:

  • Penerimaan pesan murni sebagai trigger untuk melanjutkan alur
  • Diagram ingin menunjukkan "proses menunggu di sini" tanpa detail

Contoh Receive Task

Lane: Tim Pengadaan
[Send Task: Kirim RFQ ke Vendor]

[Receive Task: Terima dan Catat Penawaran Vendor]
- Verifikasi format penawaran
- Simpan ke sistem e-procurement
- Log waktu terima untuk audit trail

[User Task: Evaluasi Penawaran]
Lane: Finance
[Service Task: Ajukan Transfer via Internet Banking]

[Receive Task: Terima Konfirmasi Transfer dari Bank]
- Konfirmasi nomor referensi
- Cocokkan jumlah transfer

[Service Task: Update Status Pembayaran]

Pola Send Task + Receive Task

Pola klasik yang menggambarkan komunikasi dua arah antar peserta:

Pool: Perusahaan Pool: Vendor (Black Box)
[Send Task: Kirim PO] ─── "Purchase Order" ───→
[... proses vendor ...]
[Receive Task: Terima Konfirmasi] ←── "Order Confirmation" ───

[Service Task: Update Status PO]

Bandingkan dengan versi yang menggunakan Event:

Pool: Perusahaan Pool: Vendor (Black Box)
[Service Task: Buat PO]

→Message: "Purchase Order"─────────────────────→
←Message: "Order Confirmation"─────────────────←
◎ Message Catching: "Terima Konfirmasi"

[Service Task: Update Status PO]

Keduanya valid — pilih berdasarkan tingkat detail yang ingin ditunjukkan.


Instantiating Receive Task

Receive Task bisa berfungsi sebagai pemula proses jika ia adalah elemen pertama dalam proses (menggantikan Message Start Event). Ini disebut instantiating Receive Task.

Pool: Sistem Pemrosesan Pesanan
[Receive Task: Terima Pesanan dari E-Commerce] ← Memulai proses

[Service Task: Validasi Ketersediaan Stok]

...

Bedanya dengan Message Start Event adalah semantik: Start Event lebih eksplisit bahwa "pesan ini yang memulai proses", sementara Receive Task menekankan "pekerjaan menerima" adalah task pertama.


Ringkasan: Kapan Pakai Apa

SituasiRekomendasi
Mengirim email notifikasi sederhanaMessage Throwing Event
Menyiapkan + mengirim dokumen formal (PO, kontrak, surat)Send Task
Proses berhenti menunggu konfirmasiMessage Catching Event
Menerima + memverifikasi + mengarsipkan dokumen yang masukReceive Task
Pesan sebagai trigger instan tanpa effortMessage Event
Pesan yang membutuhkan "kerja" saat kirim/terimaSend/Receive Task

Selanjutnya: Sub-Process →