Dokumen ini diterjemahkan oleh AI. Untuk informasi yang akurat, silakan merujuk ke versi bahasa Inggris.
NocoBase memiliki operasi data bawaan yang umum (tambah, hapus, ubah, kueri, dll.). Ketika operasi ini tidak dapat memenuhi kebutuhan bisnis yang kompleks, Anda dapat menggunakan peristiwa aksi kustom dalam alur kerja dan mengikat peristiwa tersebut ke tombol "Picu Alur Kerja" pada blok halaman. Setelah pengguna mengkliknya, alur kerja aksi kustom akan dipicu.
Saat membuat alur kerja, pilih "Peristiwa Aksi Kustom":

v.1.6.0+
Perbedaan tipe konteks akan menentukan pada tombol blok mana alur kerja tersebut dapat diikat:

Ketika tipe konteks adalah satu baris data atau beberapa baris data, Anda perlu memilih koleksi tabel data yang akan diikat dengan model data:

Jika Anda perlu menggunakan data hubungan dari baris data pemicu dalam alur kerja, Anda dapat memilih bidang hubungan yang lebih dalam di sini:

Bidang-bidang ini akan secara otomatis dimuat sebelumnya ke dalam konteks alur kerja setelah peristiwa dipicu, sehingga dapat digunakan dalam alur kerja.
Berdasarkan tipe konteks yang dikonfigurasi dalam alur kerja, konfigurasi tombol operasi pada blok yang berbeda juga memiliki perbedaan.
v1.6.0+
Pada panel operasi dan blok data lainnya, tombol "Picu Alur Kerja" dapat ditambahkan:



Setelah menambahkan tombol, ikat alur kerja tanpa konteks yang telah dibuat sebelumnya, mengambil contoh tombol pada panel operasi:


Dalam blok data apa pun, tombol "Picu Alur Kerja" dapat ditambahkan pada kolom operasi untuk satu baris data, seperti formulir, baris data tabel, detail, dll.:



Setelah menambahkan tombol, ikat alur kerja yang telah dibuat sebelumnya:


Setelah itu, klik tombol ini untuk memicu peristiwa aksi kustom tersebut:

v1.6.0+
Dalam bilah operasi blok tabel, saat menambahkan tombol "Picu Alur Kerja", akan ada opsi tambahan untuk memilih tipe konteks antara "Tanpa konteks" atau "Beberapa baris data":

Ketika memilih "Tanpa konteks", itu adalah peristiwa global dan hanya dapat mengikat alur kerja tipe tanpa konteks.
Ketika memilih "Beberapa baris data", Anda dapat mengikat alur kerja tipe beberapa baris data, yang dapat digunakan untuk operasi massal setelah memilih beberapa data (saat ini hanya didukung oleh tabel). Pada saat ini, cakupan alur kerja yang dapat dipilih hanya alur kerja yang dikonfigurasi cocok dengan koleksi tabel data blok data saat ini:

Saat mengklik tombol untuk memicu, beberapa baris data dalam tabel harus sudah dicentang, jika tidak, alur kerja tidak akan dipicu:

Sebagai contoh, kita memiliki koleksi tabel data "Sampel". Untuk sampel yang "Telah Dikumpulkan" (status), perlu disediakan operasi "Kirim untuk Inspeksi". Pengiriman akan memeriksa informasi dasar sampel terlebih dahulu, kemudian menghasilkan data "Catatan Inspeksi", lalu mengubah status sampel menjadi "Telah Dikirim". Serangkaian proses ini tidak dapat diselesaikan melalui klik tombol "tambah, hapus, ubah, kueri" sederhana, sehingga peristiwa aksi kustom dapat digunakan untuk mencapainya.
Pertama, buat koleksi tabel data "Sampel" dan koleksi tabel data "Catatan Inspeksi", lalu masukkan data pengujian dasar untuk tabel sampel:

Kemudian buat alur kerja "Peristiwa Aksi Kustom". Jika proses operasi memerlukan umpan balik yang tepat waktu, Anda dapat memilih mode sinkron (dalam mode sinkron, node tipe asinkron seperti pemrosesan manual tidak dapat digunakan):

Dalam konfigurasi pemicu, pilih "Sampel" untuk tabel data:

Susun logika dalam alur kerja sesuai kebutuhan bisnis, misalnya pengiriman hanya diizinkan jika parameter indikator lebih besar dari 90, jika tidak, berikan pesan masalah terkait:

