Form

Overview

Membuat Form untuk Proses SOP — komponen, properties, dan mapping ke engine

Setelah SOP (BPMN) selesai didokumentasikan, langkah berikutnya adalah mendigitalisasikan proses dengan menambahkan Form pada activity yang membutuhkan input pengguna (misalnya User Task) maupun pada Start Event. 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 Input

Komponen yang berfungsi untuk memasukkan data secara langsung oleh pengguna, dikelompokkan menjadi Basic, Choice & Selection, Date & Time, dan Advanced. Tabel di bawah merangkum mapping ke engine tiap komponen (tipe variabel, tipe kolom report, dan contoh value). Klik nama komponen untuk membuka halaman detailnya (fungsi, mapping, dan properties General/Logic/Validation).

Basic

GambarNamaTipe VariableTipe Kolom ReportDeskripsiContoh
InputInputStringtextMenginput teks singkat satu baris. Cocok untuk data seperti nama, pekerjaan, alamat, atau informasi lain berbentuk teks.Safitri
NumberNumberLongint8Menginput data berbentuk angka. Cocok untuk nomor telepon, jumlah, harga, atau nilai numerik lainnya.+6281234567899
EmailEmailStringtextMenginput alamat email dengan validasi format otomatis. Cocok untuk data kontak email.user@example.com
PasswordPasswordStringtextMenginput teks yang disamarkan. Cocok untuk kata sandi atau data rahasia lainnya.qwerty1234*#
Add OnAdd OnStringtextMenginput teks dengan tambahan suffix. Cocok untuk nilai bersatuan seperti Rp, %, kg, atau satuan lainnya.100.000 Rp
Text AreaText AreaStringtextMenginput teks panjang multi-line. Cocok untuk deskripsi, catatan, komentar, atau alamat.Ngaglik, Sleman

Choice & Selection

GambarNamaTipe VariableTipe Kolom ReportDeskripsiContoh
SwitchSwitchBooleanbooleanMenentukan keputusan on/off dengan nilai boolean (versi baru). Cocok untuk pilihan Ya/Tidak atau aktif/nonaktif.true
Switch (Legacy)Switch (Legacy)Integerint8Versi lama Switch dengan nilai integer 0/1. Cocok untuk keputusan dua pilihan sederhana pada form lama.1
ToggleToggleBooleanbooleanMengubah status aktif/non-aktif dengan nilai boolean (versi baru). Cocok untuk menyalakan/mematikan fitur.false
Toggle (Legacy)Toggle (Legacy)Integerint8Versi lama Toggle dengan nilai integer 0/1. Cocok untuk penentuan status pada form lama.1
DropdownDropdownStringtextMemilih satu opsi dari daftar. Cocok untuk memilih kategori produk atau status pengajuan.Pengajuan Fasilitas Kantor
Multiple SelectMultiple SelectStringtextMemilih beberapa opsi sekaligus dari dropdown. Cocok untuk memilih lebih dari satu kategori atau fitur.["1","2","3"]
Radio ButtonRadio ButtonStringtextMemilih satu opsi dari beberapa pilihan. Cocok untuk kategori pelatihan atau jenis pengajuan.training_skill
CheckboxCheckboxStringtextMencentang satu atau beberapa opsi independen. Cocok untuk memilih jenis pelatihan atau fasilitas tambahan.["a","b"]
Remote SelectRemote SelectStringtextMemilih satu item dari daftar eksternal via API/database. Cocok untuk memilih user, divisi, atau nama tim.user@example.com
Remote Multiple SelectRemote Multiple SelectStringtextMemilih beberapa item dari daftar eksternal via API. Cocok untuk memilih beberapa user atau nama tim.["a@x.com","b@x.com"]
Master Data SelectMaster Data SelecttexttextMemilih opsi dari Master Data di sistem. Cocok untuk kategori cuti, jenis dokumen, divisi, atau status.Karyawan Tetap

Date & Time

GambarNamaTipe VariableTipe Kolom ReportDeskripsiContoh
DateDateStringtextMenginput tanggal (hari, bulan, tahun). Cocok untuk tanggal lahir atau tanggal pengajuan.10-02-2026
TimeTimeStringtextMenginput waktu (jam & menit). Cocok untuk jam kerja atau jam kegiatan.13:00
Date TimeDate TimeStringtextMenginput tanggal & waktu sekaligus. Cocok untuk waktu pertemuan, janji, atau pengajuan spesifik.10-02-2026 13:00
MonthMonthStringtextMenginput bulan. Cocok untuk periode laporan atau bulan pengajuan.02
YearYearStringtextMenginput tahun. Cocok untuk tahun anggaran atau tahun kegiatan.2026

Advanced

