Event Tabel Data
Pengantar
Trigger tipe event tabel data akan men-listen event tambah/hapus/perbarui/kueri tabel data. Ketika operasi data terhadap tabel tersebut terjadi dan memenuhi kondisi yang dikonfigurasi, Workflow yang sesuai akan dipicu. Misalnya setelah menambah pesanan kurangi stok produk, setelah menambah komentar tunggu peninjauan manual, dan skenario lainnya.
Penggunaan Dasar
Perubahan tabel data memiliki beberapa kondisi:
- Setelah penambahan data.
- Setelah pembaruan data.
- Setelah penambahan atau pembaruan data.
- Setelah penghapusan data.

Anda dapat memilih waktu pemicuan berdasarkan kebutuhan bisnis yang berbeda. Ketika kondisi perubahan yang dipilih mengandung kondisi pembaruan tabel data, Anda juga dapat membatasi field yang berubah. Hanya ketika field yang dipilih berubah, kondisi pemicuan terpenuhi. Jika tidak memilih, semua field yang berubah dapat memicu.

Lebih detail, Anda dapat mengonfigurasi aturan kondisi untuk setiap field baris data yang dipicu. Hanya ketika field di dalamnya memenuhi kondisi yang sesuai, baru dilakukan pemicuan.

Setelah event tabel data dipicu, baris data yang menghasilkan event akan diinjeksikan ke rencana eksekusi sebagai data konteks pemicuan, untuk digunakan oleh Node dalam alur sebagai variabel. Namun ketika Node berikutnya ingin menggunakan field relasi data tersebut, Anda perlu mengonfigurasi terlebih dahulu pre-loading untuk data relasi. Data relasi yang dipilih akan diinjeksikan ke konteks bersamaan setelah pemicuan, dan dapat dipilih dan digunakan secara hierarkis.
Tips Terkait
Pemicuan Operasi Data Batch Belum Didukung
Event tabel data saat ini belum mendukung pemicuan operasi data batch. Misalnya saat menambah data artikel sambil menambah beberapa data tag artikel tersebut (data relasi to-many), hanya akan memicu Workflow penambahan artikel, sedangkan beberapa tag yang ditambahkan bersamaan tidak akan memicu Workflow penambahan tag. Saat asosiasi dan penambahan data relasi many-to-many, Workflow tabel perantara juga tidak akan dipicu.
Operasi Data di Luar Aplikasi Tidak Akan Memicu
Operasi tabel data melalui panggilan API HTTP aplikasi juga dapat memicu event yang sesuai. Tetapi jika tidak melalui aplikasi NocoBase, melainkan langsung melalui operasi database menghasilkan perubahan data, tidak akan dapat memicu event yang sesuai. Misalnya Trigger asli di database tidak akan terkait dengan Workflow di aplikasi.
Selain itu, menggunakan Node Operasi SQL untuk mengoperasikan database setara dengan langsung mengoperasikan database, juga tidak akan memicu event tabel data.
Sumber Data Eksternal
Workflow mulai mendukung sumber data eksternal sejak 0.20. Jika menggunakan plugin sumber data eksternal, dan event tabel data yang dikonfigurasi adalah sumber data eksternal, selama operasi data terhadap sumber data tersebut diselesaikan di dalam aplikasi (penambahan, pembaruan oleh pengguna, dan operasi data Workflow, dll.), semua dapat memicu event tabel data yang sesuai. Tetapi jika perubahan data dilakukan melalui sistem lain atau langsung di database eksternal, tidak akan dapat memicu event tabel data.
Contoh
Mari ambil contoh skenario menghitung total harga dan mengurangi stok setelah menambah pesanan.
Pertama, kita buat tabel produk dan tabel pesanan, model data sebagai berikut:
Dan tambahkan data produk dasar:
Kemudian buat sebuah Workflow berbasis event tabel data pesanan:

Beberapa item konfigurasi di dalamnya:
- Tabel Data: pilih tabel "Pesanan".
- Waktu Pemicuan: pilih "Setelah Penambahan Data" untuk memicu.
- Kondisi Pemicuan: kosongkan.
- Pre-load Data Relasi: centang "Produk".
Kemudian konfigurasikan Node lainnya berdasarkan logika alur, periksa apakah stok produk lebih besar dari 0, jika lebih besar dari 0 kurangi stok, jika tidak pesanan tidak valid hapus pesanan:

Konfigurasi Node akan dijelaskan secara detail dalam dokumen pengantar tipe spesifik.
Aktifkan Workflow ini, dan uji dengan menambah pesanan melalui antarmuka. Setelah memesan "iPhone 14 Pro", stok produk yang sesuai akan dikurangi menjadi 9, sedangkan jika memesan "iPhone 13 Pro", karena stok tidak mencukupi, pesanan akan dihapus.