Node "Pesan Respons" dapat digunakan dalam peristiwa aksi kustom sinkron untuk mengembalikan informasi petunjuk ke klien. Tidak dapat digunakan dalam mode asinkron.
Setelah alur kerja dikonfigurasi dan diaktifkan, kembali ke antarmuka tabel, tambahkan tombol "Picu Alur Kerja" pada kolom operasi tabel:

Kemudian pilih untuk mengikat alur kerja pada menu konfigurasi tombol untuk membuka jendela konfigurasi:

Tambahkan alur kerja yang telah diaktifkan sebelumnya:

Setelah dikirim, ubah teks tombol menjadi nama operasi, seperti kata "Kirim untuk Inspeksi", dan proses konfigurasi selesai.
Saat digunakan, pilih salah satu data sampel dalam tabel dan klik tombol "Kirim untuk Inspeksi" untuk memicu peristiwa aksi kustom. Seperti logika yang disusun sebelumnya, jika parameter indikator sampel kurang dari 90, petunjuk berikut akan muncul setelah diklik:

Jika parameter indikator lebih besar dari 90, alur kerja akan berjalan normal, menghasilkan data "Catatan Inspeksi", dan mengubah status sampel menjadi "Telah Dikirim":

Sampai di sini, sebuah peristiwa aksi kustom sederhana telah selesai. Demikian pula, untuk bisnis dengan operasi kompleks serupa seperti pemrosesan pesanan, pengiriman laporan, dll., semuanya dapat dicapai melalui peristiwa aksi kustom.
Pemicuan peristiwa aksi kustom tidak terbatas pada operasi antarmuka pengguna, tetapi juga dapat dipicu melalui panggilan HTTP API. Secara khusus, peristiwa aksi kustom menyediakan tipe operasi baru untuk semua operasi tabel data guna memicu alur kerja: trigger, yang dapat dipanggil dengan mengikuti API operasi standar NocoBase.
Karena panggilan eksternal juga perlu didasarkan pada identitas pengguna, saat memanggil melalui HTTP API, permintaan harus konsisten dengan permintaan yang dikirim dari antarmuka biasa, yaitu perlu menyediakan informasi autentikasi, termasuk header permintaan Authorization atau parameter token (token yang diperoleh saat login), serta header permintaan X-Role (nama peran pengguna saat ini).
Alur kerja tanpa konteks perlu melakukan operasi pemicuan terhadap sumber daya workflows:
Serupa dengan alur kerja yang dipicu oleh tombol dalam contoh, dapat dipanggil seperti ini:
Karena operasi ini ditujukan untuk satu baris data, saat memanggil data yang sudah ada, Anda perlu menentukan ID baris data untuk mengganti bagian <:id> dalam URL.
Jika dipanggil untuk formulir (seperti penambahan atau pembaruan), untuk formulir penambahan data baru, ID tidak perlu dikirimkan, tetapi data yang dikirimkan perlu disertakan sebagai konteks data eksekusi:
Untuk formulir pembaruan, ID baris data serta data yang diperbarui perlu dikirimkan secara bersamaan:
Jika ID dan data dikirimkan secara bersamaan, baris data yang sesuai dengan ID akan dimuat terlebih dahulu, kemudian atribut dalam objek data yang dikirimkan akan digunakan untuk menimpa baris data asli guna mendapatkan konteks data pemicu akhir.
Jika data hubungan dikirimkan, data tersebut juga akan ditimpa, terutama saat dikonfigurasi untuk menggunakan pramuat item data hubungan, penanganan data yang dikirimkan harus dilakukan dengan hati-hati agar data hubungan tidak ditimpa secara tidak sengaja.
Selain itu, parameter URL triggerWorkflows adalah kunci (key) alur kerja, beberapa alur kerja dipisahkan dengan koma. Kunci tersebut dapat diperoleh dengan mengarahkan kursor ke nama alur kerja di bagian atas kanvas alur kerja:

Setelah panggilan di atas berhasil, peristiwa aksi kustom untuk tabel samples yang sesuai akan dipicu.
Saat memicu peristiwa setelah operasi melalui panggilan HTTP API, perhatikan juga status aktif alur kerja serta apakah konfigurasi tabel data cocok, jika tidak, panggilan mungkin tidak berhasil atau terjadi kesalahan.
Serupa dengan cara pemanggilan satu baris data, tetapi data yang dikirimkan hanya memerlukan beberapa parameter kunci utama (filterByTk[]), dan tidak perlu mengirimkan bagian data:
Panggilan ini akan memicu peristiwa aksi kustom mode beberapa baris data, dan menggunakan data dengan id 1 dan 2 sebagai data dalam konteks pemicu.