Business process

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.

VariabelDeskripsi
InitiatorMenyimpan 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)

  1. Pada halaman editor BPMN, pilih elemen User Task yang ingin ditambahkan form.

    Define Variable
  2. Buka tab Form, kemudian tambahkan komponen form sesuai kebutuhan. Setiap komponen form yang ditambahkan akan menghasilkan variabel baru.

    Set Form Builder

    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.

    Set Key Form Builder

    Agar lebih mudah digunakan dalam pengaturan alur proses, disarankan menggunakan nama variabel yang deskriptif misalnya status_pengajuan, tanggal_pengajuan.

  3. Variabel yang telah dibuat dapat digunakan untuk menentukan alur proses bisnis, misalnya pada percabangan setelah Gateway menggunakan kondisi pada Sequence Flow.

    Expression Gateway

    Pada percabangan Yes, ekspresi yang digunakan ${pesan != ""} yang artinya Jika pesan tidak kosong, maka alur akan dilanjutkan ke proses Follow Up.

    Expression Gateway Else

    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. Change Sequence Flow to 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

OperatorContohKeterangan
+${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

OperatorContohKeterangan
==${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

OperatorContohKeterangan
&&${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)

OperatorContohKeterangan
?:${amount > 1000 ? 'BIG' : 'SMALL'}Mengembalikan nilai berdasarkan kondisi

Operator Koleksi

OperatorContohKeterangan
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