Lewati ke konten

D01 — Data Object

KodeD01
Nama BPMNData Object
TierA (wajib dikuasai)
DiperkenalkanModul 4
SpesifikasiOMG BPMN 2.0.2 §10.3.1 TODO-VERIFY

D01 — Data Object: dokumen pesanan dengan state [dibuat], [diverifikasi], [dikemas]
Unduh .bpmn

Memuat diagram…

Ikon dokumen (persegi dengan sudut atas kanan terlipat). Nama di bawahnya, diikuti state dalam kurung kotak: [dibuat], [diverifikasi], [dikemas]. Data Association (panah putus-putus) menghubungkan Data Object ke task.

Cara membuat di demo.bpmn.io: Klik task → ikon “Append Data Object” di context menu. Atau seret “Data Object” dari palet.


Data Object menyatakan: “Ada data tertentu yang dihasilkan atau dikonsumsi oleh task ini, dan data itu hidup dalam lingkup proses instance ini.”

Data Object bersifat lokal: ia dibuat dan dimusnahkan bersama satu instance proses. Ia tidak dibagi antar-instance.


Memvisualkan data yang mengalir dalam proses — bukan hanya urutan task. Memperlihatkan apa yang diproduksi dan apa yang dikonsumsi di setiap langkah.


Data Object muncul sebagai Data Object definition (bpmndi:DataObject) dalam XML, tapi yang divisualisasikan adalah Data Object Reference — referensi ke definisi tersebut dengan state tertentu.

Satu Data Object definition bisa memiliki beberapa referensi dengan state berbeda, memperlihatkan evolusi data sepanjang proses.


Gunakan Data Object ketika:

  • Kamu ingin menunjukkan dokumen atau data yang spesifik pada proses instance ini.
  • Data berubah state seiring berjalannya proses (dokumen yang dibuat → diverifikasi → dikemas).
  • Proses audit membutuhkan traceability data.

Jangan gunakan Data Object untuk data yang:

  • Persisten dan digunakan oleh banyak process instance → gunakan Data Store (D04).
  • Tidak relevan dengan pemahaman alur proses (noise visual).
  • Dibuat oleh sistem eksternal yang tidak perlu divisualisasikan dalam diagram ini.

Dalam Modul 4, “Dokumen Pesanan” memiliki tiga state:

  • [dibuat]: setelah task “Catat data pesanan”.
  • [diverifikasi]: setelah task “Verifikasi data pesanan”.
  • [dikemas]: setelah task “Kemas paket”.

Tiga referensi terpisah, satu definisi Data Object — menunjukkan transformasi dokumen.


Data Object 'Dokumen Pesanan' dengan state dalam proses Merchant
Unduh .bpmn

Memuat diagram…


  1. Temukan ikon dokumen (persegi dengan sudut terlipat).
  2. Baca nama data dan state-nya dalam [...].
  3. Ikuti Data Association (panah putus-putus) ke task yang menghasilkan atau menggunakannya.
  4. Panah menuju task = Data Input (task menggunakan data tersebut).
  5. Panah dari task = Data Output (task menghasilkan data tersebut).

“Data Object adalah file atau database.”

Bukan. Data Object adalah representasi konseptual dari data dalam proses. Ia tidak menentukan di mana data disimpan secara teknis. Untuk menyatakan penyimpanan persisten, gunakan Data Store.


Anti-pattern: Menggunakan Data Object untuk data bersama lintas proses.

Contoh: Data Object “Stok Produk” yang dipakai oleh banyak proses pesanan secara bersamaan. Data Object tidak bisa diakses lintas process instance — gunakan Data Store Reference.


ElemenBedanya
Data ObjectLokal pada satu proses instance; memiliki state
Data StorePersisten, diakses bersama banyak instance
Data AssociationPanah yang menghubungkan Data Object ke task

  • Data spesifik per transaksi/pesanan → Data Object.
  • Data yang dibagi antar-pesanan (inventori, katalog, log) → Data Store.

  • Apakah data ini dibuat baru setiap kali proses ini berjalan? → Data Object.
  • Apakah data ini sudah ada sebelum proses ini dimulai? → Data Store.
  • Apakah data ini perlu diakses oleh proses lain? → Data Store.

Mengapa “Dokumen Pesanan” menggunakan Data Object, bukan Data Store?

Karena setiap pesanan adalah dokumen unik yang dibuat dalam proses itu dan relevan hanya untuk proses itu. Pesanan A tidak membutuhkan akses ke dokumen Pesanan B. Lifecycle dokumen selesai ketika proses selesai.


  • Data Object harus dihubungkan ke task via Data Association (input atau output).
  • State dalam [...] bersifat opsional tapi direkomendasikan jika data berubah state.
  • Data Object tidak memiliki shape DI sendiri dalam definisi XML — yang divisualisasikan adalah Data Object Reference.

Di Camunda, Data Object dipetakan ke Process Variables. State tidak langsung dipetakan — biasanya diimplementasikan sebagai variabel terpisah atau sebagai properti dokumen.


Data Object merepresentasikan data yang dihasilkan atau dikonsumsi oleh task dalam lingkup satu proses instance, bukan lintas proses.