APA SAJA SINTAKS BPMN?
Ada banyak notasi standar BPMN. Berikut ini notasi sintaks BPMN yang sering digunakan:
Tasks
Notasi Task digunakan untuk memodelkan pekerjaan yang dilakukan dalam sebuah proses.
Service Task
Service Task dalam BPMN adalah tugas yang merepresentasikan suatu aktivitas atau layanan yang dilakukan oleh sebuah sistem atau aplikasi bisnis, dalam sebuah proses bisnis yang sedang dijalankan. Service Task mewakili aktivitas yang dilakukan oleh layanan web, layanan RESTful, aplikasi yang berjalan di server, atau sistem lain yang terhubung melalui jaringan.
Service Task digunakan untuk merepresentasikan tugas-tugas yang dijalankan oleh aplikasi bisnis atau sistem pada tahapan tertentu dalam proses bisnis. Tugas ini biasanya melibatkan pengambilan, manipulasi, dan/atau penyimpanan data. Misalnya, melakukan kalkulasi atau validasi data, memanggil fungsi atau metode di sebuah aplikasi, atau memperbarui data dalam sebuah sistem.
Service Task dalam BPMN dapat terhubung ke Service Task lainnya atau ke Event dalam sebuah proses bisnis. Ini memungkinkan pengguna untuk mengintegrasikan sistem atau aplikasi bisnis yang berbeda dalam satu proses bisnis. Pengguna dapat menentukan input dan output data, serta mengintegrasikan data yang dihasilkan oleh Service Task dengan tugas yang lain di dalam proses bisnis.
Service Task digunakan untuk meng-invoke logika bisnis. Pada Camunda, hal ini dilakukan dengan memanggil kode Java atau menyediakan item dari eksternal atau meng-invoke web service.
Send Task
Send Task dalam BPMN adalah tugas yang merepresentasikan pengiriman pesan atau notifikasi ke pihak yang ditentukan, pada tahapan tertentu dalam sebuah proses bisnis. Tugas ini mengirimkan informasi yang dibutuhkan untuk melanjutkan proses bisnis ke sistem atau orang yang tepat.
Send Task dapat digunakan untuk mengirim pesan melalui email, SMS, atau kanal komunikasi lainnya. Dalam BPMN, Send Task biasanya digunakan untuk mengirim pesan yang memerlukan aksi selanjutnya dari pihak yang menerima pesan.
Contoh penggunaan Send Task adalah dalam sebuah proses bisnis pengiriman barang. Ketika pesanan telah dikirim, sistem akan mengirimkan pesan ke pelanggan yang berisi informasi tentang nomor resi pengiriman dan perkiraan waktu tiba barang. Pelanggan kemudian dapat menggunakan informasi ini untuk melacak pengiriman dan memastikan bahwa barang telah diterima.
Pada dasarnya, Send Task di BPMN merupakan tugas yang hanya mengirim pesan, tanpa melakukan tindakan atau manipulasi data. Setelah pesan terkirim, proses bisnis
akan dilanjutkan ke tugas berikutnya. Send Task dapat digunakan secara mandiri atau dihubungkan dengan tugas lain di dalam proses bisnis.
User Task
User Task dalam BPMN adalah tugas yang menunjukkan bahwa pekerjaan tertentu dalam sebuah proses bisnis perlu dilakukan oleh seorang manusia atau pengguna (user) tertentu. User Task ini diberikan pada orang atau pihak yang ditentukan, dan memungkinkan mereka untuk melihat dan menyelesaikan tugas yang terkait dengan proses bisnis.
User Task biasanya digunakan dalam situasi di mana interaksi manusia diperlukan, misalnya dalam proses persetujuan atau verifikasi dokumen, atau dalam pengajuan permintaan. Dalam BPMN, User Task diwakili oleh ikon gambar manusia (user), dan memiliki atribut yang menggambarkan detail tugas, seperti deskripsi, waktu yang diperlukan untuk menyelesaikan tugas, prioritas, dan tanggung jawab.
Contoh penggunaan User Task adalah dalam sebuah proses bisnis pemesanan tiket pesawat. Ketika pelanggan melakukan pemesanan tiket pesawat secara online, proses bisnis akan mencakup beberapa tahapan, seperti verifikasi data pelanggan, pemilihan tempat duduk, dan pembayaran. Setiap tahap memerlukan interaksi manusia atau pengguna untuk menyelesaikan tugas tertentu.
User Task dapat dikaitkan dengan sistem manajemen tugas (task management system) untuk memastikan bahwa tugas diberikan kepada orang yang tepat pada waktu yang tepat. Dalam BPMN, setelah User Task diselesaikan, proses bisnis akan dilanjutkan ke tugas selanjutnya, misalnya Gateway atau Service Task.
User Task digunakan untuk memodelkan pekerjaan yang harus dilakukan oleh aktor manusia. Saat eksekusi proses mencapai sebuah User Task, maka sebuah task baru dibuat dalam daftar Task milik pengguna atau kelompok pengguna.
id attribute : wajib didefinisikan, sedangkan nama atribut bersifat opsional.
<userTask id="theTask" name="Important task" />
Business Rule Task
Business Rule Task dalam BPMN adalah sebuah tugas dalam proses bisnis yang melibatkan pengambilan keputusan berdasarkan aturan bisnis atau logika bisnis tertentu. Business Rule Task biasanya digunakan dalam situasi di mana keputusan yang diambil dalam proses bisnis tergantung pada logika bisnis atau aturan bisnis yang telah ditetapkan sebelumnya.
Dalam BPMN, Business Rule Task diwakili oleh ikon bentuk segi empat dan memiliki atribut yang menggambarkan detail aturan bisnis atau logika yang digunakan. Aturan bisnis dapat ditentukan menggunakan bahasa pemrograman yang sesuai, seperti Java atau JavaScript, atau menggunakan notasi formal seperti DMN (Decision Model and Notation).
Contoh penggunaan Business Rule Task adalah dalam proses bisnis pengajuan pinjaman. Saat pengajuan pinjaman diterima, proses bisnis dapat memeriksa berbagai faktor, seperti riwayat kredit pelanggan, jumlah pinjaman, dan durasi pinjaman, dan kemudian membuat keputusan apakah pengajuan pinjaman dapat disetujui atau tidak. Keputusan ini dapat ditentukan oleh aturan bisnis yang telah ditetapkan sebelumnya.
Business Rule Task memungkinkan pengambilan keputusan dalam proses bisnis dilakukan secara otomatis berdasarkan aturan bisnis yang telah ditetapkan sebelumnya. Hal ini dapat meningkatkan efisiensi proses bisnis dan mengurangi risiko kesalahan manusia.
Business Rule Task digunakan untuk mengeksekusi satu atau lebih rules secara synchronous dengan memanggil kode Java atau menyediakan item dari eksternal atau meng-invoke web service.
Manual Task
Manual Task dalam BPMN adalah tugas dalam proses bisnis yang dilakukan secara manual oleh manusia atau tidak dapat dilakukan secara otomatis. Manual Task biasanya digunakan dalam situasi di mana proses bisnis memerlukan intervensi manusia, misalnya untuk memeriksa atau memvalidasi data, mengisi formulir, atau memberikan persetujuan atau penolakan.
Dalam BPMN, Manual Task diwakili oleh ikon bentuk segiempat dengan sudut membulat dan memiliki deskripsi atau label yang menjelaskan tugas yang perlu dilakukan. Manual Task tidak memiliki aliran proses atau urutan, yang berarti proses bisnis akan berhenti di sini dan menunggu tindakan manusia sebelum bisa melanjutkan.
Contoh penggunaan Manual Task adalah dalam proses bisnis pengajuan cuti. Setelah karyawan mengajukan permohonan cuti, proses bisnis akan mencakup Manual Task di mana manajer harus menyetujui atau menolak permohonan tersebut. Manual Task ini memungkinkan manajer untuk memeriksa ketersediaan staf, mengevaluasi kepentingan bisnis, atau mempertimbangkan kebijakan perusahaan sebelum memberikan persetujuan.
Manual Task memungkinkan proses bisnis melibatkan intervensi manusia ketika diperlukan. Hal ini dapat memastikan bahwa keputusan yang dibuat dalam proses bisnis lebih akurat dan sesuai dengan kondisi dan kebutuhan saat ini. Namun, penggunaan terlalu banyak Manual Task dalam proses bisnis dapat memperlambat proses dan mengurangi efisiensi kerja.
Manual Task mendefinisikan Task yang berada di luar BPM engine. Hal ini digunakan untuk memodelkan pekerjaan yang diselesaikan oleh entitas eksternal yang tidak perlu diketahui oleh engine.
<manualTask id="myManualTask" name="Manual Task" />
Gateways
Notasi Gateways digunakan untuk mengontrol alur dalam sebuah proses. Notasi ini digunakan untuk memodelkan kontrol alur yang bersifat decisions atau fork/join/concurrent berdasarkan data dan event tertentu.
Data-based Exclusive Gateway (XOR)
Exclusive gateway ( XOR gateway atau exclusive data-based gateway) digunakan untuk memodelkan proses decision. Saat eksekusi proses mencapai XOR Gateway, maka semua alur akan dievaluasi berdasarkan urutan yang telah didefinisikan. Alur dengan kondisi ‘true’ akan dipilih, dan hanya satu alur yang akan dieksekusi. Jika ada lebih dari satu alur dengan kondisi ‘true’, maka alur yang pertama kali didefinisikan akan dipilih. Jika tidak ada alur dengan kondisi ‘true’ maka akan muncul runtime exception, kecuali jika kita telah mendefinisikan alur yang default (‘else’).
Parallel Gateway
Parallel Gateway digunakan untuk memodelkan proses konkuren, dan dapat digunakan untuk membuat alur percabangan atau menggabungkan dua alur. Tidak ada proses evaluasi kondisi.
Fungsi dari parallel gateway berdasarkan alur masuk dan keluar adalah sebagai berikut:
- Fork: semua alur yang keluar dari parallel gateway akan dieksekusi secara paralel.
- Join: semua alur eksekusi konkuren yang masuk ke dalam parallel gateway akan menunggu di gateway sampai semua eksekusi selesai.
Inclusive Gateway
Inclusive Gateway merupakan kombinasi dari exclusive dan parallel gateway.
Fungsi dari Inclusive gateway berdasarkan alur masuk dan keluar adalah sebagai berikut:
- Fork: semua alur yang keluar dari inclusive gateway akan dievaluasi, jika bernilai ‘true’ akan dieksekusi secara paralel.
- Join: semua alur eksekusi konkuren yang masuk ke dalam inclusive gateway akan menunggu di gateway sampai semua eksekusi selesai.
Event-based Gateway
Melalui Event-based Gateway, kita dapat membuat keputusan berdasarkan sebuah event. Setiap alur yang keluar dari Gateway harus dihubungkan oleh event perantara.
Event
Dalam BPMN ada tiga jenis Event yaitu start events, intermediate events dan end events. Ketiga jenis event ini dapat menangkap (catching event) atau mentrigger proses (throwing event). Catching event dapat digunakan saat:
- Memulai proses.
- Melanjutkan alur proses.
- Task sedang diproses atau sub-proses dibatalkan.
Throwing events adalah event yang dapat:
- Dibangkitkan selama proses berjalan
- Dibangkitkan di akhir proses
Start Event
None/Blank event
Secara teknis, Blank/None start event digunakan saat trigger untuk memulai sebuah process instance belum ditentukan secara spesifik. Sebagai contoh, None start event digunakan saat process instances dimulai dengan melakukan pemanggilan API melalui method startProcessInstanceBy.
Subproses selalu dimulai oleh None/Blank Event.
Timer
Start event dengan tipe Timer digunakan untuk memulai sebuah proses pada waktu yang telah ditentukan. Notasi ini digunakan untuk proses yang bisa dimulai hanya sekali saja dan proses yang harus dimulai pada interval waktu yang spesifik.
Sebuah subproses tidak bisa memiliki sebuah start event bertipe Timer
Message
Start event dengan tipe message dapat digunakan untuk memulai sebuah proses. Berbeda dengan tipe signal, Message event selalu diarahkan ke satu orang penerima. Sebuah process dapat dimulai dengan menggunakan salah satu dari dua pesan yang berbeda. Sebagai contoh, dapat dilihat pada diagram di bawah ini. Order fulfillment dapat dimulai berdasarkan Message adanya order dari web atau dari fax.
Hal-hal yang harus dipenuhi saat sebuah definisi proses dimulai dengan Message event adalah:
- Nama message event harus unik pada sebuah definisi proses.
- Nama message event harus unik pada seluruh proses yang di deploy.
- Saat deployment versi baru dari sebuah definisi proses, message subscription dari versi sebelumnya dibatalkan.
Signal
Start event bertipe Signal dapat digunakan untuk memulai sebuah process instance. Hal-hal yang harus dipenuhi saat sebuah definisi proses dimulai dengan Signal event adalah:
- Nama Signal event harus unik pada sebuah definisi proses.
Nama Signal event tidak harus unik pada seluruh proses yang di deploy. Jadi, diperbolehkan untuk memiliki lebih dari satu Signal event dengan nama yang sama pada keseluruhan proses yang di-deploy.
- Saat deployment versi baru dari sebuah definisi proses, Signal subscription dari versi sebelumnya dibatalkan.
Conditional
Start event bertipe conditional dapat digunakan untuk memulai sebuah proses dengan mengevaluasi sejumlah kondisi. Sebuah proses dapat memiliki satu atau lebih start event bertipe conditional. Hal-hal yang harus diperhatikan saat sebuah definisi proses dimulai dengan Conditional event:
- Kondisi dari conditional start event harus bersifat unik pada sebuah definisi proses.
- Saat deployment versi baru dari sebuah definisi proses, Conditional subscription dari versi sebelumnya dibatalkan.
Intermediate Event
Intermediate Event atau acara perantara dalam Business Process Model and Notation (BPMN) adalah jenis event atau acara yang terjadi di tengah-tengah jalur alur suatu proses bisnis. Intermediate event digunakan untuk menunjukkan kejadian atau kondisi yang mempengaruhi jalannya suatu proses bisnis, tetapi tidak memulai atau mengakhiri proses.
Intermediate event dapat terjadi dalam bentuk sinyal (signal), pesan (message), waktu (timer), kesalahan (error), penanganan (compensation), atau kondisi (conditional). Setiap jenis intermediate event memiliki arti dan fungsi yang berbeda-beda dalam proses bisnis.
Contoh intermediate event dalam BPMN adalah ketika suatu tugas harus menunggu persetujuan dari pihak lain sebelum dapat dilanjutkan. Event ini dapat direpresentasikan sebagai intermediate event tipe "Sinyal" atau "Pesan" yang menunjukkan bahwa tugas tersebut berhenti dan menunggu pemberitahuan atau sinyal dari pihak yang berwenang. Setelah menerima sinyal atau pesan, tugas tersebut dapat dilanjutkan.
Terminate Event
Terminate event berfungsi untuk mengakhiri sebuah scope dan semua yang terkandung di dalamnya. Terminate event ini berguna jika kita memiliki aliran paralel dalam suatu proses dan ingin segera menggunakan semua token yang tersedia dalam scope yang sama. Terminate event pada tingkat instance proses akan mengakhiri seluruh instance, dan seluruh sub prosesnya.
Sub Process
Subprocess dalam BPMN adalah bentuk pemodelan yang memungkinkan pengelompokan tugas-tugas yang lebih kecil dan terkait dalam suatu proses menjadi satu unit yang lebih besar. Subprocess juga memungkinkan tugas-tugas yang terkait dengan proses yang sama, dapat dilakukan dengan cara yang berbeda atau di dalam ruang lingkup yang lebih terbatas.
Dalam BPMN, sebuah Subprocess diwakili oleh sebuah bentuk persegi panjang dengan sudut-sudut yang membulat, dan biasanya memiliki deskripsi atau label yang menjelaskan tugas yang diperlukan di dalamnya. Subprocess dapat dibagi menjadi dua jenis, yaitu Embedded Subprocess dan Independent Subprocess.
Embedded Subprocess: adalah Subprocess yang terletak di dalam proses utama dan tergantung pada aktivitas utama. Embedded Subprocess dapat menerima
- aliran masukan atau keluaran dari aktivitas utama atau dari Subprocess lain di dalamnya.
- Independent Subprocess: adalah Subprocess yang independen dari aktivitas utama dan tidak tergantung pada aktivitas di luar Subprocess. Independent Subprocess memiliki input dan output yang terpisah dari aktivitas utama.
Contoh penggunaan Subprocess adalah dalam proses bisnis pemesanan makanan di restoran. Subprocess dapat digunakan untuk menggabungkan tugas-tugas seperti memesan makanan, memproses pembayaran, dan pengiriman makanan menjadi satu unit yang lebih besar, yang memungkinkan restoran untuk memonitor keseluruhan proses secara lebih efisien.
Subprocess sangat berguna dalam pemodelan proses bisnis yang kompleks dan terstruktur, di mana beberapa tugas dan aktivitas terkait perlu dikelompokkan bersama dalam satu unit yang terkoordinasi dan mudah dipahami. Subprocess memungkinkan pemodelan proses bisnis yang lebih rapi dan terorganisir, serta mempermudah pemahaman dan pelacakan proses bisnis secara keseluruhan.
Embedded Subprocess
Embedded Sub Process adalah aktivitas yang terdiri dari aktivitas, gateway, event, dll yang membentuk sebuah proses sebagai bagian dari proses yang lebih besar. Subprocess didefinisikan di dalam sebuah parent process.
Subprocesses memiliki dua kegunaan yaitu:
- Memodelkan hirarki proses.
- Membuat sebuah scope dari event.
Pemodelan subprocess adalah dengan menggunakan kotak yang diberi label Subprocess seperti contoh di bawah ini.
Call Activity
Perbedaan antara call activity dan embedded subprocess adalah call activity merujuk pada sebuah proses di luar definisi proses sedangkan embedded subprocess didefinisikan di dalam parent process. Manfaat utama dari call activity adalah reusability sehingga proses tersebut dapat dipanggil oleh sejumlah proses lainnya. Call activity divisualisasikan mirip dengan embedded subprocess namun dengan border yang lebih tebal.
Event Subprocess
Event subprocess adalah subprocess yang ditrigger oleh sebuah event. Event subprocess dapat ditambahkan di level process atau subprocess. Event subprocess dapat ditrigger dengan menggunakan message events, error events, signal events, timer events, atau compensation events. Event subprocess divisualisasikan mirip dengan embedded subprocess namun dengan border berupa garis putus-putus.
Transaction Subprocess
Transaction subprocess adalah subproses yang dapat digunakan untuk mengelompokkan beberapa aktivitas ke suatu transaksi. Transaksi adalah unit kerja logis yang memungkinkan pengelompokan serangkaian aktivitas individu, sehingga mereka bisa dikatakan berhasil atau gagal secara kolektif atau bersama-sama
Sebuah transaksi dapat memiliki tiga kemungkinan hasil:
- Transaksi berhasil.
- Transaksi dibatalkan.
- Transaksi diakhiri.
Diagram berikut menggambarkan tiga hasil yang berbeda: