Miklix

Dynamics AX 2012 SysOperation Framework Արագ ակնարկ

Հրապարակվել է՝ 15 փետրվարի, 2025 թ., 22:37:32 UTC

Այս հոդվածը տրամադրում է արագ ակնարկ (կամ խաբեության թերթ) այն մասին, թե ինչպես իրականացնել վերամշակման դասեր և խմբաքանակային աշխատանքներ SysOperation շրջանակում Dynamics AX 2012 և Dynamics 365 for Operations-ում:


Այս էջը ավտոմատ կերպով թարգմանվել է անգլերենից՝ հնարավորինս շատ մարդկանց համար հասանելի դարձնելու համար: Ցավոք, մեքենայական թարգմանությունը դեռ կատարելագործված տեխնոլոգիա չէ, ուստի կարող են սխալներ առաջանալ: Եթե ​​նախընտրում եք, կարող եք դիտել բնօրինակ անգլերեն տարբերակը այստեղ.

Dynamics AX 2012 SysOperation Framework Quick Overview

Այս գրառման տեղեկատվությունը հիմնված է Dynamics AX 2012 R3-ի վրա: Այն կարող է վավեր լինել կամ չգործել այլ տարբերակների համար: (Թարմացում. Ես կարող եմ հաստատել, որ այս հոդվածի տեղեկատվությունը վավեր է նաև Dynamics 365 for Operations-ի համար)


Այս գրառումը պարզապես նախատեսված է որպես արագ ակնարկ և խաբեության թերթիկ: Եթե ​​դուք նոր եք SysOperation շրջանակում, ես խստորեն առաջարկում եմ, որ դուք նույնպես կարդաք Microsoft-ի սպիտակ թուղթը այդ թեմայով: Այստեղի տեղեկատվությունը կարող է օգտակար լինել, եթե ձեզ պարզապես անհրաժեշտ է արագ ծանոթանալ տարբեր դասերի վրա, որոնք ներգրավված են այս շրջանակով գործողություններ մշակելու մեջ:

Կան տատանումներ, բայց երբ ես օգտագործում եմ շրջանակը, ես սովորաբար իրականացնում եմ երեք դաս.

  • Տվյալների պայմանագիրը (պետք է երկարաձգի SysOperationDataContractBase)
  • Ծառայություն (պետք է ընդլայնի SysOperationServiceBase)
  • Կարգավորիչ ( պետք է ընդլայնի SysOperationServiceController)

Բացի այդ, ես կարող եմ նաև իրականացնել UIBuilder դաս ( պետք է ընդլայնի SysOperationUIBuilder), բայց դա անհրաժեշտ է միայն այն դեպքում, եթե ինչ-ինչ պատճառներով երկխոսությունը պետք է ավելի առաջադեմ լինի, քան այն, ինչ ֆրեյմուքը ստեղծում է ավտոմատ կերպով:


Տվյալների պայմանագիր

Տվյալների պայմանագիրը պարունակում է ձեր գործունեության համար անհրաժեշտ տվյալների անդամները: Այն կարելի է համեմատել տիպիկ CurrentList մակրոյի հետ, որը սահմանված է RunBase շրջանակում, բայց դրա փոխարեն որպես դաս է իրականացվել: Տվյալների պայմանագիրը պետք է երկարաձգի SysOperationDataContractBase-ը, բայց կաշխատի, նույնիսկ եթե այն չտարածվի: Սուպեր դասի ընդլայնման առավելությունն այն է, որ այն տրամադրում է նիստի որոշ տեղեկություններ, որոնք կարող են հարմար լինել:

[DataContractAttribute]
class MyDataContract extends SysOperationDataContractBase
{
    ItemId itemId;
}

Այս օրինակում itemId-ը տվյալների անդամ է: Դուք պետք է ներդրեք parm մեթոդ յուրաքանչյուր տվյալների անդամի համար և նշեք այն DataMemberAttribute-ով, որպեսզի շրջանակն իմանա, թե ինչ է դա: Սա հնարավորություն է տալիս շրջանակին ավտոմատ կերպով ստեղծել երկխոսություն ձեզ համար:

[DataMemberAttribute]
public ItemId parmItemId(ItemId _itemId = itemId)
{
    ;

    itemId = _itemId;
    return itemId;
}


