Miklix

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.


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 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.

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

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

class MyService extends SysOperationServiceBase
{
}

ngendlela ebizwa ngokuthi i-run:

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

class MyController extends SysOperationServiceController
{
}

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:

public static MyController construct()
{
    ;

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

Khona-ke indlela eyinhloko yekilasi le-MyController ingaba lula njenge

public static void main(Args _args)
{
    ;

    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.

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

Mikkel Bang Christensen

Mayelana Nombhali

Mikkel Bang 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.