Dynamics AX 2012 ရှိ SysOperation Data Contract Class တွင် Query တစ်ခုကို အသုံးပြုခြင်း။
ထုတ်ဝေသည်- ၂၀၂၅၊ ဖေဖော်ဝါရီ ၁၆ UTC ၀၁:၂၇:၅၇
ဤဆောင်းပါးသည် Dynamics AX 2012 (နှင့် လည်ပတ်မှုများအတွက် Dynamics 365) ရှိ SysOperation ဒေတာ စာချုပ်အတန်းသို့ အသုံးပြုသူ-ပြင်ဆင်နိုင်သော စီစစ်နိုင်သော မေးခွန်းကို ထည့်သွင်းနည်း အသေးစိတ်ကို ဤဆောင်းပါးတွင် ဖော်ပြထားပါသည်။
Using a Query in a SysOperation Data Contract Class in Dynamics AX 2012
ဤပို့စ်ရှိ အချက်အလက်သည် Dynamics AX 2012 R3 ကို အခြေခံထားသည်။ ၎င်းသည် အခြားဗားရှင်းများအတွက် တရားဝင်နိုင်သည် သို့မဟုတ် မမှန်နိုင်ပါ။ (အပ်ဒိတ်- လုပ်ဆောင်ချက်များအတွက် Dynamics 365 တွင်လည်း အလုပ်လုပ်ကြောင်း ကျွန်ုပ်အတည်ပြုနိုင်ပါသည်)
SysOperation framework တွင် query တစ်ခုကို သတ်မှတ်ခြင်းနှင့် အစပြုခြင်းဆိုင်ရာ အသေးစိတ်အချက်အလက်များကို ကျွန်ုပ်အမြဲတမ်းမေ့နေပုံရသည်။ ကျွန်တော်လုပ်နေတဲ့ batch job အများစုဟာ user-configurable queries တွေပေါ်မှာ အခြေခံတာမဟုတ်ပေမယ့် ခဏခဏ အဲဒီလို batch အလုပ်တစ်ခုလုပ်ဖို့လိုပါတယ်၊ ဒါကြောင့် ဒီ post ဟာ ကျွန်တော့်ရဲ့ကိုယ်ပိုင်ကိုးကားချက်ဖြစ်ပါတယ်။
ပထမအချက်၊ ဒေတာစာချုပ်အတန်းတွင်၊ မေးခွန်းကို စာကြောင်းတစ်ခုတွင် ထည့်သွင်းသိမ်းဆည်းမည်ဖြစ်သည်။ ၎င်း၏ parm နည်းလမ်းကို AifQueryTypeAttribute attribute ဖြင့် အလှဆင်ထားရမည် (ဤဥပမာတွင် ကျွန်ုပ်သည် SalesUpdate query ကို အသုံးပြုထားပြီး၊ သို့သော် ၎င်းကို မည်သည့် 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());
}
သင်သည် query ကို စတင်ရန် လိုအပ်ပါက (ဥပမာ၊ အပိုင်းအခြားများ ထည့်ပါ)၊ သင်သည် initQuery နည်းလမ်းကို အကောင်အထည်ဖော်သင့်သည်-
{
Query queryLocal = this.getQuery();
;
// add ranges, etc...
this.setQuery(queryLocal);
}
သင်ဤနည်းလမ်းကို controller အတန်းမှခေါ်ရန်သေချာစေရန်လိုအပ်သည်။