Dokumen ini diterjemahkan oleh AI. Untuk ketidakakuratan apa pun, silakan lihat versi bahasa Inggris
Pemicu (trigger) dengan tipe koleksi event akan memantau event penambahan, penghapusan, dan pembaruan data pada sebuah koleksi. Ketika operasi data pada koleksi tersebut terjadi dan memenuhi kondisi yang telah dikonfigurasi, alur kerja yang sesuai akan terpicu. Contohnya, skenario seperti mengurangi stok produk setelah pesanan baru dibuat, atau menunggu tinjauan manual setelah komentar baru ditambahkan.
Ada beberapa kondisi perubahan pada koleksi:

Anda dapat memilih waktu pemicu berdasarkan kebutuhan bisnis yang berbeda. Ketika kondisi perubahan yang dipilih mencakup pembaruan koleksi, Anda juga dapat membatasi bidang (field) yang berubah. Kondisi pemicu hanya akan terpenuhi jika bidang yang dipilih berubah. Jika tidak ada bidang yang dipilih, berarti perubahan pada bidang apa pun dapat memicu alur kerja.

Lebih lanjut, Anda dapat mengonfigurasi aturan kondisi untuk setiap bidang pada baris data yang memicu. Pemicu hanya akan aktif jika bidang-bidang tersebut memenuhi kondisi yang sesuai.

Setelah koleksi event terpicu, baris data yang menghasilkan event akan disuntikkan ke dalam rencana eksekusi sebagai data konteks pemicu. Data ini kemudian dapat digunakan sebagai variabel oleh node-node selanjutnya dalam alur kerja. Namun, jika node selanjutnya ingin menggunakan bidang relasi dari data ini, Anda perlu mengonfigurasi preloading data relasi terlebih dahulu. Data relasi yang dipilih akan disuntikkan ke dalam konteks bersamaan dengan pemicu dan dapat dipilih serta digunakan secara hierarkis.
Koleksi event saat ini belum mendukung pemicuan oleh operasi data massal. Contohnya, ketika membuat data artikel dan secara bersamaan menambahkan beberapa data tag untuk artikel tersebut (data relasi satu-ke-banyak), hanya alur kerja untuk pembuatan artikel yang akan terpicu. Beberapa tag yang ditambahkan secara bersamaan tidak akan memicu alur kerja untuk pembuatan tag. Ketika mengasosiasikan atau menambahkan data relasi banyak-ke-banyak, alur kerja untuk koleksi perantara juga tidak akan terpicu.
Operasi pada koleksi melalui panggilan HTTP API ke antarmuka aplikasi juga dapat memicu event yang sesuai. Namun, jika perubahan data dilakukan langsung melalui operasi basis data dan bukan melalui aplikasi NocoBase, event yang sesuai tidak dapat terpicu. Misalnya, pemicu (trigger) basis data bawaan tidak akan terkait dengan alur kerja di aplikasi.
Selain itu, menggunakan node operasi SQL untuk mengoperasikan basis data sama dengan mengoperasikan basis data secara langsung, dan ini juga tidak akan memicu koleksi event.
Alur kerja telah mendukung sumber data eksternal sejak versi 0.20. Jika Anda menggunakan plugin sumber data eksternal, dan koleksi event dikonfigurasi untuk sumber data eksternal, selama operasi data pada sumber data tersebut dilakukan di dalam aplikasi (seperti pembuatan, pembaruan oleh pengguna, dan operasi data alur kerja), koleksi event yang sesuai dapat terpicu. Namun, jika perubahan data dilakukan melalui sistem lain atau langsung di dalam basis data eksternal, koleksi event tidak dapat terpicu.
Mari kita ambil contoh skenario penghitungan total harga dan pengurangan stok setelah pesanan baru dibuat.
Pertama, kita membuat koleksi Produk dan koleksi Pesanan dengan model data sebagai berikut:
| Nama Bidang | Tipe Bidang |
|---|---|
| Nama Produk | Teks Satu Baris |
| Harga | Angka |
| Stok | Bilangan Bulat |
| Nama Bidang | Tipe Bidang |
|---|---|
| ID Pesanan | Nomor Urut |
| Produk Pesanan | Banyak-ke-Satu (Produk) |
| Total Pesanan | Angka |
Dan tambahkan beberapa data produk dasar:
| Nama Produk | Harga | Stok |
|---|---|---|
| iPhone 14 Pro | 7999 | 10 |
| iPhone 13 Pro | 5999 | 0 |
Kemudian, buat alur kerja berdasarkan koleksi event Pesanan:

Berikut adalah beberapa opsi konfigurasi:
Selanjutnya, konfigurasikan node-node lain sesuai logika alur kerja: periksa apakah stok produk lebih besar dari 0. Jika ya, kurangi stok; jika tidak, pesanan tidak valid dan harus dihapus:

Konfigurasi node akan dijelaskan secara rinci dalam dokumentasi untuk tipe node tertentu.
Aktifkan alur kerja ini dan uji dengan membuat pesanan baru melalui antarmuka. Setelah memesan "iPhone 14 Pro", stok produk yang sesuai akan berkurang menjadi 9. Sedangkan jika memesan "iPhone 13 Pro", pesanan akan dihapus karena stok tidak mencukupi.
