Օգտագործումը հարցումը SysOperation Data Contract Class in Dynamics AX 2012
Հրապարակվել է՝ 16 փետրվարի, 2025 թ., 01:25:37 UTC
Վերջին թարմացումը՝ 12 հունվարի, 2026 թ., 08:47:35 UTC
Այս հոդվածը մանրամասնորեն ներկայացնում է, թե ինչպես Dynamics AX 2012-ում (և Dynamics 365 for Operations-ում) SysOperation տվյալների պայմանագրի դասին ավելացնել օգտատիրոջ կողմից կարգավորվող և ֆիլտրվող հարցում։
Using a Query in a SysOperation Data Contract Class in Dynamics AX 2012
Այս գրառման մեջ տեղեկատվությունը հիմնված է Dynamics AX 2012 R3-ի վրա: Այն կարող է վավեր լինել կամ չլինել այլ տարբերակների համար: (Թարմացում. Ես կարող եմ հաստատել, որ սա նաև աշխատում է Dynamics 365 for Operations-ի վրա):
Ես միշտ մոռանում եմ SysOperation framework-ում հարցումը նշելու և նախնականացնելու մանրամասները։ Կարծում եմ, որ իմ կողմից կատարվող խմբաքանակային աշխատանքների մեծ մասը հիմնված չէ օգտատիրոջ կողմից կարգավորվող հարցումների վրա, բայց ժամանակ առ ժամանակ ես ստիպված եմ լինում նման խմբաքանակային աշխատանք կատարել, ուստի այս գրառումը նաև իմ սեփական հղման համար է։
Նախ, տվյալների պայմանագրերի դասում հարցումը կպահվի տողի մեջ փաթեթավորված։ Դրա parm մեթոդը պետք է զարդարված լինի AifQueryTypeAttribute ատրիբուտի հետ, այսպես (այս օրինակում ես օգտագործել եմ SalesUpdate հարցումը, բայց դուք կարող եք այն փոխարինել ցանկացած AOT հարցումով):
DataMemberAttribute,
AifQueryTypeAttribute('_packedQuery', queryStr(SalesUpdate))
]
public str parmPackedQuery(str _packedQuery = packedQuery)
{
;
packedQuery = _packedQuery;
return packedQuery;
}
Եթե ցանկանում եք, որ հարցումը որոշվի վերահսկիչ դասի կողմից, կարող եք նաև օգտագործել դատարկ տող։ Այդ դեպքում դուք նաև պետք է իրականացնեք մի քանի օգնական մեթոդներ (որոնք, հավանաբար, պետք է իրականացնեք ձեր հարմարության համար, երբ անհրաժեշտ լինի մուտք գործել հարցմանը):
{
;
return new Query(SysOperationHelper::base64Decode(packedQuery));
}
public void setQuery(Query _query)
{
;
packedQuery = SysOperationHelper::base64Encode(_query.pack());
}
Եթե անհրաժեշտ է նախնականացնել հարցումը (օրինակ՝ ավելացնել միջակայքեր), պետք է իրականացնեք initQuery մեթոդը՝
{
Query queryLocal = this.getQuery();
;
// add ranges, etc...
this.setQuery(queryLocal);
}
Դուք պետք է համոզվեք, որ այս մեթոդը կանչում եք controller դասից։
Լրացուցիչ ընթերցանություն
Եթե ձեզ դուր եկավ այս գրառումը, ձեզ կարող են նաև դուր գալ այս առաջարկները.
- Ջնջել իրավաբանական անձը (ընկերության հաշիվները) Dynamics AX 2012-ում
- Փաստաթղթերի դասի և հարցումների նույնականացում AIF ծառայության համար Dynamics AX 2012-ում
- Տվյալների () և buf2Buf () միջև տարբերությունը Dynamics AX 2012-ում
