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:

  1. Satu komponen = satu variabel (melalui key/variable name). Pastikan penamaan konsisten dan unik per form.
  2. Tipedata mengikuti kebutuhan proses (string, number, boolean, date/time). Ini mempermudah validasi dan perhitungan.
  3. Keterlihatan & perilaku dinamis (tampil/sembunyi, aktif/non-aktif) dapat dikontrol oleh ekspresi berbasis data form.
  4. Kalkulasi mendukung otomasi nilai numerik menggunakan FEEL expression sehingga pengguna tidak perlu menghitung manual.

Komponen Form

Berikut adalah daftar komponen yang tersedia dalam Form Builder, dikelompokkan berdasarkan fungsinya. Setiap kategori memiliki field dengan tujuan penggunaan yang berbeda.

  1. Input
    Komponen yang berfungsi untuk memasukkan data secara langsung oleh pengguna.
GambarNama FieldFungsi
Input Text FieldText FieldUntuk memasukkan teks singkat.
Input Text AreaText AreaUntuk memasukkan teks panjang atau deskripsi.
Input NumberNumberUntuk memasukkan nilai numerik.
Input Date TimeDate TimeUntuk memilih tanggal atau waktu.
Input File PickerFile PickerUntuk mengunggah file dari perangkat pengguna.
  1. Selection
    Komponen yang memungkinkan pengguna memilih satu atau beberapa opsi.
GambarNama FieldFungsi
Selection CheckboxCheckboxUntuk memilih satu opsi tunggal yang bersifat opsional (boleh dicentang atau tidak).
Selection Checkbox GroupCheckbox GroupUntuk memilih beberapa opsi dari daftar pilihan yang sama.
Selection Radio GroupRadio GroupUntuk memilih satu opsi dari beberapa pilihan yang tersedia (harus memilih satu).
Selection SelectSelectDropdown untuk memilih satu opsi dari daftar pilihan.
Selection Tag ListTag ListUntuk memilih atau menandai beberapa item yang dapat dikategorikan sebagai tag.
Selection Remote SelectRemote SelectDropdown yang datanya diambil dari sumber eksternal.
  1. Presentation
    Komponen yang digunakan untuk menampilkan informasi statis tanpa input dari pengguna.
GambarNama FieldFungsi
Presentation Text ViewText ViewMenampilkan teks statis.
Presentation HTML ViewHTML ViewMenampilkan konten HTML, seperti format teks, gambar atau link.
Presentation SpacerSpacerMemberi jarak atau ruang kosong antara komponen form agar lebih rapi.
Presentation SeparatorSeparatorMembuat garis pemisah antar bagian atau kelompok komponen.
  1. Containers
    Komponen yang digunakan untuk mengelompokkan atau mengatur komponen form.
GambarNama FieldFungsi
Containers GroupGroupMengelompokkan beberapa komponen form sehingga bisa dikelola dan ditampilkan sebagai satu unit.

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:

  1. Label: judul yang terlihat pengguna.
  2. Key (Variable Name): nama variabel proses (wajib unik dalam form).
  3. Description/Help text: petunjuk singkat di bawah field.
  4. Type: tipedata (Text, Number, Boolean, Date/Time, Select, dsb.).
  5. Default value / Placeholder: nilai awal atau contoh input.
  6. 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.

  1. Required: wajib diisi.
  2. Min/Max (Number/Date): jumlah_item >= 1, tgl_mulai => tgl_selesai
  3. 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:

  1. Subtotal : harga_satuan * jumlah_item
  2. Diskon (rupiah) dari persen : (harga_satuan * jumlah_item) * (diskon_persen / 100)
  3. PPN 11% : (harga_satuan * jumlah_item - ((harga_satuan * jumlah_item) * (diskon_persen / 100))) * 0.11
  4. Total bayar (harga_satuan * jumlah_item) - ((harga_satuan * jumlah_item) * (diskon_persen / 100)) + ongkir