Dynamics AX adalah salah satu ERP (Enterprise Resource Planning) yang banyak digunakan perusahaan besar untuk mengelola proses bisnis. Di dalamnya terdapat berbagai fungsi dan perintah coding yang sangat membantu developer maupun konsultan dalam melakukan kustomisasi.
Melalui artikel ini, kami akan berbagi beberapa fungsi dan source code pilihan yang sering digunakan, serta tips penanganan khusus dalam implementasinya.
π Daftar Fungsi dan Source Code Pilihan
Mengapa Penting Memahami Fungsi Dynamics AX? Ada beberapa hal yang cukup penting mengapa Anda perlu untuk memahami fungsi-fungsi yang ada, seperti untuk efisiensi kerja yang bisa membantu Anda mempercepat proses pengembangan dan kustomisasi. Ada juga fungsi sebagai fleksibilitas system yang memungkinkan penyesuaian sesuai kebutuhan bisnis.
Dan best practice-nya adalah untuk menghindari error dengan menggunakan fungsi yang sudah terbukti.
Maka berikut beberapa contoh fungsi dan source code yang sering digunakan dalam Dynamics AX:
1. Mengenal Tipe Data utcDateTime
Adapun utcDateTime adalah tipe data baru yang diperkenalkan di Dynamics AX 2009. Tujuannya adalah menggantikan tipe data lama Date dan Time, dengan menyatukan keduanya dalam satu format yang lebih konsisten.
utcDateTime menyimpan informasi tanggal, waktu, dan zona waktu dalam satu nilai, sehingga sistem bisa bekerja lebih baik di lingkungan multi-timezone.
Karakteristik Data utcDateTime:
- Format penyimpanan: berbasis waktu UTC (Universal Coordinated Time).
- Komponen: terdiri dari tanggal, jam, menit, detik, dan informasi zona waktu.
- Kelebihan:
β Konsistensi antar lokasi (misalnya perusahaan global dengan cabang di berbagai negara).
β Memudahkan perhitungan waktu lintas zona. - Penanganan data:
β Harus selalu dikonversi ke zona waktu pengguna saat ditampilkan di form/report.
β Disarankan menggunakan class bawaan seperti **DateTimeUtil** untuk manipulasi nilai.
Konversi Data:
1. Dari `date` ke `utcDateTime`
Gunakan class DateTimeUtil:
date myDate = today();
utcDateTime myUtcDateTime;myUtcDateTime = DateTimeUtil::newDateTime(myDate, 0);
// 0 = jam 00:00:00
2. Dari `utcDateTime` ke `date`
utcDateTime myUtcDateTime = DateTimeUtil::utcNow();
date myDate;myDate = DateTimeUtil::date(myUtcDateTime);
3. Dari `utcDateTime` ke `time`
timeOfDay myTime;
myTime = DateTimeUtil::time(myUtcDateTime);
Contoh Penggunaan
utcDateTime periode1, periode2;
TimeZone userTz;TransDate prd1, prd2;
if (FromDate.valueStr() && ToDate.valueStr()){
prd1 = FromDate.dateValue();
prd2 = ToDate.dateValue();userTz = DateTimeUtil::getUserPreferredTimeZone();
// 1:00 AM
periode1 = DateTimeUtil::newDateTime(prd1, 3600);// 11:59:59 PM
periode2 = DateTimeUtil::newDateTime(prd2, 86399);// Convert ke UTC (PENTING!)
periode1 = DateTimeUtil::removeTimeZoneOffset(periode1, userTz);
periode2 = DateTimeUtil::removeTimeZoneOffset(periode2, userTz);
}utcDateTime di AX 2009 adalah tipe data modern yang menyatukan tanggal dan waktu dengan dukungan zona waktu. Cocok untuk sistem ERP global agar data waktu konsisten. Gunakan DateTimeUtil untuk konversi dan manipulasi, baik dari `date` ke `utcDateTime` maupun sebaliknya.
2. Membuka URL Dengan ShellExecute
Dalam pengembangan di Dynamics AX 2009, sering kali kita membutuhkan cara cepat untuk membuka URL atau file eksternal langsung dari X++. Salah satu fungsi yang bisa digunakan adalah WinAPI::shellExecute.
Namun, banyak developer pemula yang menemui error karena pemanggilan fungsi ini tidak sesuai dengan parameter yang dibutuhkan. Sering kali developer mencoba membuka URL langsung dari X++ menggunakan:
WinAPI::shellExecute(url);
Namun di Dynamics AX 2009, script ini akan error karena method `shellExecute` membutuhkan lima parameter, bukan satu.
Gunakan format lengkap pemanggilan `WinAPI::shellExecute`:
static void invoices(Args _args)
{
str url;
url = βhttps://cariatuh.comβ;// Format: fileName, parameters, directory, operation, show
WinAPI::shellExecute(url, β, β, βopenβ, SW_SHOWNORMAL);
}
π Penjelasan Parameter
- fileName β URL atau file yang ingin dibuka.
- parameters β argumen tambahan (kosong jika tidak ada).
- directory β direktori kerja (kosong jika tidak perlu).
- operation β aksi yang dilakukan, biasanya βopenβ.
- show β cara menampilkan jendela, misalnya SW_SHOWNORMAL.
Dengan memahami struktur parameter WinAPI::shellExecute, kita bisa menghindari error umum dan memastikan script berjalan sesuai harapan. Teknik ini tidak hanya berguna untuk membuka URL, tetapi juga dapat diterapkan untuk membuka file seperti PDF, Excel, atau aplikasi lain dari dalam Dynamics AX.
Dengan praktik yang tepat, penggunaan fungsi ini akan semakin memperkaya kemampuan kustomisasi dan integrasi sistem ERP Anda.
Catatan: Daftar ini akan terus kami update secara bertahap agar semakin lengkap.
βοΈ Tips Penanganan Khusus
- Gunakan debugging tools bawaan AX untuk memastikan kode berjalan sesuai harapan.
- Selalu perhatikan performance impact sebelum menambahkan fungsi baru.
- Dokumentasikan setiap perubahan agar mudah dipahami oleh tim lain.
Memahami fungsi dan source code pilihan di Dynamics AX akan sangat membantu dalam proses kustomisasi dan pengembangan sistem ERP. Dengan praktik yang tepat, Anda bisa meningkatkan efisiensi sekaligus menjaga stabilitas sistem.