M365Con 2027 – konferensi online gratis · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Event vs Trigger di Business Central AL: Panduan Waktu Eksekusi untuk Developer

By ·

Kuasai pengembangan AL di Business Central dengan memahami kapan harus menggunakan trigger dan kapan menggunakan event subscriber untuk logika bisnis kustom, validasi, dan pemeriksaan posting.

Automatically translated with AI from the original post. Read the English original

Cover: Dynamics 365 Business Central AL Development

Memahami perbedaan antara trigger dan event di pengembangan AL Microsoft Dynamics 365 Business Central sangat penting untuk menulis extension yang bersih dan mudah dipelihara. Memilih mekanisme eksekusi yang tepat memastikan aturan validasi Anda berjalan pada waktu yang tepat, mencegah entri data yang salah, dan menjaga pembaruan cloud tetap lancar tanpa menduplikasi kode aplikasi inti.

Poin Penting

Arsitektur Logika Kustom di Business Central

Saat memperluas Dynamics 365 Business Central menggunakan Application Language (AL) milik Microsoft, menulis kode hanyalah separuh dari pekerjaan. Tantangan sebenarnya terletak pada menentukan di mana dan kapan kode tersebut harus dieksekusi. Baik Anda menambahkan field level reward sederhana ke data pelanggan maupun menerapkan pemeriksaan kepatuhan yang kompleks sebelum faktur dibuat, keawetan dan stabilitas extension Anda bergantung pada cara Anda terhubung ke sistem.

Model pengembangan lama sering mendorong developer untuk menulis ulang kode aplikasi native secara langsung. Jika Anda ingin sebuah pemeriksaan berjalan sebelum dokumen diposting, Anda menyisipkan logika langsung ke dalam rutin posting inti. Meskipun cara ini berhasil untuk sementara, setiap pembaruan besar Microsoft berubah menjadi proyek rekonsiliasi yang menyakitkan. Pengembangan extension Business Central modern mengandalkan model modular berbasis aplikasi. Alih-alih menulis ulang rutin standar, developer menggunakan titik koneksi bawaan, khususnya trigger dan event, untuk menyisipkan logika kustom secara aman di samping kode aplikasi standar.

Mengupas Trigger AL

Trigger adalah lokasi yang telah ditentukan di dalam objek AL tempat Anda dapat menulis kode yang dieksekusi secara otomatis ketika tindakan tertentu terjadi. Setiap objek standar dan kustom, termasuk tabel, extension tabel, halaman, extension halaman, laporan, dan codeunit, memiliki titik-titik native ini.

Pertimbangkan skenario praktis berikut: organisasi Anda telah menambahkan field Reward ID kustom pada data pelanggan. Ketika pengguna memilih level reward dari daftar dropdown, Anda perlu sistem segera memverifikasi apakah akun pelanggan diblokir atau apakah atribut sekunder perlu diperbarui. Dengan memanfaatkan trigger OnValidate pada field tersebut, kode Anda dijalankan tepat pada saat pengguna melakukan perubahan.

Kapan Menggunakan Trigger

Trigger paling tepat digunakan ketika logika bisnis Anda hanya berlaku untuk satu objek dan konteks terdekatnya. Contohnya:

Karena trigger dibatasi secara ketat pada objek induknya, kode lokal menjadi mudah ditemukan, dibaca, dan dipelihara dalam jangka panjang.

Memanfaatkan Event dan Event Subscriber di Business Central

Sementara trigger menangani tindakan lokal, proses multi-langkah yang lebih luas, seperti memposting pesanan penjualan, mengirim persediaan, atau membuat jurnal keuangan, memerlukan pendekatan yang lebih canggih. Anda tidak bisa begitu saja menyisipkan kode validasi di tengah rutin posting yang besar tanpa merusak model ekstensi.

Di sinilah event dan event subscriber menjadi sangat penting. Bayangkan event sebagai pemberitahuan resmi yang disiarkan oleh aplikasi standar Business Central. Sistem mengumumkan tonggak penting, misalnya 'sebuah record akan segera disisipkan' atau 'sebuah dokumen penjualan akan segera diposting.' Ekstensi Anda dapat menyimak pemberitahuan ini menggunakan prosedur event subscriber.

Ketika Business Central memunculkan event bernama tersebut, prosedur subscriber Anda aktif, menjalankan aturan kustom, lalu memberi lampu hijau atau menghentikan proses dengan pesan kesalahan yang deskriptif. Yang terpenting, ekstensi Anda tidak perlu menyalin, menempel, atau menulis ulang mesin posting yang mendasarinya.

Kekuatan Waktu: OnBefore vs. OnAfter

Saat membangun event subscriber di AL, konvensi penamaan menunjukkan waktu eksekusinya. Memahami waktu ini sangat penting untuk keandalan sistem:

Aturan yang berjalan terlalu lambat tidak dapat mencegah transaksi yang keliru, sedangkan aturan yang berjalan terlalu dini mungkin belum memiliki data yang dihitung selama rutin standar. Memetakan logika Anda ke signature event yang tepat menghilangkan jebakan ini.

Kesimpulan

Menguasai keseimbangan antara trigger objek dan event subscriber mengubah cara Anda mendekati ekstensi Business Central. Dengan memanfaatkan trigger lokal untuk validasi bidang dan event subscriber untuk proses lintas sistem, Anda memastikan kustomisasi tetap tangguh terhadap pembaruan cloud sekaligus menjaga lingkungan tetap cepat dan aman.

Untuk mendalami prinsip desain aplikasi modern dan mendengarkan pembahasan arsitektur dari para ahli, Dengarkan episode lengkapnya di M365 FM Podcast. Simak untuk mempelajari bagaimana cloud architect dan developer mengoptimalkan ekosistem Microsoft demi kesuksesan bisnis di dunia nyata!

Pertanyaan Umum

Apa perbedaan utama antara trigger dan event subscriber dalam AL?

Trigger adalah titik eksekusi kode yang telah ditentukan dan langsung berada di dalam objek AL tertentu (seperti bidang tabel atau halaman), sedangkan event subscriber adalah prosedur terpisah dalam ekstensi Anda yang menyimak pemberitahuan yang dipublikasikan dari aplikasi dasar atau objek lain tanpa mengubah kode asli.

Bisakah event subscriber mencegah pesanan penjualan diposting?

Bisa. Jika Anda menggunakan event subscriber 'on before' yang terkait dengan proses posting, kode kustom Anda dapat mengevaluasi kondisi bisnis, menampilkan pesan kesalahan, dan menghentikan transaksi sebelum rutin posting menyelesaikan entri.

Kapan sebaiknya saya menggunakan trigger validasi bidang tabel alih-alih event subscriber?

Gunakan trigger validasi bidang tabel ketika aturan bisnis Anda secara ketat terkait dengan perubahan nilai bidang tertentu, misalnya memeriksa apakah Reward ID kustom ada atau memastikan bidang status terkait diperbarui segera setelah input pengguna.

Mengapa waktu eksekusi sangat penting saat menulis event subscriber AL?

Waktu eksekusi menentukan apakah kode Anda berjalan sebelum atau sesudah proses inti selesai. Jika aturan Anda berjalan terlalu awal, data yang diperlukan mungkin belum terisi; jika berjalan terlalu lambat, Anda kehilangan kemampuan untuk memblokir transaksi yang tidak valid.

Dynamics 365 Dynamics 365 Business Central

Related articles

RSS