Dokumen ini diterjemahkan oleh AI. Untuk ketidakakuratan apa pun, silakan lihat versi bahasa Inggris
NocoBase memiliki aksi data umum bawaan (tambah, hapus, perbarui, lihat, dll.). Ketika aksi-aksi ini tidak dapat memenuhi kebutuhan bisnis yang kompleks, Anda dapat menggunakan peristiwa aksi kustom dalam sebuah alur kerja. Dengan mengikat peristiwa ini ke tombol "Picu Alur Kerja" di blok halaman, sebuah alur kerja aksi kustom akan terpicu saat pengguna mengkliknya.
Saat membuat alur kerja, pilih "Peristiwa Aksi Kustom":

v.1.6.0+
Tipe konteks yang berbeda akan menentukan tombol-tombol blok mana yang dapat diikatkan ke alur kerja ini:

Ketika tipe konteks adalah Satu Baris Data atau Beberapa Baris Data, Anda perlu memilih koleksi untuk mengikat model data:

Jika Anda perlu menggunakan data asosiasi dari baris data pemicu dalam alur kerja, Anda dapat memilih bidang asosiasi mendalam di sini:

Bidang-bidang ini akan secara otomatis dimuat sebelumnya ke dalam konteks alur kerja setelah peristiwa terpicu, sehingga tersedia untuk digunakan dalam alur kerja.
Konfigurasi tombol aksi di blok yang berbeda bervariasi tergantung pada tipe konteks yang dikonfigurasi dalam alur kerja.
v.1.6.0+
Di Bilah Aksi dan blok data lainnya, Anda dapat menambahkan tombol "Picu Alur Kerja":



Setelah menambahkan tombol, ikat alur kerja tanpa konteks yang telah dibuat sebelumnya. Berikut adalah contoh menggunakan tombol di Bilah Aksi:


Di blok data mana pun, tombol "Picu Alur Kerja" dapat ditambahkan ke bilah aksi untuk satu baris data, seperti di formulir, baris tabel, detail, dll.:



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


Setelah itu, mengklik tombol ini akan memicu peristiwa aksi kustom.

v.1.6.0+
Di bilah aksi blok tabel, saat menambahkan tombol "Picu Alur Kerja", ada opsi tambahan untuk memilih tipe konteks: "Tanpa Konteks" atau "Beberapa Baris Data":

Ketika "Tanpa Konteks" dipilih, ini adalah peristiwa global dan hanya dapat diikatkan ke alur kerja tipe tanpa konteks.
Ketika "Beberapa Baris Data" dipilih, Anda dapat mengikat alur kerja tipe beberapa baris data, yang dapat digunakan untuk aksi massal setelah memilih beberapa baris data (saat ini hanya didukung oleh tabel). Alur kerja yang tersedia terbatas pada yang dikonfigurasi agar sesuai dengan koleksi blok data saat ini:

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

Sebagai contoh, kita memiliki koleksi "Sampel". Untuk sampel dengan status "Terkumpul", kita perlu menyediakan aksi "Kirim untuk Inspeksi". Aksi ini akan terlebih dahulu memeriksa informasi dasar sampel, kemudian menghasilkan "Catatan Inspeksi", dan akhirnya mengubah status sampel menjadi "Terkirim". Serangkaian proses ini tidak dapat diselesaikan dengan klik tombol "tambah, hapus, perbarui, lihat" sederhana, jadi peristiwa aksi kustom dapat digunakan untuk mengimplementasikannya.
Pertama, buat koleksi "Sampel" dan koleksi "Catatan Inspeksi", lalu masukkan beberapa data uji dasar ke dalam koleksi Sampel:

Kemudian, buat alur kerja "Peristiwa Aksi Kustom". Jika Anda membutuhkan umpan balik yang cepat dari proses operasi, Anda dapat memilih mode sinkron (dalam mode sinkron, Anda tidak dapat menggunakan node asinkron seperti pemrosesan manual):

Dalam konfigurasi pemicu, pilih "Sampel" untuk koleksi:

Atur logika dalam proses sesuai dengan kebutuhan bisnis. Misalnya, izinkan pengiriman untuk inspeksi hanya jika parameter indikator lebih besar dari 90; jika tidak, tampilkan pesan yang relevan:

