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.

Input

Komponen yang berfungsi untuk memasukkan data secara langsung oleh pengguna.

GambarNama FieldFungsi
InputInputMenginput teks singkat (single-line).
Add OnAdd OnInput teks yang memiliki tambahan prefix/suffix (misalnya: Rp, %, dll).
SwitchSwitchInput boolean untuk memilih on/off.
ToogleToogleDigunakan untuk memilih antara dua kondisi (aktif/non-aktif).
DropdownDropdownMemilih satu opsi dari daftar pilihan.
Multiple SelectMultiple SelectMemilih banyak opsi sekaligus dalam bentuk dropdown.
Radio ButtonRadio ButtonMemilih satu opsi dari beberapa pilihan yang tersedia.
CheckboxCheckboxInput centang untuk memilih opsi tunggal (boleh dicentang atau tidak).
Expression InputExpression InputInput yang menghitung nilai otomatis memakai ekspresi (FEEL/logic).
Rich TextRich TextMemasukkan teks yang diformat, seperti bold, italic, atau menyisipkan gambar dan tautan.
File UploadFile UploadMengunggah satu file dari perangkat pengguna.
Remote SelectRemote SelectDropdown yang sumber datanya dari API atau database eksternal.
Remote Multiple SelectRemote Multiple SelectMemilih lebih dari satu item dari data eksternal yang diambil via API.
Master Data SelectMaster Data SelectMemilih data master yang tersimpan dalam sistem atau database.

Typography

Berfungsi untuk menampilkan teks statis seperti judul, sub judul, atau paragraf penjelasan di dalam form.

GambarNama FieldFungsi
HeadingHeadingMenambahkan judul atau subjudul untuk memisahkan bagian form.

Layout

Digunakan untuk mengatur susunan dan struktur tampilan form, misalnya membuat baris, kolom, atau grid.

GambarNama FieldFungsi
RowRowMenyusun beberapa 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 untuk tampilan lebih rapi.
SpacerSpacerMemberi ruang kosong antara elemen-elemen dalam form, meningkatkan keterbacaan dan organisasi layout.
SeparatorSeparatorMemisahkan bagian-bagian form dengan garis atau pemisah visual, meningkatkan kejelasan antar bagian.

Action

Komponen yang digunakan untuk membuat tombol aksi tambahan selain tombol bawaan.

GambarNama FieldFungsi
ActionActionMengirimkan data atau memicu aksi tertentu (biasanya tombol tambahan selain submit/cancel).

Technical

Komponen yang digunakan untuk menambahkan elemen teknis dalam form yang melibatkan integrasi atau fungsionalitas lanjutan.

GambarNama FieldFungsi
HTML CustomHTML CustomMenyisipkan elemen HTML kustom dalam form untuk menambahkan elemen atau konten lain yang tidak tersedia dalam komponen standar.
Iframe CustomIframe CustomMenyematkan iframe untuk menampilkan konten eksternal (seperti halaman web, video, atau aplikasi lain) langsung di dalam form.
Shadow EmbedShadow EmbedMenyematkan elemen dalam shadow DOM, memastikan elemen tersebut terpisah dari pengaturan lain dalam form.
Micro FrontendMicro FrontendMengintegrasikan aplikasi kecil (micro frontend) ke dalam form, memungkinkan bagian form berfungsi secara terpisah dan mandiri.

Edit Element

Edit element muncul ketika Anda mengklik dua kali sebuah komponen di dalam canvas. Bagian ini digunakan untuk mengatur detail dan perilaku komponen. Setiap komponen dapat memiliki kombinasi tab pengaturan yang berbeda, tergantung jenis dan fungsinya. Edit element dapat terdiri dari beberapa bagian berikut:

General

Berisi pengaturan dasar dari komponen. Isi tab General berbeda untuk setiap jenis komponen, tetapi umumnya mencakup:

  • Label/Name: Label atau nama komponen yang ditampilkan kepada pengguna.
  • Key (Variable Name): Nama variabel yang digunakan untuk menyimpan nilai komponen saat form disubmit.
  • Type: tipedata (Text, Number, Boolean, Date/Time, Select, dsb.).
  • Tooltip: Teks bantuan singkat yang dapat ditampilkan saat pengguna mengarahkan kursor ke ikon informasi.
  • Disabled: Digunakan untuk mengatur apakah komponen dapat diisi oleh pengguna.
  • Form Mapping: Digunakan untuk menghubungkan komponen dengan form lain ketika proses membutuhkan pemetaan data.

Best Practice: Gunakan format snake_case atau camelCase ketika membuat Key (mis. jumlah_item, harga_satuan, subTotal).

Logic

Logic digunakan untuk mengatur perilaku komponen secara dinamis. Melalui Logic, Anda dapat menentukan kapan sebuah komponen ditampilkan atau disembunyikan berdasarkan nilai dari field lain di dalam form. Ekspresi akan dievaluasi saat nilai field berubah. Contoh umum (FEEL):

status = "Ditolak" jumlah_item > 0 exists(diskon_persen) and diskon_persen > 0 metode_pembayaran in ["Transfer", "Kartu Kredit"] user_role == "Admin" status != "inactive" age >= 18 created_date > 2025-01-01 input-field == "value" is_active == true data_value == null user_role == "Admin" && status == "active" age >= 18 || user_role == "Manager" selected_options == "option1" tags != "important"

Validation

Validation digunakan untuk memastikan data yang diinput pengguna sesuai dengan aturan yang dibutuhkan oleh form. Terdiri dari built-in constraints dan (opsional) ekspresi kustom.

  1. Required: wajib diisi.

