Isibali sekhodi sehashi Dynamics AX 2012 SysOperation Framework Uhlolojikelele Olusheshayo
Kushicilelwe: 15 Pébruari 2025 jam 22.41.21 UTC
Lesi sihloko sinikeza ukubuka konke okusheshayo (noma ishidi lokukopela) lokuthi ungaqalisa kanjani amakilasi okucubungula nemisebenzi yeqoqo kuhlaka lwe-SysOperation ku-Dynamics AX 2012 kanye ne-Dynamics 365 Yokusebenza.
Dynamics AX 2012 SysOperation Framework Quick Overview
Ulwazi kulokhu okuthunyelwe lusekelwe ku-Dynamics AX 2012 R3. Ingase ivumeleke noma ingasebenzi kwezinye izinguqulo. (Isibuyekezo: Ngingaqinisekisa ukuthi ulwazi olukulesi sihloko luvumelekile futhi ku-Dynamics 365 Yokusebenza)
Lokhu okuthunyelwe kuvele kuhloselwe ukubuka konke okusheshayo kanye neshidi lokukopela. Uma umusha kuhlaka lwe-SysOperation, ngiphakamisa kakhulu ukuthi ufunde nephepha elimhlophe le-Microsoft ngale ndaba. Ulwazi olulapha lungase lube wusizo uma udinga nje ukubhulasha ngokushesha kumakilasi ahlukene ahilelekile ekuthuthukiseni imisebenzi ngalolu hlaka.
Kukhona ukuhluka, kepha uma ngisebenzisa uhlaka ngivame ukusebenzisa amakilasi amathathu:
- Inkontileka yedatha (kufanele inwebe i-SysOperationDataContractBase)
- Isevisi (kufanele inwebe i-SysOperationServiceBase)
- Isilawuli ( kufanele sinwebe i-SysOperationServiceController)
Ukwengeza, ngingase futhi ngisebenzise isigaba se-UIBuilder ( kufanele nginwebe i-SysOperationUIBuilder), kodwa lokho kudingekile kuphela uma ingxoxo ngesizathu esithile kufanele ithuthuke kakhulu kunalokho uhlaka oluzikhiqiza ngokuzenzakalelayo.
Inkontileka yedatha
Inkontileka yedatha iphethe amalungu edatha adingekayo ekusebenzeni kwakho. Ingafaniswa ne-CurentList macro ejwayelekile echazwe kuhlaka lwe-RunBase, kodwa isetshenziswe njengeklasi esikhundleni salokho. Inkontileka yedatha kufanele inwebe i-SysOperationDataContractBase, kodwa izosebenza ngisho noma ingasebenzi. Inzuzo yokwelula i-super class ukuthi inikeza ulwazi oluthile lweseshini olungase lube usizo.
class MyDataContract extends SysOperationDataContractBase
{
ItemId itemId;
}
Kulesi sibonelo, intoId iyilungu ledatha. Udinga ukusebenzisa indlela ye-parm yelungu ngalinye ledatha futhi uyimaka nge-DataMemberAttribute ukuze uhlaka lwazi ukuthi luyini. Lokhu kuvumela uhlaka ukuthi lukwakhele ngokuzenzakalela ibhokisi.
public ItemId parmItemId(ItemId _itemId = itemId)
{
;
itemId = _itemId;
return itemId;
}
Isevisi
Isigaba sesevisi yikilasi eliqukethe umqondo webhizinisi langempela. Ayinandaba nokubonisa izingxoxo, ukucutshungulwa kwenqwaba nanoma yini yohlobo - lokho kungumsebenzi wesigaba somlawuli. Ngokuhlukanisa lokhu, maningi amathuba okuthi udizayine kahle ikhodi yakho futhi wenze ikhodi esebenziseka kabusha kakhudlwana.
Njengesigaba senkontileka yedatha, isigaba sesevisi asidingi ukuthola ifa kunoma yini ethile, kodwa kufanele sizuze ifa lesigaba se-SysOperationServiceBase, okungenani uma ulindele ukuthi insizakalo izoqhutshwa njengomsebenzi we-batch, njengoba i-super class inikeza ulwazi oluthile mayelana nengqikithi yeqoqo. Indlela eqala ukusebenza (okungukuthi eqhuba ingqondo yebhizinisi) kufanele ithathe into yekilasi lakho lenkontileka yedatha njengokufakwayo futhi kufanele ihlotshiswe nge-[SysEntryPointAttribute]. Ngokwesibonelo:
{
}
ngendlela ebizwa ngokuthi i-run:
public void run(MyDataContract _dataContract)
{
// run business logic here
}
Isilawuli
Isigaba sesilawuli siphatha ukwenziwa nokucutshungulwa kwenqwaba komsebenzi wakho. Iphinde iqinisekise ukuthi ikhodi isetshenziswa ku-CIL ukuze kusebenze okuphezulu. Isigaba sesilawuli ngokuvamile sizuza njengefa kusukela kusigaba se-SysOperationServiceController, nakuba zikhona ezinye izinketho futhi.
{
}
Umakhi we-super class uthatha igama lekilasi, igama lendlela kanye (ngokuzithandela) nemodi yokukhipha njengamapharamitha. Ikilasi kanye namagama ezindlela kufanele kube yigama lekilasi lakho lesevisi kanye nendlela okufanele isetshenziswe kulo. Ngakho-ke, ungasebenzisa indlela yokwakha yesilawuli sakho kanje:
{
;
return new MyController(classStr(MyService),
methodStr(MyService, run));
}
Khona-ke indlela eyinhloko yekilasi le-MyController ingaba lula njenge
{
;
MyController::construct().startOperation();
}
Futhi usuqedile. Okungenhla ngokusobala kuyisibonelo esilula kakhulu futhi uhlaka luqukethe inqwaba yezinye izinketho namathuba, kodwa lokhu kusebenza njengokubuka konke okusheshayo uma udinga ibhulashi lapho ungazange usebenzise uhlaka isikhathi eside.