Node "Pesan Respons" dapat digunakan dalam peristiwa aksi kustom sinkron untuk mengembalikan pesan prompt kepada klien. Node ini tidak dapat digunakan dalam mode asinkron.
Setelah mengonfigurasi dan mengaktifkan alur kerja, kembali ke antarmuka tabel dan tambahkan tombol "Picu Alur Kerja" di kolom aksi tabel:

Kemudian, di menu konfigurasi tombol, pilih untuk mengikat alur kerja dan buka pop-up konfigurasi:

Tambahkan alur kerja yang sebelumnya diaktifkan:

Setelah mengirimkan, ubah teks tombol menjadi nama aksi, seperti "Kirim untuk Inspeksi". Proses konfigurasi kini selesai.
Untuk menggunakannya, pilih data sampel apa pun di tabel dan klik tombol "Kirim untuk Inspeksi" untuk memicu peristiwa aksi kustom. Sesuai dengan logika yang diatur sebelumnya, jika parameter indikator sampel kurang dari 90, prompt berikut akan ditampilkan setelah mengklik:

Jika parameter indikator lebih besar dari 90, proses akan dieksekusi secara normal, menghasilkan "Catatan Inspeksi" dan mengubah status sampel menjadi "Terkirim":

Pada titik ini, sebuah peristiwa aksi kustom sederhana telah selesai. Demikian pula, untuk bisnis dengan operasi kompleks seperti pemrosesan pesanan atau pengiriman laporan, peristiwa aksi kustom dapat digunakan untuk implementasi.
Pemicuan peristiwa aksi kustom tidak terbatas pada aksi antarmuka pengguna; ini juga dapat dipicu melalui panggilan HTTP API. Secara khusus, peristiwa aksi kustom menyediakan tipe aksi baru untuk semua aksi koleksi untuk memicu alur kerja: trigger, yang dapat dipanggil menggunakan API aksi standar NocoBase.
Alur kerja yang dipicu oleh tombol, seperti dalam contoh, dapat dipanggil seperti ini:
Karena aksi ini untuk satu baris data, saat memanggilnya pada data yang sudah ada, Anda perlu menentukan ID baris data, mengganti bagian <:id> di URL.
Jika dipanggil untuk formulir (seperti untuk membuat atau memperbarui), Anda dapat menghilangkan ID untuk formulir yang membuat data baru, tetapi Anda harus meneruskan data yang dikirimkan sebagai konteks eksekusi:
Untuk formulir pembaruan, Anda perlu meneruskan ID baris data dan data yang diperbarui secara bersamaan:
Jika ID dan data diteruskan secara bersamaan, baris data yang sesuai dengan ID akan dimuat terlebih dahulu, dan kemudian properti dari objek data yang diteruskan akan digunakan untuk menimpa baris data asli untuk mendapatkan konteks data pemicu akhir.
Jika data asosiasi diteruskan, itu juga akan ditimpa. Berhati-hatilah saat menangani data yang masuk jika pramuat item data asosiasi dikonfigurasi, untuk menghindari penimpaan data asosiasi yang tidak terduga.
Selain itu, parameter URL triggerWorkflows adalah kunci alur kerja; beberapa kunci alur kerja dipisahkan oleh koma. Kunci ini dapat diperoleh dengan mengarahkan kursor mouse ke nama alur kerja di bagian atas kanvas alur kerja:

Setelah panggilan berhasil, peristiwa aksi kustom untuk koleksi samples yang sesuai akan terpicu.
Karena panggilan eksternal juga perlu didasarkan pada identitas pengguna, saat memanggil melalui HTTP API, sama seperti permintaan yang dikirim dari antarmuka biasa, Anda perlu menyediakan informasi autentikasi. Ini termasuk header permintaan Authorization atau parameter token (token yang diperoleh saat login), dan header permintaan X-Role (nama peran pengguna saat ini).
Jika Anda perlu memicu peristiwa untuk data asosiasi satu-ke-satu (satu-ke-banyak saat ini tidak didukung) dalam aksi ini, Anda dapat menggunakan ! dalam parameter untuk menentukan data pemicu dari bidang asosiasi:
Setelah panggilan berhasil, peristiwa aksi kustom untuk koleksi categories yang sesuai akan terpicu.
Saat memicu peristiwa aksi melalui panggilan HTTP API, Anda juga perlu memperhatikan status aktif alur kerja dan apakah konfigurasi koleksi cocok; jika tidak, panggilan mungkin tidak berhasil atau mungkin terjadi kesalahan.