Remote Select

Remote Select digunakan untuk menampilkan daftar pilihan (dropdown) yang datanya diambil langsung dari API endpoint. Remote Select biasanya diguanakn untuk memilih data seperti user, divisi, produk, kategori atau referensi lain dari sistem eksternal.

Langkah-langkah Menggunakan Remote Select

  1. Buka Form Builder pada User Task.

  2. Tambahkan komponen Remote Select dengan cara drag and drop ke dalam form.

  3. Klik dua kali komponen Remote Select untuk membuka Edit Element.

  4. Isi konfigurasi berikut:

    • Name : Nama field yang ditampilkan pada form.
    • Key : Nama variabel yang digunaakn untuk menyimpan nilai hasil pilihan.
    • Data URL : Endpoint API yang digunakan untuk mengambil data pilihan. Endpoint harus mengembalikan response JSON.
    • Root Data : Nama properti JSON yang berisi daftar data. Contoh : data.
    • Select Remote Value Field : Field yang digunakan sebagai value yang disimpan ke variabel. Contoh : email.
    • Select Remote Label Field : Field yang ditampilkan sebagai teks pilihan di dropdown. Contoh : name.
    Remote Select
  5. Klik Save Changes untuk menyimpan perubahan.

Master Data Select

Master Data Select digunakan untuk menampilkan daftar pilihan (dropdown) yang bersumber dari Master Data yang telah dibuat sebelumnya di **Studio. Komponen ini cocok digunakan ketika opsi pilihan berasal dari data referensi internasl seperti kategori cuti, jenis dokumen, divisi, status atau parameter konfigurasi lainnya.

Langkah-langkah Menggunakan Calculation

  1. Buka Form Builder pada User Task.

  2. Tambahkan komponen Master Data Select ke dalam form dengan cara drag and drop.

  3. Klik dua kali komponen Master Data Select untuk membuka Edit Element.

  4. Isi konfigurasi berikut:

    • Name : Nama field yang ditampilkan pada form.
    • Key : Nama variabel yang digunakan sebagai hasil pilihan.
    • Select Master Data : Pilih sumber Master Data yang akan digunakan sebagai daftar pilihan (dropdown). Setelah memilih Master Data, sistem akan menampilkan daftar field yang tersedia untuk Label Field dan Value Field.
    • Label Field : Field yang digunakan sebagai teks pilihan pada dropdown.
    • Value Field : Field yang disimpan sebagai nilai variabel ketika pengguna memilih opsi
    Master Data Select
  5. Klik Save Changes untuk menyimpan konfigurasi.

Calculation

Calculation digunakan untuk menghitung nilai secara otomatis berdasarkan formula yang ditentukan. Komponen ini umumnya digunakan untuk menghitung nilai turunan seperti subtotal, diskon, pajak, total pembayaran atau skor berdasarkan input dari field lain dalam form.

Langkah-langkah Menggunakan Calculation

  1. Buka Form Builder pada User Task.

  2. Tambahkan komponen Expression Input ke dalam form dengan cara drag and drop.

  3. Klik dua kali komponen Expression Input untuk membuka Edit Element.

  4. Isi konfigurasi berikut:

    • Name : Nama field yang ditampilkan pada form.
    • Key : Nama variabel yang digunakan sebagai hasil perhitungan.
    • Formula : Rumus perhitungan yang menggunakan nama variabel dari properti Key field lain(Name). Contoh : `amount+(taxes/100*amount)
    Calculation Expression Input
  5. Klik Save Changes untuk menyimpan konfigurasi.

Contoh Perhitungan Formula

  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

Layer

Layer

Panel Layer menampilkan susunan form dalam bentuk tree view, sehingga Anda bisa melihat struktur form secara jelas dan rapi.

Fungsi Layer

  • Membantu melihat urutan dan posisi tiap komponen dengan lebih mudah.
  • Mempermudah memilih komponen yang sering sulit di-klik di area canvas.
  • Mempercepat proses memindahkan, mengatur, atau menghapus komponen.
  • Menunjukkan struktur layout bertingkat seperti row, column, dan field di dalamnya.

Design

Panel Design adalah fitur opsional yang bisa Anda gunakan untuk mempercantik tampilan form agar terlihat rapi dan sesuai gaya perusahaan.

Design

Di dalam panel ini, Anda bisa mengatur:

  • Jenis Font (Font Family)
  • Ukuran tulisan (Font Size)
  • Gaya Tulisan (Bold, Italic atau Underline)
  • Posisi teks
  • Warna teks
  • Warna background

Properties

Properties digunakan untuk mengatur konfigurasi utama dari Form Builder. Melalui panel ini, Anda dapat mengatur informasi form, memilih proses BPMN yang digunakan serta menentukan jenis form yang akan dibuat.

  1. General
    General menampilkan Form ID, yaitu identitas unik yang digunakan untuk menghubungkan form dengan proses BPMN.

  2. Select Process
    Select process digunakan untuk menentukan proses BPMN yang akan dikaitkan dengan form ini. Dengan memilih proses yang sesuai, form akan tampil pada User Task yang tepat saat proses dijalankan.

  3. Select Form Type Select Form Type digunakan untuk memilih tampilan form yang ingin digunakan. Terdapat dua pilihan:

    • Form: Form satu halaman di mana semua field ditampilkan sekaligus.
    • Wizard: Form bertahap yang dibagi menjadi beberapa langkah agar lebih mudah diisi dan diikuti oleh pengguna.