Form
Membuat Form untuk Proses SOP
Setelah SOP (BPMN) selesai didokumentasikan, langkah berikutnya adalah mendigitalisasikan proses dengan menambahkan Form pada activity yang membutuhkan input pengguna (misalnya User Task). Setiap komponen form terhubung ke process variable. Value dari komponen ini akan dikirim sebagai variabel proses saat submit dan dapat dipakai di gateway/condition, listener, service task, maupun laporan.
Prinsip penting:
- Satu komponen = satu variabel (melalui key/variable name). Pastikan penamaan konsisten dan unik per form.
- Tipedata mengikuti kebutuhan proses (string, number, boolean, date/time). Ini mempermudah validasi dan perhitungan.
- Keterlihatan & perilaku dinamis (tampil/sembunyi, aktif/non-aktif) dapat dikontrol oleh ekspresi berbasis data form.
- Kalkulasi mendukung otomasi nilai numerik menggunakan FEEL expression sehingga pengguna tidak perlu menghitung manual.
Komponen Form
Komponen field yang dapat digunakan saat ini adalah
Properties
Properti mengatur perilaku tiap komponen form. Di form.js Camunda tersedia tiga kelompok utama—General, Condition, Validation—dan di sistem ini ditambahkan Calculation untuk kebutuhan hitung angka dengan FEEL.
General
Atur identitas dan dasar komponen:
- Label: judul yang terlihat pengguna.
- Key (Variable Name): nama variabel proses (wajib unik dalam form).
- Description/Help text: petunjuk singkat di bawah field.
- Type: tipedata (Text, Number, Boolean, Date/Time, Select, dsb.).
- Default value / Placeholder: nilai awal atau contoh input.
- Read-only / Disabled: mencegah pengubahan manual (sering dipakai untuk field hasil kalkulasi).
Best Practice: Gunakan format snake_case atau camelCase ketika membuat Key (mis. jumlah_item, harga_satuan, subTotal).
Condition
Mengatur visibilitas komponen secara dinamis berbasis data form. Ekspresi dievaluasi saat nilai field lain berubah.
Contoh umum (FEEL):
status = "Ditolak"
jumlah_item > 0
exists(diskon_persen) and diskon_persen > 0
metode_pembayaran in ["Transfer", "Kartu Kredit"]
Validation
Menjamin data memenuhi aturan yang dibutuhkan proses. Terdiri dari built-in constraints dan (opsional) ekspresi kustom.
- Required: wajib diisi.
- Min/Max (Number/Date): jumlah_item >= 1, tgl_mulai => tgl_selesai
- Pattern (Text): regex untuk email, nomor, dsb.
Calculation
Menghitung nilai Number secara otomatis dengan FEEL expression. Dipakai untuk subtotal, pajak, total, skor, dsb. Biasanya field ber-Calculation dibuat read-only agar tidak menimpa hasil hitung.
Contoh:
- Subtotal :
harga_satuan * jumlah_item
- Diskon (rupiah) dari persen :
(harga_satuan * jumlah_item) * (diskon_persen / 100)
- PPN 11% :
(harga_satuan * jumlah_item - ((harga_satuan * jumlah_item) * (diskon_persen / 100))) * 0.11
- Total bayar
(harga_satuan * jumlah_item) - ((harga_satuan * jumlah_item) * (diskon_persen / 100)) + ongkir