Dinamika AX 2012 SysOperation Framework Ihtisar Gancang
Diterbitkeun: 15 Pébruari 2025 jam 22.39.12 UTC
Panungtungan diropéa: 12 Januari 2026 jam 8.40.20 UTC
Artikel ieu nyayogikeun tinjauan ringkes (atanapi contekan) ngeunaan kumaha nerapkeun kelas pamrosésan sareng padamelan batch dina kerangka SysOperation dina Dynamics AX 2012 sareng Dynamics 365 for Operations.
Dynamics AX 2012 SysOperation Framework Quick Overview
Inpormasi dina tulisan ieu dumasar kana Dynamics AX 2012 R3. Éta tiasa valid atanapi henteu pikeun vérsi anu sanés. (Apdet: Abdi tiasa mastikeun yén inpormasi dina tulisan ieu ogé valid pikeun Dynamics 365 for Operations)
Tulisan ieu ngan saukur minangka tinjauan ringkes sareng conto ringkesan. Upami anjeun anyar kana kerangka SysOperation, kuring nyarankeun pisan anjeun maca buku bodas Microsoft ngeunaan éta ogé. Inpormasi di dieu tiasa mangpaat upami anjeun ngan ukur peryogi tinjauan ringkes ngeunaan kelas anu béda-béda anu kalibet dina ngembangkeun operasi nganggo kerangka ieu.
Aya variasi, tapi nalika kuring nganggo kerangka kerja kuring biasana nerapkeun tilu kelas:
- Kontrak data (kedah manjangkeun SysOperationDataContractBase)
- Service (kedah manjangkeun SysOperationServiceBase)
- Pangontrol (kedah manjangkeun SysOperationServiceController)
Salian ti éta, kuring ogé tiasa nerapkeun kelas UIBuilder (kedah manjangkeun SysOperationUIBuilder), tapi éta ngan diperyogikeun upami dialog kusabab alesan anu tangtu kedah langkung maju tibatan anu dihasilkeun ku kerangka sacara otomatis.
Kontrak data
Kontrak data nyimpen anggota data anu diperyogikeun pikeun operasi anjeun. Éta tiasa dibandingkeun sareng makro CurrentList has anu ditetepkeun dina kerangka RunBase, tapi diimplementasikeun salaku kelas. Kontrak data kedah manjangkeun SysOperationDataContractBase, tapi bakal tiasa dianggo sanaos henteu. Kauntungan tina manjangkeun kelas super nyaéta nyayogikeun sababaraha inpormasi sési anu tiasa kapaké.
class MyDataContract extends SysOperationDataContractBase
{
ItemId itemId;
}
Dina conto ieu, itemId nyaéta anggota data. Anjeun kedah nerapkeun metode parm pikeun unggal anggota data sareng masihan tag ka éta ku DataMemberAttribute supados framework terang naon éta. Ieu ngamungkinkeun framework pikeun sacara otomatis ngawangun dialog pikeun anjeun.
public ItemId parmItemId(ItemId _itemId = itemId)
{
;
itemId = _itemId;
return itemId;
}
Layanan
Kelas layanan nyaéta kelas anu ngandung logika bisnis anu saleresna. Éta henteu museur kana némbongkeun dialog, pamrosésan batch atanapi naon waé anu sapertos kitu - éta mangrupikeun tanggung jawab kelas controller. Ku misahkeun ieu, anjeun langkung condong ngarancang kode anjeun kalayan saé sareng ngadamel kode anu langkung tiasa dianggo deui.
Sapertos kelas kontrak data, kelas layanan henteu kedah ngawaris tina naon waé anu khusus, tapi kedah ngawaris tina kelas SysOperationServiceBase, sahenteuna upami anjeun ngarepkeun yén layanan éta bakal dijalankeun salaku padamelan batch, sabab kelas super nyayogikeun sababaraha inpormasi ngeunaan kontéks batch. Métode anu ngamimitian operasi (nyaéta ngajalankeun logika bisnis) kedah nyandak objék kelas kontrak data anjeun salaku input sareng kedah dihias ku [SysEntryPointAttribute]. Salaku conto:
{
}
Nganggo metode anu disebut run:
public void run(MyDataContract _dataContract)
{
// run business logic here
}
Pangontrol
Kelas controller ngatur palaksanaan sareng pamrosésan batch operasi anjeun. Éta ogé mastikeun yén kode dieksekusi dina CIL pikeun kinerja maksimal. Kelas controller biasana ngawaris tina kelas SysOperationServiceController, sanaos aya pilihan sanés ogé.
{
}
Konstruktor kelas super nyandak nami kelas, nami metode sareng (opsional) modeu palaksanaan salaku parameter. Nami kelas sareng metode kedah janten nami kelas layanan anjeun sareng metode anu kedah dijalankeun dina éta. Janten, anjeun tiasa nerapkeun metode konstruksi controller anjeun sapertos kieu:
{
;
return new MyController(classStr(MyService),
methodStr(MyService, run));
}
Teras metode utama kelas MyController tiasa saderhana sapertos
{
;
MyController::construct().startOperation();
}
Sareng anjeun parantos réngsé. Anu di luhur jelas mangrupikeun conto anu saderhana pisan sareng kerangka kerja ieu ngandung seueur pilihan sareng kamungkinan anu sanés, tapi ieu janten gambaran umum gancang upami anjeun peryogi perbaikan nalika anjeun teu acan nganggo kerangka kerja ieu salami sababaraha waktos.
Bacaan salajengna
Upami anjeun resep kana tulisan ieu, anjeun ogé tiasa resep saran ieu:
- Ngidentipikasi Kelas Dokumén sareng Paménta pikeun Layanan AIF dina Dynamics AX 2012
- Hapus Badan Hukum (Akun Perusahaan) dina Dynamics AX 2012
- Ngarobih Real kana String sareng Sadaya Desimal dina Dynamics AX 2012
