Dynamics AX 2012 SysOperation Framework Ringkesan Cepet
Diterbitake: 15 Februari 2025 ing 22:36:59 UTC
Dianyari pungkasan: 12 Januari 2026 ing 08:40:01 UTC
Artikel iki nyedhiyakake ringkesan cepet (utawa contekan) babagan carane ngetrapake kelas pangolahan lan tugas batch ing kerangka SysOperation ing Dynamics AX 2012 lan Dynamics 365 for Operations.
Dynamics AX 2012 SysOperation Framework Quick Overview
Informasi ing kiriman iki adhedhasar Dynamics AX 2012 R3. Iki bisa uga valid utawa ora valid kanggo versi liyane. (Nganyari: Aku bisa ngonfirmasi manawa informasi ing artikel iki uga valid kanggo Dynamics 365 for Operations)
Kiriman iki mung minangka ringkesan cepet lan lembar contekan. Yen sampeyan anyar ing framework SysOperation, aku banget nyaranake sampeyan maca buku putih Microsoft babagan subyek kasebut uga. Informasi ing kene bisa migunani yen sampeyan mung butuh pambuka cepet babagan macem-macem kelas sing ana gandhengane karo ngembangake operasi nganggo framework iki.
Ana variasi, nanging nalika aku nggunakake framework iki, aku biasane ngetrapake telung kelas:
- Kontrak data (kudune ngluwihi SysOperationDataContractBase)
- Layanan (kudune ngluwihi SysOperationServiceBase)
- Kontroler (kudu ngembangake SysOperationServiceController)
Kajaba iku, aku uga bisa ngetrapake kelas UIBuilder (kudu ngembangake SysOperationUIBuilder), nanging mung perlu yen dialog amarga sawetara alesan kudu luwih maju tinimbang sing digawe framework kanthi otomatis.
Kontrak data
Kontrak data nyimpen anggota data sing dibutuhake kanggo operasi sampeyan. Iki bisa dibandhingake karo makro CurrentList khas sing ditetepake ing framework RunBase, nanging diimplementasikake minangka kelas. Kontrak data kudune ngluwihi SysOperationDataContractBase, nanging bakal bisa digunakake sanajan ora. Kauntungan saka ngembangake kelas super yaiku nyedhiyakake sawetara informasi sesi sing bisa migunani.
class MyDataContract extends SysOperationDataContractBase
{
ItemId itemId;
}
Ing conto iki, itemId iku anggota data. Sampeyan kudu ngetrapake metode parm kanggo saben anggota data lan menehi tag nganggo DataMemberAttribute supaya framework ngerti apa iku. Iki ngaktifake framework kanggo mbangun dialog kanthi otomatis kanggo sampeyan.
public ItemId parmItemId(ItemId _itemId = itemId)
{
;
itemId = _itemId;
return itemId;
}
Layanan
Kelas layanan iku kelas sing ngemot logika bisnis sing nyata. Kelas iki ora ana hubungane karo nampilake dialog, pamrosesan batch utawa apa wae sing padha - iku tanggung jawabe kelas controller. Kanthi misahake iki, sampeyan luwih cenderung ngrancang kode kanthi apik lan nggawe kode sing luwih bisa digunakake maneh.
Kaya kelas kontrak data, kelas layanan ora perlu nurun saka apa wae, nanging kudu nurun saka kelas SysOperationServiceBase, paling ora yen sampeyan ngarepake layanan kasebut bakal dilakokake minangka tugas batch, amarga kelas super nyedhiyakake sawetara informasi babagan konteks batch. Metode sing miwiti operasi (yaiku mbukak logika bisnis) kudu njupuk obyek kelas kontrak data sampeyan minangka input lan kudu dihias nganggo [SysEntryPointAttribute]. Contone:
{
}
Nganggo metode sing diarani run:
public void run(MyDataContract _dataContract)
{
// run business logic here
}
Kontroler
Kelas controller nangani eksekusi lan pamrosesan batch operasi sampeyan. Kelas iki uga njamin manawa kode kasebut dieksekusi ing CIL kanggo kinerja maksimal. Kelas controller biasane entuk warisan saka kelas SysOperationServiceController, sanajan ana pilihan liyane uga.
{
}
Konstruktor kelas super njupuk jeneng kelas, jeneng metode, lan (opsional) mode eksekusi minangka parameter. Jeneng kelas lan metode kudu dadi jeneng kelas layanan sampeyan lan metode sing kudu dilakokake. Dadi, sampeyan bisa ngetrapake metode konstruksi controller kaya iki:
{
;
return new MyController(classStr(MyService),
methodStr(MyService, run));
}
Banjur metode utama saka kelas MyController bisa sesederhana kaya
{
;
MyController::construct().startOperation();
}
Lan wis rampung. Ing ndhuwur iki conto sing prasaja banget lan framework iki ngemot akeh pilihan lan kemungkinan liyane, nanging iki minangka ringkesan cepet yen sampeyan butuh penyegaran nalika sampeyan wis suwe ora nggunakake framework kasebut.
Wacan Salajengipun
Yen sampeyan seneng karo kiriman iki, sampeyan bisa uga seneng saran iki:
- Bedane antarane data() lan buf2Buf() ing Dynamics AX 2012
- Ngonversi Real menyang String karo Kabeh Desimal ing Dynamics AX 2012
- Nggunakake Kerangka SysExtension kanggo Nggoleki Subkelas Endi sing Digawe Instantiate ing Dynamics AX 2012
