Isibali sekhodi sehashi Dynamics AX 2012 SysOperation Framework Uhlolojikelele Olusheshayo
Kushicilelwe: Februwari 15, 2025 22:41:21 UTC
Igcine ukubuyekezwa: Januwari 12, 2026 08:40:29 UTC
Lesi sihloko sinikeza umbono omfushane (noma ishidi lokukhohlisa) mayelana nendlela yokusebenzisa amakilasi okucubungula kanye nemisebenzi yeqembu kuhlaka lwe-SysOperation ku-Dynamics AX 2012 kanye ne-Dynamics 365 ye-Operations.
Dynamics AX 2012 SysOperation Framework Quick Overview
Ulwazi olukulesi sihloko lusekelwe ku-Dynamics AX 2012 R3. Lungase lusebenze noma lungasebenzeli ezinye izinguqulo. (Isibuyekezo: Ngingaqinisekisa ukuthi ulwazi olukulesi sihloko luphinde lusebenzele i-Dynamics 365 ye-Operations)
Lokhu okuthunyelwe kumane nje kuhloselwe ukubuka konke okusheshayo kanye neshidi lokukhohlisa. Uma umusha kuhlaka lwe-SysOperation, ngiphakamisa kakhulu ukuthi ufunde iphepha elimhlophe le-Microsoft ngale ndaba futhi. Ulwazi lapha lungaba usizo uma udinga nje ulwazi olufushane ngezigaba ezahlukene ezihilelekile ekuthuthukiseni imisebenzi ngaloluhlaka.
Kunezinhlobo ezahlukene, kodwa uma ngisebenzisa uhlaka ngivame ukusebenzisa amakilasi amathathu:
- Inkontileka yedatha (kufanele yandise i-SysOperationDataContractBase)
- Isevisi (kufanele inwebe i-SysOperationServiceBase)
- Isilawuli (kumele sandise i-SysOperationServiceController)
Ngaphezu kwalokho, ngingase ngisebenzise nekilasi le-UIBuilder (kumele ngilandise i-SysOperationUIBuilder), kodwa lokho kuyadingeka kuphela uma ingxoxo ngesizathu esithile kufanele ibe ngcono kakhulu kunalokho uhlaka olukukhiqizayo ngokuzenzakalelayo.
Inkontileka yedatha
Inkontileka yedatha igcina amalungu edatha adingekayo ekusebenzeni kwakho. Ingafaniswa ne-CurrentList macro ejwayelekile echazwe kuhlaka lwe-RunBase, kodwa isetshenziswe njengeklasi esikhundleni salokho. Inkontileka yedatha kufanele yandise i-SysOperationDataContractBase, kodwa izosebenza noma ingasebenzi. Inzuzo yokwandisa i-super class ukuthi inikeza ulwazi oluthile lweseshini olungaba usizo.
class MyDataContract extends SysOperationDataContractBase
{
ItemId itemId;
}
Kulesi sibonelo, i-itemId iyilungu ledatha. Udinga ukusebenzisa indlela ye-parm yelungu ngalinye ledatha bese uyimaka nge-DataMemberAttribute ukuze uhlaka lukwazi ukuthi luyini. Lokhu kwenza uhlaka lukwazi ukwakha ngokuzenzakalelayo ingxoxo yakho.
public ItemId parmItemId(ItemId _itemId = itemId)
{
;
itemId = _itemId;
return itemId;
}
Isevisi
Ikilasi lenkonzo yikilasi eliqukethe i-logic yangempela yebhizinisi. Alinandaba nokubonisa izingxoxo, ukucutshungulwa kwe-batch noma yini enjalo - lowo ngumsebenzi wekilasi lomlawuli. Ngokuhlukanisa lokhu, kungenzeka kakhulu ukuthi uklame ikhodi yakho kahle futhi wenze ikhodi engasetshenziswa kabusha.
Njengesigaba senkontileka yedatha, isigaba sesevisi akudingeki sizuze kunoma yini ethile, kodwa kufanele sizuze esigabeni se-SysOperationServiceBase, okungenani uma ulindele ukuthi isevisi izoqhutshwa njengomsebenzi we-batch, njengoba isigaba esikhulu sinikeza ulwazi oluthile mayelana nomongo we-batch. Indlela eqala ukusebenza (okungukuthi isebenzisa i-logic yebhizinisi) kumele ithathe into yesigaba sakho senkontileka yedatha njengokufaka futhi kufanele ihlotshiswe nge-[SysEntryPointAttribute]. Isibonelo:
{
}
Ngendlela ebizwa ngokuthi i-run:
public void run(MyDataContract _dataContract)
{
// run business logic here
}
Isilawuli
Ikilasi lomlawuli liphatha ukusebenza kanye nokucutshungulwa kweqoqo lomsebenzi wakho. Liphinde liqinisekise ukuthi ikhodi iyasebenza ku-CIL ukuze isebenze kahle kakhulu. Ikilasi lomlawuli livame ukuzuza njengefa ikilasi le-SysOperationServiceController, yize kunezinye izinketho futhi.
{
}
Umakhi we-super class uthatha igama leklasi, igama lendlela kanye (ngokuzithandela) imodi yokwenza njengemingcele. Amagama eklasi kanye nendlela kufanele abe yigama leklasi yakho yesevisi kanye nendlela okufanele isebenze kuyo. Ngakho-ke, ungasebenzisa indlela yokwakha yomlawuli wakho kanje:
{
;
return new MyController(classStr(MyService),
methodStr(MyService, run));
}
Ngemuva kwalokho indlela eyinhloko yekilasi le-MyController ingaba lula njengokuthi
{
;
MyController::construct().startOperation();
}
Futhi usuqedile. Lokhu okungenhla ngokusobala kuyisibonelo esilula kakhulu futhi uhlaka luqukethe ezinye izinketho eziningi kanye namathuba, kodwa lokhu kusebenza njengesifinyezo esisheshayo uma udinga ukulungiswa uma ungakaze usebenzise uhlaka isikhathi eside.
Ukufunda Okuqhubekayo
Uma ukujabulele lokhu okuthunyelwe, ungaphinda uthande lezi ziphakamiso:
- Ukusebenzisa Umbuzo Ekilasini Lenkontileka Yedatha ye-SysOperation ku-Dynamics AX 2012
- Guqula i-Real to String ngawo wonke ama-Decimals ku-Dynamics AX 2012
- Iphutha "Asikho isigaba semethadatha esichazwe entweni yenkontileka yedatha" ku-Dynamics AX 2012
