Question
Membuat Question dari query SQL, mengatur visualisasinya, serta mengonfigurasi parameter bertipe Field Filter agar konsumen laporan memilih nilai dari dropdown.
Fitur Analytics di AlurKerja memungkinkan Admin SOP membuat laporan analitik dari SOP yang sudah dideploy. Analytics terdiri dari dua komponen utama: Question dan Dashboard.
- Question dibuat dari query SQL berdasarkan SOP yang sudah berjalan.
- Dashboard digunakan untuk mengelompokkan beberapa Question sehingga lebih mudah dipantau — lihat Dashboard.
- Visualisasi data mendukung berbagai mode: Table, Number, Bar Chart, Line Chart, dan Pie Chart.
Membuat Question
-
Pada halaman studio, klik menu Analytics dan klik tab Question
-
Lalu klik New Question. Masukkan Title dan Description (opsional).
-
Buat query SQL pada editor:
- Hanya tabel yang ada di daftar Available Tables yang bisa digunakan.
- Anda bisa klik langsung nama tabel di daftar Available Tables, atau gunakan format
<<tableName>>di query editor. Untuk memakai Master Data, lihat Memakai Master Data.-
Simple Query
select * from <<tableName>> -
Query dengan CTE. Tambahkan nama alias !!aliasName!! di bagian paling atas query ketika query dengan CTE
!!aliasName!! with aliasName as (select * from <<tableName>> where state='-') select count(1),version_ from data where true [[and version_ = {{version}}]] group by version_
-
- Anda dapat menggunakan variable
{{variable_name}} creates a variable in this query template called "variable_name". Variables can be given types in the parameters panel, which changes their behavior. if string than you must use 'string' in value Example: SELECT count(*) FROM products WHERE category = {{category}} Field Filters Giving a variable the "Field Filter" type allows you to link questions to dashboard filter widgets. Field Filters should be used inside of a "WHERE" clause. Example: SELECT count(*) FROM products WHERE {{created_at}} Optional Clauses Brackets around a [[{{variable}}]] create an optional clause. If "variable" is set, then the entire clause is placed into the template. Example: SELECT count(*) FROM products WHERE 1=1 [[AND id = {{id}}]] [[AND category = {{category}}]]
Tipe dan perilaku setiap variable diatur melalui panel Variables pada toolbar editor question. Khusus variable bertipe Field Filter, Anda dapat menentukan sumber data agar konsumen laporan memilih nilai dari dropdown — lihat bagian Field Filter di bawah.
-
Klik Run Query untuk menjalankan query dan menampilkan hasil data.
-
Klik icon Configure, lalu pilih jenis visualisasi pada tab Viz (Table, Number, Bar Chart, Line Chart, Pie Chart).
-
Atur pengaturan visualisasi pada tab Chart sesuai kebutuhan.
-
Klik Create Question untuk menyimpan Question yang sudah dibuat.
Memakai Master Data
Tabel Master Data milik workspace dapat dipakai sebagai sumber di query Question, sehingga data proses bisa digabung (JOIN) dengan data referensi seperti daftar cabang, kategori, atau nama produk. Master data diakses lewat nama master_<slug>, dengan <slug> adalah Slug tabel di menu Master Data.
Jangan JOIN masterdata_tables atau masterdata_records langsung. Query seperti itu mengalikan baris dan ditolak setelah upgrade. Selalu pakai <<master_slug>>. Lihat Upgrade Guide.
Memilih dari Dropdown Tables
Klik Tables di editor query. Daftar dikelompokkan menjadi Tabel proses, Data sistem (badge Sistem), dan Master Data (badge Master Data). Klik sebuah item untuk menyisipkan <<master_slug>> ke query.
- Nama ditulis persis seperti slug, termasuk huruf besar dan tanda hubung: slug
E2E-Ref-Mastermenjadi<<master_E2E-Ref-Master>>. - Pencarian menemukan master data dengan atau tanpa mengetik awalan
master_. - Nama panjang dipotong di daftar; arahkan kursor untuk melihat nama lengkapnya.
- Bila workspace belum punya master data, grup tetap tampil dengan keterangan Belum ada master data aktif di workspace ini. Buat tabelnya di menu Master Data.
- Master data milik workspace lain tidak tampil dan tidak dapat dipakai.
- Master data dengan
master_+ slug lebih dari 63 byte tidak muncul di dropdown. Persingkat slug-nya.
Contoh Query JOIN
SELECT p.proc_def_key_, m.kode, m.label, m.qty
FROM <<catalog_process_instances>> p
JOIN <<master_E2E-Ref-Master>> m ON m.kode = p.proc_def_key_Pola yang sama berlaku untuk tabel proses Anda: SELECT p.*, m.nama FROM <<NamaProses>> p JOIN <<master_slug>> m ON m.kode = p.kode.
Kolom dan Tipe Data
- Setiap kolom master data menjadi kolom di query dengan nama yang sama. Kolom ber-tipe Number dapat langsung dijumlahkan (
SUM,AVG), dan Yes/No berupa boolean. Tipe lain, termasuk select dan tanggal, berupa teks — gunakanCASTbila perlu diurutkan atau dihitung sebagai angka/tanggal. - Pada kolom select, yang tersimpan dan dipakai di
WHEREadalah value-nya, bukan label. - Record yang kolomnya kosong menghasilkan
NULL; fungsi agregat mengabaikannya. - Kolom master data bernama
idtampil sebagaiid_2, karenaidsudah dipakai kolom bawaan sistem. - Master data hanya untuk dibaca di Question. Ubah isinya lewat menu Master Data.
- Environment TEST dan LIVE memakai master data yang sama.
- Master data juga bisa dipilih sebagai sumber di Metrics, dan question yang memakainya dapat dipasang di Dashboard. Master data tidak tampil di halaman Variable Access.
Peringatan: Mengganti Slug atau Menghapus Kolom
Nama master_<slug> mengikuti slug. Mengganti slug membuat question dan dashboard lama gagal sampai query diganti ke slug baru. Di Master Data → Edit, mengetik slug baru memunculkan banner kuning yang menyebut nama lama dan baru.
Saat Save, dialog Save changes that can break Questions? meminta konfirmasi. Cancel tidak menyimpan apa pun; Save anyway menyimpan perubahan.
Dialog yang sama muncul saat Anda menghapus kolom (daftarnya disebut di dialog), walau slug tetap. Dialog tidak muncul pada pembuatan baru atau edit yang tidak mengubah slug maupun menghapus kolom.
Mengganti nama kolom (menghapus kolom lalu menambah kolom baru, atau lewat Import from Definition) tidak memindahkan isinya. Kolom baru bernilai NULL di semua record lama, dan SELECT m.nama tidak error — hasilnya kosong tanpa peringatan. Isi ulang datanya setelah mengganti nama kolom.
Pesan Error dan Cara Memperbaikinya
| Pesan | Penyebab | Perbaikan |
|---|---|---|
| Sumber master data "master_…" tidak ditemukan. Kemungkinan slug master data tersebut diganti, atau tabelnya sudah dihapus. | Slug berubah, tabel dihapus, salah ketik, atau master data milik workspace lain | Pilih ulang dari dropdown Tables, lalu ganti <<master_...>> di query |
| Failed to execute query: … column m.label does not exist (SQLSTATE 42703) | Kolom yang dipakai query sudah dihapus atau diganti namanya | Lihat kolom saat ini di Master Data → Edit, lalu perbaiki query |
Variabel Sistem
Variabel sistem adalah variabel di query SQL yang nilainya diisi oleh server, bukan oleh orang yang menjalankan question. Namanya selalu diawali __user., dan penulisannya memakai kurung kurawal ganda seperti variabel biasa. Dengan variabel ini satu question dapat menampilkan data yang berbeda untuk setiap user, misalnya "request milik saya".
| Variabel | Nilai |
|---|---|
{{__user.name}} | Nama user — belum terisi saat question dijalankan langsung, lihat catatan di bawah |
{{__user.email}} | Email user yang sedang login |
Dua hal membedakannya dari variabel biasa {{nama}}:
- Nilainya tidak bisa diisi atau diubah pemakai. Kalau sebuah request mengirim parameter dengan nama yang sama, parameter itu dibuang dan server memakai nilainya sendiri.
- Tidak perlu tanda kutip. Server sudah memberi tanda kutip pada nilainya. Menulis
'{{__user.email}}'justru menghasilkan error SQL (syntax error). Tulis{{__user.email}}saja — berbeda dengan variabel string biasa di atas.
Penulisan harus persis {{__user.name}} atau {{__user.email}}, huruf kecil semua. Ejaan lain, misalnya {{__User.Email}}, bukan variabel sistem: variabel itu tidak terisi, query dijalankan dengan nilai NULL, dan hasilnya 0 baris.
{{__user.email}}
Dipakai untuk membatasi data ke milik user yang sedang login.
SELECT task_name_, assignee_
FROM <<camunda_tasks>>
WHERE assignee_ = {{__user.email}}Saat Run di editor question, {{__user.email}} terisi email user yang login. Dua user yang menjalankan question yang sama mendapat hasil berbeda sesuai emailnya. Di panel Variables, variabel ini tampil sebagai chip bertanda auto dan tidak meminta isian.
{{__user.name}}
SELECT {{__user.name}} AS nama_pembuka, count(*) AS jumlah
FROM <<camunda_tasks>>Saat ini {{__user.name}} belum terisi saat question dijalankan langsung — lewat Run di editor, menu Question, atau dashboard yang dibuka di Studio. Nilainya berupa teks __user.name:unresolved. Di klausa WHERE hasilnya 0 baris, dan di SELECT kolomnya berisi teks tersebut. Panel Variables juga menampilkan kolom isian untuk variabel ini, tetapi apa pun yang diketik di sana diabaikan server. Jangan membuat question yang bergantung pada {{__user.name}} untuk tampilan langsung.
Bila Identitas Tidak Dapat Ditentukan
Kalau server tidak mengetahui identitas yang diminta, variabel diganti teks __user.email:unresolved atau __user.name:unresolved. Karena teks itu tidak cocok dengan data mana pun, query yang memakainya mengembalikan 0 baris, bukan semua baris. Ini berlaku juga untuk klausa opsional [[ ... ]]: filter tidak ikut dibuang. Question yang memakai variabel sistem dengan demikian aman gagal ke arah "tidak tampil data".
Field Filter
Parameter bertipe Field Filter memungkinkan konsumen laporan memilih nilai filter dari dropdown alih-alih mengetik bebas. Dengan begitu, laporan tidak lagi kosong hanya karena nilai yang diketik salah, dan konsumen tidak perlu menghafal nilai apa saja yang valid.
Pengaturan Field Filter dilakukan oleh author question melalui panel Variables di editor question.
Panel Variables
- Buka question yang ingin diatur pada Analytics.
- Klik icon
{}pada toolbar editor question. Cara lain, klik Configure → pada baris Variables tepat di bawah editor.
Panel Variables terbuka sebagai drawer di sisi kanan dengan keterangan What people can filter this question by. Panel ini berbagi slot yang sama dengan panel Configuration — membuka salah satunya akan menutup yang lain.
Variable yang terdeteksi dari query SQL ditampilkan sebagai chip pada baris Variables di bawah editor. Jika query memiliki lebih dari satu variable, gunakan chip tersebut untuk berpindah antar variable — panel menampilkan satu variable per tampilan.
Panel menampilkan pengaturan berikut secara berurutan:
- Variable name: nama variable, diambil dari query dan bersifat read-only.
- Variable type: tipe parameter. Pilih Field Filter agar konsumen memilih nilai dari dropdown.
- Filter widget label: label yang tampil di atas dropdown saat laporan dijalankan. Jika dikosongkan, sistem memakai nama variable.
- How people pick a value: konfigurasi sumber data, hanya muncul untuk tipe Field Filter. Badge di sebelah kanannya menunjukkan status — No source selama sumber belum dipilih, dan Source set setelah sumber valid dipilih.
- Default filter widget value: nilai default filter. Untuk Field Filter, nilai default dipilih dari dropdown yang sama dengan filter runtime. Tersedia juga opsi Type manually bila Anda ingin mengetikkan nilainya.
- Always require a value: jika dicentang, parameter wajib diisi — konsumen masih dapat mengganti nilainya, tetapi tidak dapat mengosongkannya kembali ke All.
Di bawah editor, sistem menampilkan preview filter persis seperti yang akan dilihat konsumen pada dashboard. Selama sumber belum dipilih, preview menampilkan keterangan No data source configured.
Sumber Data Field Filter
Pada bagian How people pick a value, dropdown Options from menentukan dari mana isi dropdown diambil:
- Table column — mengambil isi dropdown dari kolom sebuah tabel di workspace.
- Custom list — author mendefinisikan sendiri isi dropdown.
- Another question — mengambil isi dropdown dari hasil question lain.
Selama sumber belum dipilih, panel menampilkan badge No source. Question tetap dapat disimpan sebagai draft dalam kondisi ini.
Di bawah pilihan sumber terdapat checkbox Allow multiple values untuk mengubah widget menjadi multi select (default: single select), serta bagian More options yang dapat dibuka untuk pengaturan lanjutan.
Table column
Sumber ini cocok ketika isi dropdown harus selalu mengikuti data terbaru tanpa perlu diperbarui manual.
- Pilih Table column pada dropdown Options from.
- Pada dropdown Table, pilih tabel sumbernya. Daftar tabel dikelompokkan menjadi dua:
- Dari query ini: tabel yang terdeteksi pada query yang sedang dibuat, baik lewat token
<<tabel>>maupunFROM/JOIN. Grup ini ditampilkan lebih dulu. - Semua tabel workspace: seluruh tabel lain yang tersedia di workspace aktif.
- Dari query ini: tabel yang terdeteksi pada query yang sedang dibuat, baik lewat token
- Pada dropdown Column, pilih kolom yang akan menjadi isi dropdown. Pemilih kolom menampilkan kolom beserta tipe datanya.
- Jika label yang ingin dilihat konsumen berbeda dari nilai yang masuk ke SQL, buka More options lalu tentukan kolom label secara terpisah. Contoh: nilai memakai
customer_id, sedangkan label memakaicustomer_name. Jika dikosongkan, label sama dengan nilai.
Filter bar di atas tabel hasil akan langsung merender dropdown berisi nilai distinct dari kolom terpilih dalam keadaan terurut, maksimal 100 opsi. Bila nilai yang tersedia lebih banyak dari itu, sistem menampilkan penanda "Menampilkan 100 dari N nilai" dan dropdown otomatis menjadi searchable — pencarian diteruskan ke server sehingga nilai di luar 100 pertama tetap dapat ditemukan.
Dropdown Table hanya memuat tabel milik workspace yang sedang aktif. Tabel dari workspace lain tidak dapat digunakan sebagai sumber data.
Custom list
Sumber ini digunakan ketika pilihan filter berupa istilah bisnis yang memang tidak tersimpan sebagai kolom di tabel manapun.
- Pilih Custom list pada dropdown Options from.
- Klik + Add option untuk menambahkan baris opsi. Setiap baris terdiri dari dua kolom:
- Label (kolom kiri): teks yang dilihat konsumen laporan.
- Value (kolom kanan): nilai yang masuk ke query SQL. Jika Value dikosongkan, sistem memakai Label sebagai Value.
- Gunakan drag handle di sisi kiri baris untuk mengurutkan ulang opsi, dan icon trash untuk menghapus baris.
Untuk mengisi banyak opsi sekaligus, gunakan Paste a list dan tempelkan teks multi-baris dengan format label|value.
Value tidak boleh duplikat. Jika ada dua baris dengan Value yang sama, penyimpanan ditolak dan baris yang bentrok akan disorot.
Dropdown pada preview filter diperbarui secara real-time mengikuti daftar yang sedang diketik, tanpa perlu menjalankan ulang query. Yang tampil pada dropdown adalah Label-nya, sedangkan yang dikirim ke query adalah Value-nya.
Another question
Sumber ini digunakan agar daftar pilihan memakai data yang sudah dikurasi dan dipakai bersama, bukan hasil distinct mentah dari sebuah kolom.
- Pilih Another question pada dropdown Options from.
- Pada dropdown Question, pilih question sumbernya. Daftar question yang muncul dibatasi sebagai berikut:
- Hanya question milik workspace yang sama.
- Question yang memiliki parameter Required tidak ditampilkan, karena question tersebut tidak dapat dijalankan tanpa input terlebih dahulu.
- Question yang sedang diedit tidak ditampilkan, untuk mencegah referensi ke dirinya sendiri.
- Setelah question dipilih, sistem menjalankan question tersebut dan menampilkan daftar kolom hasilnya pada dropdown Column. Pilih satu kolom sebagai nilai variable — langkah ini wajib.
- Bila perlu, buka More options untuk menentukan kolom label yang berbeda dari kolom nilai. Jika dikosongkan, label sama dengan nilai.
Nilai yang duplikat pada kolom nilai otomatis di-dedupe dan diurutkan sebelum menjadi opsi dropdown.
Mengganti Tipe atau Sumber Data
- Mengganti tipe variable dari Field Filter ke tipe lain akan menyembunyikan konfigurasi sumber data, tetapi tidak menghapusnya. Konfigurasi tersebut muncul kembali bila tipe dikembalikan ke Field Filter dalam sesi yang sama.
- Mengganti pilihan Options from akan mengosongkan konfigurasi sumber sebelumnya. Bila ada data yang akan hilang, sistem menampilkan konfirmasi terlebih dahulu. Pilih Batal untuk mengembalikan dropdown ke sumber yang tersimpan.
Menggunakan Filter sebagai Konsumen Laporan
Parameter Field Filter yang sumbernya valid akan dirender sebagai dropdown, bukan input teks, di dua tempat:
- Filter bar pada halaman question, tepat di atas tabel hasil.
- Filter bar pada View Dashboard.
Perilaku dropdown saat laporan dijalankan:
- Label di atas setiap dropdown memakai label filter widget bila diisi, dan jatuh ke nama variable bila tidak.
- Dropdown dengan lebih dari 20 opsi otomatis menampilkan kotak pencarian.
- Parameter dengan Allow multiple values dapat memilih beberapa nilai sekaligus.
- Parameter opsional dapat dikosongkan kembali ke All. Dalam kondisi ini, klausa
[[...]]yang terkait tidak ikut dirender ke query. - Parameter dengan Always require a value wajib diisi. Jika belum diisi, eksekusi dicegah dan pesan validasi muncul di bawah dropdown.
- Pada dashboard yang memuat beberapa question dengan nama parameter yang sama, satu dropdown gabungan akan mengendalikan seluruh question tersebut.
Ketika Sumber Data Tidak Valid
Sumber data bisa menjadi tidak valid, misalnya karena tabel, kolom, atau question sumbernya sudah dihapus atau dinonaktifkan.
- Pada panel Variables, sistem menampilkan status "Sumber tidak valid" beserta jalan untuk memilih ulang sumber datanya.
- Pada filter runtime, filter tersebut jatuh ke input teks manual sehingga laporan tetap dapat dijalankan.
- Bila sumber gagal dimuat karena error atau timeout, sistem menampilkan status error per filter dengan tombol Coba lagi dan opsi ketik manual. Kegagalan pada satu filter tidak menggagalkan seluruh dashboard.
Template Submission
Template Submission digunakan untuk mengajukan template proses atau keputusan yang nantinya dapat direview sebelum digunakan. Template yang dapat diajukan dapat berupa file BPMN atau DMN, dilengkapi dengan kategori, deskripsi, diagram, dan preview image.
Dashboard
Mengelompokkan beberapa Question ke dalam satu Dashboard, mengatur tata letaknya, mempublikasikannya, serta membukanya dari App.