GambarNamaTipe VariableTipe Kolom ReportDeskripsiContoh
Expression InputExpression Inputsesuai inputsesuai inputMenghitung nilai otomatis via formula dari field lain. Cocok untuk subtotal, diskon, pajak, atau total biaya.1250000
Rich TextRich TextStringjsonbMenyusun teks berformat (bold, italic, list, gambar). Cocok untuk konten panjang dengan penekanan khusus.<p>...</p>
File UploadFile UploadFilejsonbMengunggah file (dikirim sebagai binary). Cocok untuk melampirkan dokumen jpg, png, pdf, docx, atau xlsx.dokumen.pdf

Komponen Non-Input

Komponen berikut bersifat struktural/tampilan dan tidak menyimpan process variable, sehingga tidak memiliki mapping ke engine maupun properties General/Logic/Validation seperti komponen input.

Typography

Menampilkan teks statis seperti judul, sub judul, atau paragraf penjelasan di dalam form.

GambarNama FieldFungsi
HeadingHeadingMenambahkan judul atau subjudul untuk memisahkan bagian form.

Layout

Mengatur susunan dan struktur tampilan form (baris, kolom, atau grid).

GambarNama FieldFungsi
RowRowMenyusun komponen secara horizontal (satu baris).
ColumnColumnMenyusun komponen secara vertikal (satu kolom).
Grid 2x3Grid 2x3Grid layout dengan 2 kolom × 3 baris.
Grid 2x2Grid 2x2Grid dengan 2 kolom × 2 baris.
SpacerSpacerMemberi ruang kosong antar elemen.
SeparatorSeparatorMemisahkan bagian form dengan garis/pemisah.

Action

GambarNama FieldFungsi
ActionActionMengirim data/memicu aksi tertentu (tombol tambahan selain submit/cancel).

Technical

Menambahkan elemen teknis yang melibatkan integrasi atau fungsionalitas lanjutan.

GambarNama FieldFungsi
HTML CustomHTML CustomMenyisipkan elemen HTML kustom dalam form.
Iframe CustomIframe CustomMenyematkan iframe untuk konten eksternal.
Shadow EmbedShadow EmbedMenyematkan elemen dalam shadow DOM.
Micro FrontendMicro FrontendMengintegrasikan aplikasi kecil (micro frontend) ke dalam form.

Edit Element

Edit Element muncul ketika Anda mengklik dua kali sebuah komponen di dalam canvas. Umumnya terdiri dari tiga tab: General, Logic, dan Validation. Isi tab General berbeda tiap komponen (lihat halaman masing-masing), sedangkan Logic dan Validation mengikuti pola yang sama untuk semua komponen input.

General

Pengaturan dasar komponen. Selalu memuat minimal:

  • Name — label/nama komponen yang ditampilkan ke pengguna, mendukung dua bahasa (EN & ID).
  • Key — nama process variable yang menyimpan nilai komponen saat form disubmit (digenerate otomatis, bisa disesuaikan).

Selebihnya bergantung jenis komponen (Placeholder, Default Value, Options, Format, dsb.).

Best Practice: gunakan format snake_case atau camelCase untuk Key (mis. jumlah_item, harga_satuan, subTotal).

Logic

Berisi field Hide If. Komponen akan disembunyikan ketika ekspresi FEEL yang dituliskan bernilai true, dievaluasi saat nilai field lain berubah. Contoh:

user_role == "Admin"
status != "inactive"
age >= 18
input-field == "value"
is_active == true
user_role == "Admin" && status == "active"
(age >= 18 || user_role == "Manager") && status != "pending"

Validation

Memastikan data sesuai aturan form:

  • Required — menjadikan field wajib diisi.
  • Required If — ekspresi FEEL yang membuat field wajib diisi hanya jika kondisi terpenuhi (validasi bersyarat). Contoh: user_type == "Admin", subscription_type == "Premium", (user_role == "Manager" || user_role == "Admin") && is_verified == true.

Layer

Layer

Panel Layer menampilkan susunan form dalam bentuk tree view sehingga struktur form terlihat jelas dan rapi.

  • Membantu melihat urutan dan posisi tiap komponen.
  • Mempermudah memilih komponen yang sulit di-klik di canvas.
  • Mempercepat memindahkan, mengatur, atau menghapus komponen.
  • Menunjukkan struktur layout bertingkat (row, column, dan field di dalamnya).

Design

Design

Panel Design (opsional) untuk mempercantik tampilan form agar sesuai gaya perusahaan: Font Family, Font Size, gaya tulisan (Bold/Italic/Underline), posisi teks, warna teks, dan warna background.

Properties

Properties mengatur konfigurasi utama Form Builder:

  1. General — menampilkan Form ID, identitas unik yang menghubungkan form dengan proses BPMN.
  2. Select Process — menentukan proses BPMN yang dikaitkan dengan form ini, agar form tampil pada User Task yang tepat.
  3. Select Form Type — memilih tampilan form:
    • Form: satu halaman, semua field ditampilkan sekaligus.
    • Wizard: form bertahap yang dibagi menjadi beberapa langkah.