Ծառայություն

Ծառայությունների դասը այն դասն է, որը պարունակում է փաստացի բիզնես տրամաբանություն: Այն կապված չէ երկխոսությունների ցուցադրման, խմբաքանակի մշակման կամ նման այլ բաների հետ, դա վերահսկիչի դասի պարտականությունն է: Սա առանձնացնելով, դուք ավելի հավանական է, որ ձեր կոդը լավ նախագծեք և ավելի շատ օգտագործելի կոդ կդարձնեք:

Ինչպես տվյալների պայմանագրային դասը, ծառայության դասը կարիք չունի որևէ կոնկրետ բանից ժառանգելու, բայց այն պետք է ժառանգի SysOperationServiceBase դասից, գոնե եթե ակնկալում եք, որ ծառայությունը կաշխատի որպես խմբաքանակ, քանի որ սուպեր դասը որոշակի տեղեկատվություն է տրամադրում խմբաքանակի համատեքստի մասին: Գործողությունը սկսող մեթոդը (այսինքն՝ վարում է բիզնեսի տրամաբանությունը) պետք է մուտքագրի ձեր տվյալների պայմանագրի դասի օբյեկտը և պետք է զարդարված լինի [SysEntryPointAttribute]-ով: Օրինակ.

class MyService extends SysOperationServiceBase
{
}

վազում կոչվող մեթոդով.

[SysEntryPointAttribute]
public void run(MyDataContract _dataContract)
{
    // run business logic here
}


Վերահսկիչ

Կարգավորիչների դասը կարգավորում է ձեր գործողության կատարումը և խմբաքանակի մշակումը: Այն նաև ապահովում է, որ կոդը գործարկվի CIL-ում՝ առավելագույն կատարման համար: Կարգավորիչների դասը սովորաբար ժառանգում է SysOperationServiceController դասից, թեև կան նաև այլ տարբերակներ:

class MyController extends SysOperationServiceController
{
}

Սուպեր դասի կոնստրուկտորը որպես պարամետր վերցնում է դասի անունը, մեթոդի անվանումը և (ըստ ցանկության) կատարման ռեժիմը։ Դասի և մեթոդի անունները պետք է լինեն ձեր ծառայության դասի անվանումը և այն մեթոդը, որը պետք է գործարկվի դրա վրա: Այսպիսով, դուք կարող եք իրականացնել ձեր վերահսկիչի կառուցման մեթոդը հետևյալ կերպ.

public static MyController construct()
{
    ;

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

Այնուհետև MyController դասի հիմնական մեթոդը կարող է լինել այնքան պարզ, որքան

public static void main(Args _args)
{
    ;

    MyController::construct().startOperation();
}

Եվ դուք հիմնականում ավարտել եք: Վերոնշյալն ակնհայտորեն շատ պարզ օրինակ է, և շրջանակը պարունակում է բազմաթիվ այլ տարբերակներ և հնարավորություններ, բայց սա ծառայում է որպես արագ ակնարկ, եթե ձեզ հարկավոր է խոզանակ վերացնել, երբ որոշ ժամանակ չեք օգտագործել շրջանակը:

Կիսվեք Bluesky-ումԿիսվել Facebook-ումԿիսվեք LinkedIn-ումԿիսվեք Tumblr-ումԿիսվեք X-ումԿիսվեք LinkedIn-ումԿպցնել Պինթրեսթում

Միկել Բանգ Քրիստենսեն

Հեղինակի մասին

Միկել Բանգ Քրիստենսեն
Mikkel-ը miklix.com-ի ստեղծողն ու սեփականատերն է: Նա ունի ավելի քան 20 տարվա աշխատանքային փորձ՝ որպես պրոֆեսիոնալ համակարգչային ծրագրավորող/ծրագրային ապահովման մշակող և ներկայումս լրիվ դրույքով աշխատում է եվրոպական խոշոր ՏՏ կորպորացիայի մեջ: Երբ նա բլոգ չի գրում, նա իր ազատ ժամանակն անցկացնում է հետաքրքրությունների, հոբբիների և գործունեության լայն շրջանակի վրա, որոնք որոշ չափով կարող են արտացոլվել այս կայքում ընդգրկված թեմաների բազմազանության մեջ: