„Dynamics AX 2012 SysOperation Framework“ greita apžvalga
Paskelbta: 2025 m. vasario 15 d. 22:35:26 UTC
Paskutinį kartą atnaujinta: 2026 m. sausio 12 d. 08:38:54 UTC
Šiame straipsnyje pateikiama trumpa apžvalga (arba atmintinė), kaip įdiegti apdorojimo klases ir paketines užduotis „SysOperation“ sistemoje „Dynamics AX 2012“ ir „Dynamics 365 for Operations“.
Dynamics AX 2012 SysOperation Framework Quick Overview
Šiame įraše pateikta informacija pagrįsta „Dynamics AX 2012 R3“. Ji gali tikti kitoms versijoms, o gali ir netikti. (Atnaujinimas: galiu patvirtinti, kad šiame straipsnyje pateikta informacija taip pat tinka „Dynamics 365 for Operations“)
Šis įrašas skirtas tik kaip trumpa apžvalga ir atmintinė. Jei esate naujokas „SysOperation“ sistemoje, primygtinai siūlau perskaityti ir „Microsoft“ informacinį dokumentą šia tema. Čia pateikta informacija gali būti naudinga, jei jums tiesiog reikia trumpai susipažinti su skirtingomis klasėmis, susijusiomis su operacijų kūrimu naudojant šią sistemą.
Yra variantų, bet kai naudoju sistemą, paprastai įgyvendinu tris klases:
- Duomenų sutartis (turėtų pratęsti „SysOperationDataContractBase“)
- Paslauga (turėtų išplėsti „SysOperationServiceBase“)
- Valdiklis (turi būti išplėstas „SysOperationServiceController“)
Be to, galiu įdiegti ir „UIBuilder“ klasę (turi išplėsti „SysOperationUIBuilder“), bet tai būtina tik tuo atveju, jei dėl kokių nors priežasčių dialogas turi būti sudėtingesnis nei tas, kurį sistema generuoja automatiškai.
Duomenų sutartis
Duomenų sutartyje saugomi jūsų operacijai reikalingi duomenų nariai. Ją galima palyginti su tipine „CurrentList“ makrokomanda, apibrėžta „RunBase“ sistemoje, bet vietoj to įdiegta kaip klasė. Duomenų sutartis turėtų išplėsti „SysOperationDataContractBase“, bet veiks net ir be jos. Superklasės išplėtimo privalumas yra tas, kad ji pateikia tam tikrą seanso informaciją, kuri gali būti naudinga.
class MyDataContract extends SysOperationDataContractBase
{
ItemId itemId;
}
Šiame pavyzdyje „itemId“ yra duomenų narys. Kiekvienam duomenų nariui turite įdiegti „parm“ metodą ir pažymėti jį „DataMemberAttribute“, kad sistema žinotų, kas tai yra. Tai leidžia sistemai automatiškai sukurti dialogą už jus.
public ItemId parmItemId(ItemId _itemId = itemId)
{
;
itemId = _itemId;
return itemId;
}
Paslauga
Aptarnavimo klasė yra klasė, kurioje yra tikroji verslo logika. Ji nesusijusi su dialogų rodymu, paketiniu apdorojimu ar panašiais veiksmais – tai yra valdiklio klasės atsakomybė. Atskyrus šią klasę, didesnė tikimybė, kad gerai suprojektuosite savo kodą ir sukursite daugiau pakartotinai naudojamo kodo.
Kaip ir duomenų sutarties klasė, paslaugos klasė neprivalo paveldėti iš ko nors konkretaus, bet ji turėtų paveldėti iš „SysOperationServiceBase“ klasės, bent jau jei tikitės, kad paslauga bus vykdoma kaip paketinė užduotis, nes superklasė pateikia tam tikrą informaciją apie paketinės užduoties kontekstą. Metodas, kuris pradeda operaciją (t. y. vykdo verslo logiką), turi priimti jūsų duomenų sutarties klasės objektą kaip įvestį ir turėtų būti papuoštas [SysEntryPointAttribute]. Pavyzdžiui:
{
}
Su metodu, vadinamu run:
public void run(MyDataContract _dataContract)
{
// run business logic here
}
Valdiklis
Valdiklio klasė tvarko jūsų operacijos vykdymą ir paketinį apdorojimą. Ji taip pat užtikrina, kad kodas būtų vykdomas CIL kalba, siekiant maksimalaus našumo. Valdiklio klasė paprastai paveldi iš „SysOperationServiceController“ klasės, nors yra ir kitų variantų.
{
}
Superklasės konstruktorius kaip parametrus gauna klasės pavadinimą, metodo pavadinimą ir (nebūtina) vykdymo režimą. Klasės ir metodo pavadinimai turėtų būti jūsų aptarnavimo klasės pavadinimas ir metodas, kuris turėtų būti joje vykdomas. Taigi, valdiklio konstrukto metodą galite įgyvendinti taip:
{
;
return new MyController(classStr(MyService),
methodStr(MyService, run));
}
Tuomet pagrindinis „MyController“ klasės metodas gali būti toks paprastas kaip
{
;
MyController::construct().startOperation();
}
Ir iš esmės viskas. Akivaizdu, kad aukščiau pateiktas pavyzdys yra labai paprastas, o sistemoje yra daugybė kitų parinkčių ir galimybių, tačiau tai yra trumpa apžvalga, jei prireiktų atnaujinti žinias, kai kurį laiką nenaudojote sistemos.
Papildoma literatūra
Jei jums patiko šis įrašas, jums taip pat gali patikti šie pasiūlymai:
- Eilučių formatavimas naudojant makrokomandą ir strFmt sistemoje „Dynamics AX 2012“.
- Ištrinkite juridinį subjektą (įmonės paskyras) „Dynamics AX 2012“.
- Dynamics AX 2012 AIF paslaugos dokumento klasės ir užklausos identifikavimas
