Di Microsoft Dynamics AX 2009 (versi 5.0), terdapat beberapa jenis message box dan notifikasi yang bisa digunakan untuk memberikan informasi, peringatan, konfirmasi, maupun error kepada user.
Berikut adalah jenis-jenis message yang tersedia beserta syntax penggunaannya dalam X++.
1. info() – Informasi Biasa
Digunakan untuk menampilkan pesan informasi ringan di Infolog.
- 1. info() – Informasi Biasa
- 2. warning() – Pesan Peringatan
- 3. error() – Error (Menghentikan Proses)
- 4. throw error() – Error + Stop Total
- 5. Box::info() – Popup OK (Modal Dialog)
- 6. Box::warning()
- 7. Box::stop()
- 8. Box::yesNo() – Konfirmasi Yes / No
- 9. Box::yesNoCancel()
- 10. Box::okCancel()
- 11. checkFailed() – Validasi di Form
- 12. Global::error() dan Global::warning()
Contoh:
info(“Proses berhasil dilakukan.”);
✔ Tidak menghentikan proses
✔ Masuk ke Infolog
✔ Tidak perlu klik OK untuk lanjut (kecuali dibuka detail)
2. warning() – Pesan Peringatan
Digunakan untuk menampilkan peringatan, tetapi tetap melanjutkan proses.
Contoh:
warning(“Stok hampir habis.”);
✔ Muncul warna kuning
✔ Tidak menghentikan proses
✔ Masuk Infolog
3. error() – Error (Menghentikan Proses)
Digunakan untuk menampilkan error dan menghentikan eksekusi.
Contoh:
error(“Data tidak valid.”);
✔ Warna merah
✔ Menghentikan proses
✔ Masuk Infolog
Biasanya dipakai dalam validasi.
4. throw error() – Error + Stop Total
Digunakan jika ingin benar-benar menghentikan transaksi atau method.
Contoh:
throw error(“Transaksi dibatalkan karena data tidak lengkap.”);
✔ Stop execution
✔ Rollback jika dalam ttsBegin
Best practice untuk validasi critical.
5. Box::info() – Popup OK (Modal Dialog)
Menampilkan popup dengan tombol OK.
Contoh:
Box::info(“Proses selesai.”);
✔ User harus klik OK
✔ Tidak hanya masuk Infolog
✔ Cocok untuk notifikasi penting
6. Box::warning()
Popup peringatan dengan tombol OK.
Box::warning(“Periksa kembali data Anda.”);
7. Box::stop()
Popup error (ikon merah).
Box::stop(“Proses tidak dapat dilanjutkan.”);
8. Box::yesNo() – Konfirmasi Yes / No
Digunakan untuk meminta konfirmasi user.
Contoh:
DialogButton result;
result = Box::yesNo(“Apakah Anda yakin ingin menghapus data?”, DialogButton::No);
if (result == DialogButton::Yes)
{
info(“Data dihapus.”);
}
9. Box::yesNoCancel()
DialogButton result;
result = Box::yesNoCancel(“Simpan perubahan?”, DialogButton::Yes);
switch (result)
{
case DialogButton::Yes:
info(“Disimpan.”);
break;case DialogButton::No:
info(“Tidak disimpan.”);
break;case DialogButton::Cancel:
info(“Dibatalkan.”);
break;
}
10. Box::okCancel()
DialogButton result;
result = Box::okCancel(“Lanjutkan proses?”, DialogButton::Ok);
if (result == DialogButton::Ok)
{
info(“Proses dilanjutkan.”);
}
11. checkFailed() – Validasi di Form
Sering dipakai dalam validateWrite() atau validateField().
public boolean validateWrite()
{
boolean ret;ret = super();
if (this.Amount < 0)
{
ret = checkFailed(“Amount tidak boleh minus.”);
}return ret;
}
✔ Tidak throw exception
✔ User tetap di record
✔ Cocok untuk validasi form
12. Global::error() dan Global::warning()
Sama seperti error() dan warning(), tapi dipanggil secara eksplisit dari class Global.
⚠️ Best Practice di AX 2009
✔ Gunakan checkFailed() untuk validasi form
✔ Gunakan throw error() untuk validasi transaksi
✔ Hindari terlalu banyak Box::info() karena blocking
✔ Gunakan info() untuk log ringan
Dengan memahami berbagai jenis message box dan notifikasi yang tersedia di Microsoft Dynamics AX 2009 (versi 5.0), Anda dapat memilih metode yang paling tepat sesuai kebutuhan bisnis dan skenario pengembangan.
Penggunaan info(), warning(), error(), checkFailed(), hingga Box::yesNo() masing-masing memiliki fungsi dan dampak berbeda terhadap alur proses sistem. Pemilihan yang tepat tidak hanya meningkatkan pengalaman pengguna (user experience), tetapi juga menjaga konsistensi validasi dan stabilitas transaksi dalam environment production.
Sebagai best practice, gunakan pesan yang informatif, tidak berlebihan, dan sesuai konteks agar sistem tetap profesional, efisien, dan mudah dipahami oleh end user.
Robot Vacuum Mini Pintar untuk Ruang Sempit
🌟 Deebot Mini hadir dengan desain compact hanya 28,6 cm, mudah menjangkau kolong dan sudut sempit. Dilengkapi sensor pintar & radar LDS untuk pembersihan efisien hingga 89% area dengan minim blind spot. Solusi ideal untuk apartemen, kos, dan ruang terbatas. ✨
~ shopee.co.id ~
Cooger Spray Mop Modern - Pel Semprot Praktis 360°
⚡ Bersihkan lantai lebih mudah dengan Cooger Spray Mop! Tangki air otomatis, kepala 360°, microfiber super serap, ringan, dan cocok untuk kayu, marmer, hingga ubin. Praktis, modern, dan hemat tenaga setiap hari. 🌸
~ shopee.co.id ~
Artikel Terkait
Transformasi Kinerja dan Kesejahteraan Mental: Magisnya Teknik Pomodoro bagi Pelajar dan Mahasiswa
Fungsi dan Source Code Pilihan Dynamics AX
Panduan Lengkap Membuat Akun dan Mengakses Portal Power Apps untuk Pemula
Cara Membuat Popup Notifikasi Antar User Menggunakan Timer di Dynamics AX
Meningkatkan Efisiensi Kerja dengan Microsoft Power Apps: Cara Kerja Lebih Cepat & Tepat
Power Virtual Agents: Panduan Lengkap Buat Chatbot Tanpa Koding