Dynamics AX 2012 SysOperation Framework အမြန်ခြုံငုံသုံးသပ်ချက်
ထုတ်ဝေသည်- ၂၀၂၅၊ ဖေဖော်ဝါရီ ၁၅ UTC ၂၂:၄၁:၁၉
ဤဆောင်းပါးသည် Dynamics AX 2012 နှင့် Dynamics 2012 ရှိ SysOperation မူဘောင်တွင် စီမံဆောင်ရွက်နေသော အတန်းများနှင့် အစုလိုက်အလုပ်များကို အကောင်အထည်ဖော်ပုံနှင့်ပတ်သက်၍ အမြန်ခြုံငုံသုံးသပ်ချက် (သို့မဟုတ် ကောက်ချက်စာရွက်) ကို ပေးပါသည်။
Dynamics AX 2012 SysOperation Framework Quick Overview
ဤပို့စ်ရှိ အချက်အလက်သည် Dynamics AX 2012 R3 ကို အခြေခံထားသည်။ ၎င်းသည် အခြားဗားရှင်းများအတွက် တရားဝင်နိုင်သည် သို့မဟုတ် မမှန်နိုင်ပါ။ (အပ်ဒိတ်- ဤဆောင်းပါးပါ အချက်အလက်များသည် Dynamics 365 for Operations အတွက် တရားဝင်ကြောင်း ကျွန်ုပ် အတည်ပြုနိုင်ပါသည်)
ဤပို့စ်သည် လျင်မြန်သောခြုံငုံသုံးသပ်ချက်နှင့် လိမ်လည်မှုစာရွက်အဖြစ်သာ ရည်ရွယ်ပါသည်။ အကယ်၍ သင်သည် SysOperation framework နှင့် အသစ်ဖြစ်ပါက၊ ဘာသာရပ်ဆိုင်ရာ Microsoft ၏ စက္ကူဖြူစာတမ်းကိုလည်း ဖတ်ရန် ကျွန်ုပ် အလေးအနက် အကြံပြုအပ်ပါသည်။ ဤမူဘောင်ဖြင့် လုပ်ဆောင်မှုများ ဖော်ဆောင်ရာတွင် ပါဝင်သော မတူညီသော အတန်းများကို လျင်မြန်စွာ ဖြတ်တောက်ရန် လိုအပ်ပါက ဤနေရာတွင် အချက်အလက်သည် အသုံးဝင်နိုင်ပါသည်။
ကွဲလွဲမှုတွေရှိပါတယ်၊ ဒါပေမယ့် framework ကိုအသုံးပြုတဲ့အခါ class သုံးခုကို ပုံမှန်အားဖြင့် အကောင်အထည်ဖော်ပါတယ်။
- ဒေတာစာချုပ် (SysOperationDataContractBase သက်တမ်းတိုးသင့်သည်)
- ဝန်ဆောင်မှု (SysOperationServiceBase တိုးချဲ့သင့်သည်)
- Controller (SysOperationServiceController ကို သက်တမ်းတိုး ရမည် )
ထို့အပြင်၊ ကျွန်ုပ်သည် UIBuilder အတန်းအစားကိုလည်း အကောင်အထည်ဖော်နိုင်သည် (SysOperationUIBuilder ကို သက်တမ်းတိုး ရမည် )၊ သို့သော် အကြောင်းတစ်ခုခုကြောင့် ဒိုင်ယာလော့ခ်သည် အလိုအလျောက် မူဘောင်ထုတ်ပေးသည်ထက် ပိုမိုအဆင့်မြင့်လာပါက ၎င်းသည် လိုအပ်ပါသည်။
ဒေတာစာချုပ်
ဒေတာစာချုပ်သည် သင့်လုပ်ငန်းဆောင်ရွက်မှုအတွက် လိုအပ်သော ဒေတာအဖွဲ့ဝင်များကို သိမ်းဆည်းထားသည်။ ၎င်းကို RunBase မူဘောင်တွင် သတ်မှတ်ထားသည့် ပုံမှန် CurrentList macro နှင့် နှိုင်းယှဉ်နိုင်သော်လည်း ၎င်းအစား အတန်းအစားအဖြစ် လုပ်ဆောင်ခဲ့သည်။ ဒေတာစာချုပ်သည် SysOperationDataContractBase ကို သက်တမ်းတိုးသင့်သည်၊ သို့သော် ထိုသို့မဟုတ်လျှင်ပင် အလုပ်ဖြစ်ပါမည်။ စူပါအတန်းကို တိုးချဲ့ခြင်း၏ အားသာချက်မှာ နေရာထိုင်ခင်းဆိုင်ရာ အချက်အလက်အချို့ကို ပေးဆောင်ရခြင်းဖြစ်ပါသည်။
class MyDataContract extends SysOperationDataContractBase
{
ItemId itemId;
}
ဤဥပမာတွင်၊ itemId သည် ဒေတာအဖွဲ့ဝင်ဖြစ်သည်။ ဒေတာအဖွဲ့ဝင်တစ်ဦးစီအတွက် parm method တစ်ခုကို အကောင်အထည်ဖော်ပြီး ၎င်းကို DataMemberAttribute ဖြင့် tag လုပ်ထားရန် လိုအပ်ပြီး ၎င်းသည် ဘာလဲဆိုသည်ကို မူဘောင်က သိစေပါသည်။ ၎င်းသည် သင့်အတွက် ဒိုင်ယာလော့ခ်ကို အလိုအလျောက်တည်ဆောက်ရန် ဘောင်ကို ပံ့ပိုးပေးသည်။
public ItemId parmItemId(ItemId _itemId = itemId)
{
;
itemId = _itemId;
return itemId;
}
ဝန်ဆောင်မှု
ဝန်ဆောင်မှုအတန်းသည် အမှန်တကယ် လုပ်ငန်းဆိုင်ရာ ယုတ္တိဗေဒပါ၀င်သော အတန်းဖြစ်သည်။ ဒိုင်ယာလော့ခ်များ၊ အစုလိုက်လုပ်ဆောင်ခြင်း သို့မဟုတ် အမျိုးအစားတစ်ခုခုကို ပြသခြင်းအတွက် ၎င်းသည် ထိန်းချုပ်သူအတန်းအစား၏ တာဝန်ဖြစ်သည်။ ၎င်းကို ပိုင်းခြားခြင်းဖြင့်၊ သင်သည် သင့်ကုဒ်ကို ကောင်းစွာ ဒီဇိုင်းထုတ်ကာ ပိုမိုသုံးနိုင်သော ကုဒ်ကို ပြုလုပ်နိုင်ခြေ ပိုများပါသည်။
ဒေတာကန်ထရိုက်အတန်းကဲ့သို့ပင်၊ ဝန်ဆောင်မှုအတန်းသည် အထူးသဖြင့် မည်သည့်အရာမှ အမွေဆက်ခံရန် မလိုအပ်သော်လည်း၊ အနည်းဆုံး သင်သည် batch အလုပ်အဖြစ် ဝန်ဆောင်မှုကို လုပ်ဆောင်နိုင်မည်ဟု မျှော်လင့်ထားလျှင် အနည်းဆုံး သင်က SysOperationServiceBase အတန်းမှ အမွေဆက်ခံသင့်ပါသည်။ လည်ပတ်မှုကို စတင်သည့်နည်းလမ်း (ဆိုလိုသည်မှာ လုပ်ငန်းဆိုင်ရာ ယုတ္တိဗေဒကို လုပ်ဆောင်သည်) သည် သင်၏ဒေတာစာချုပ်အတန်းအစား၏ အရာဝတ္တုတစ်ခုကို ထည့်သွင်းရမည်ဖြစ်ပြီး [SysEntryPointAttribute] ဖြင့် အလှဆင်သင့်ပါသည်။ ဥပမာအားဖြင့်:
{
}
run ဟုခေါ်သောနည်းလမ်းဖြင့်
public void run(MyDataContract _dataContract)
{
// run business logic here
}
ထိန်းချုပ်ကိရိယာ
Controller အတန်းသည် သင့်လုပ်ဆောင်ချက်၏ execution နှင့် batch processing ကို ကိုင်တွယ်သည်။ ၎င်းသည် အမြင့်ဆုံးစွမ်းဆောင်ရည်အတွက် ကုဒ်ကို CIL တွင် လုပ်ဆောင်ကြောင်းကိုလည်း သေချာစေသည်။ အခြားရွေးချယ်စရာများပါရှိသော်လည်း SysOperationServiceController အတန်းမှ ပုံမှန်အားဖြင့် ကွန်ထရိုလာအတန်းသည် အမွေဆက်ခံပါသည်။
{
}
super class ၏ constructor သည် class name၊ method name နှင့် (optionally) execution mode ကို parameters အဖြစ်ယူသည်။ အတန်းနှင့်နည်းလမ်းအမည်များသည် သင့်ဝန်ဆောင်မှုအတန်း၏အမည်နှင့် ၎င်းတွင်လုပ်ဆောင်သင့်သည့်နည်းလမ်းဖြစ်သင့်သည်။ ထို့ကြောင့်၊ သင်သည် သင်၏ controller ၏ တည်ဆောက်ပုံနည်းလမ်းကို ဤကဲ့သို့ အကောင်အထည်ဖော်နိုင်သည်-
{
;
return new MyController(classStr(MyService),
methodStr(MyService, run));
}
ထို့နောက် MyController class ၏ အဓိကနည်းလမ်းသည် ရိုးရှင်းပါသည်။
{
;
MyController::construct().startOperation();
}
အခြေခံအားဖြင့် ပြီးပါပြီ။ အထက်ဖော်ပြပါသည် အလွန်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်ပြီး framework တွင် အခြားသောရွေးချယ်စရာများနှင့် ဖြစ်နိုင်ခြေများစွာပါရှိသည်၊ သို့သော်သင်သည် framework ကိုအကြာကြီးအသုံးမပြုပါက brush up လိုအပ်ပါက အမြန်ခြုံငုံသုံးသပ်ချက်အဖြစ်ဆောင်ရွက်ပါသည်။