Miklix

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.


Leli khasi lihunyushwe ngomshini lisuka esiNgisini ukuze lenze lifinyeleleke kubantu abaningi ngangokunokwenzeka. Ngeshwa, ukuhumusha ngomshini akukabi ubuchwepheshe obuphelele, ngakho-ke amaphutha angenzeka. Uma uthanda, ungabuka inguqulo yokuqala yesiNgisi lapha:

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.

[DataContractAttribute]
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.

[DataMemberAttribute]
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:

class MyService extends SysOperationServiceBase
{
}

Ngendlela ebizwa ngokuthi i-run:

[SysEntryPointAttribute]
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.

class MyController extends SysOperationServiceController
{
}

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:

public static MyController construct()
{
    ;

    return new MyController(classStr(MyService),
    methodStr(MyService, run));
}

Ngemuva kwalokho indlela eyinhloko yekilasi le-MyController ingaba lula njengokuthi

public static void main(Args _args)
{
    ;

    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:


Yabelana ku-BlueskyYabelana ku-FacebookYabelana ku-LinkedInYabelana ku-TumblrYabelana ku-XYabelana ku-LinkedInPhina ku-Pinterest

Mikkel Christensen

Mayelana Nombhali

Mikkel Christensen
U-Mikkel ungumdali nomnikazi we-miklix.com. Unesipiliyoni seminyaka engaphezu kwengu-20 njengochwepheshe bezinhlelo zekhompyutha/unjiniyela wesoftware futhi njengamanje uqashwe ngokugcwele enkampanini enkulu ye-IT yaseYurophu. Lapho engabhali, uchitha isikhathi sakhe sokuphumula ezintweni eziningi azithandayo, azilibazisa, nemisebenzi, okungenzeka ngokwezinga elithile ibonakale ezihlokweni ezihlukahlukene ezitholakala kule webhusayithi.