Variabel dan Operator
Membuat dan menggunakan variabel untuk menentukan alur proses bisnis
AlurKerja menyediakan variabel yang dapat digunakan dalam proses bisnis untuk menyimpan data selama eksekusi workflow, seperti informasi pengguna, tanggal, atau nilai lainnya.
Predefined Variables
Ada beberapa variabel yang telah ditentukan sebelumnya tanpa perlu dibuat secara manual. Variabel-variabel ini menyediakan informasi penting tentang eksekusi proses.
| Variabel | Deskripsi |
|---|---|
Initiator | Menyimpan identifier (biasanya username atau email) dari user yang menginisiasi sebuah proses |
Mendefinisikan Variabel
Variabel pada AlurKerja didefinisikan melalui komponen form yang ditambahkan pada User Task. Nilai variabel ditentukan dari Properti Key pada setiap komponen form dan dapat digunakan untuk mengatur alur proses bisnis, seperti percabangan proses (sequence flow)
-
Pada halaman editor BPMN, pilih elemen User Task yang ingin ditambahkan form.
-
Buka tab Form, kemudian tambahkan komponen form sesuai kebutuhan. Setiap komponen form yang ditambahkan akan menghasilkan variabel baru.
Pastikan untuk mengubah properti Key karena nilai ini akan digunakan sebagai nama variabel pada proses. Jika Key tidak diubah, sistem akan membuat nama variabel secara otomatis berdasarkan label komponen, misalnya
input_7r4z3.
Agar lebih mudah digunakan dalam pengaturan alur proses, disarankan menggunakan nama variabel yang deskriptif misalnya
status_pengajuan,tanggal_pengajuan. -
Variabel yang telah dibuat dapat digunakan untuk menentukan alur proses bisnis, misalnya pada percabangan setelah Gateway menggunakan kondisi pada Sequence Flow.
Pada percabangan Yes, ekspresi yang digunakan
${pesan != ""}yang artinya Jika pesan tidak kosong, maka alur akan dilanjutkan ke proses Follow Up.
Pada percabangan No, ekspresi yang digunakan
${pesan == ""}yang artinya Jika pesan kosong, maka alur akan selesai dengan status 'Invalid form submission.Ekspresi pada kondisi No juga dapat diganti dengan mengubah jenis sequence menjadi
Default Flow, sehingga tidak perlu menuliskan ekspresi secara manual.Untuk mengatur Default Flow, lakukan langkah berikut:
- Klik garis Sequence Flow yang ingin dijadikan jalur default.
- Klik ikon pengaturan yang muncul.
- Pilih opsi Default Flow.
Default Flow digunakan sebagai jalur alternatif pada Exclusive Gateway agar proses tetap dapat dilanjutkan ketika tidak ada kondisi pada Sequence Flow lain yang terpenuhi.
Operasi pada Variabel
Operasi logika sederhana pada variabel yang telah dibuat dapat digunakan untuk menentukan alur proses bisnis sesuai kebutuhan.
Operator Aritmatika
| Operator | Contoh | Keterangan |
|---|---|---|
+ | ${2 + 3} | Penjumlahan atau penggabungan string ("Hello " + name) |
- | ${10 - 4} | Pengurangan |
* | ${5 * 3} | Perkalian |
/ | ${10 / 2} | Pembagian (hasil desimal) |
div | ${10 div 2} | Sama seperti / |
% | ${10 % 3} | Modulus (sisa bagi) |
mod | ${10 mod 3} | Sama seperti % |
- (unary) | ${-value} | Negasi angka |
Operator Perbandingan
| Operator | Contoh | Keterangan |
|---|---|---|
== | ${amount == 100} | Sama dengan |
eq | ${amount eq 100} | Sama seperti == |
!= | ${status != 'APPROVED'} | Tidak sama dengan |
ne | ${status ne 'APPROVED'} | Sama seperti != |
< | ${score < 50} | Kurang dari |
lt | ${score lt 50} | Sama seperti < |
> | ${score > 50} | Lebih dari |
gt | ${score gt 50} | Sama seperti > |
<= | ${score <= 100} | Kurang dari atau sama dengan |
le | ${score le 100} | Sama seperti <= |
>= | ${score >= 10} | Lebih dari atau sama dengan |
ge | ${score ge 10} | Sama seperti >= |
Operator Logika
| Operator | Contoh | Keterangan |
|---|---|---|
&& | ${active && valid} | AND (kedua kondisi benar) |
and | ${active and valid} | Sama seperti && |
|| | ${vip or preimum} | OR (salah satu benar) |
or | ${vip or premium} | Sama seperti || |
! | ${!approved} | NOT (negasi boolean) |
not | ${not approved} | Sama seperti ! |
Operator Kondisional (Ternary)
| Operator | Contoh | Keterangan |
|---|---|---|
?: | ${amount > 1000 ? 'BIG' : 'SMALL'} | Mengembalikan nilai berdasarkan kondisi |
Operator Koleksi
| Operator | Contoh | Keterangan |
|---|---|---|
empty | ${empty myList} | True jika koleksi kosong atau null |
in | ${status in ['NEW','PENDING']} | True jika nilai ada di koleksi |
not in | ${role not in ['ADMIN','MANAGER']} | True jika nilai tidak ada di koleksi |
