Miklix

Օգտագործումը հարցումը SysOperation Data Contract Class in Dynamics AX 2012

Հրապարակվել է՝ 16 փետրվարի, 2025 թ., 01:25:37 UTC

Այս հոդվածը մանրամասն տեղեկություններ է հայտնում այն մասին, թե ինչպես ավելացնել օգտագործողի կողմից ձեւակերպվող եւ ֆիլտրվող հարցումը Dynamics AX 2012-ում SysOperation տվյալների պայմանագրային դասին (եւ Dynamics 365-ը՝ Operations-ի համար)


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

Using a Query in a SysOperation Data Contract Class in Dynamics AX 2012

Այս պոստում տեղադրված տեղեկատվությունը հիմնված է Dynamics AX 2012 R3-ի վրա: Այն կարող է կամ չի կարող վավերական լինել այլ տարբերակների համար։ (Թարմացում. կարող եմ հաստատել, որ սա աշխատում է նաեւ Dynamics 365-ի վրա՝ Operations-ի համար)

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

Նախ՝ տվյալների պայմանագրային դասում հարցումը կպահպանվի լարի մեջ: Նրա parm մեթոդը պետք է զարդարված է AifQueryTypeAttribute ատրիբուտով, ինչպես եւ այսպես (այս օրինակում ես օգտագործել եմ SalesUpdate հարցումը, բայց դուք կարող եք փոխարինել սա ցանկացած AOT հարցումով).

[
    DataMemberAttribute,
    AifQueryTypeAttribute('_packedQuery', queryStr(SalesUpdate))
]
public str parmPackedQuery(str _packedQuery = packedQuery)
{
    ;

    packedQuery = _packedQuery;
    return packedQuery;
}

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

public Query getQuery()
{
    ;

    return new Query(SysOperationHelper::base64Decode(packedQuery));
}

public void setQuery(Query _query)
{
    ;

    packedQuery = SysOperationHelper::base64Encode(_query.pack());
}

Եթե դուք պետք է սկզբնականացնել հարցումը (օրինակ, ավելացնել ranges), դուք պետք է իրականացնել initQuery մեթոդը.

public void initQuery()
{
    Query queryLocal = this.getQuery();
    ;

    // add ranges, etc...

    this.setQuery(queryLocal);
}

Դուք պետք է անպայման այս մեթոդը զանգահարեք վերահսկիչ դասից:

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

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

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

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