SAP CAP တွင် Domain Modeling

နိဒါန္း

SAP CAP ရှိ Domain Model သည် အဖွဲ့အစည်းနှင့် ဆက်နွှယ်မှု မော်ဒယ်များ၏ သတ်မှတ်ချက်များတွင် ပြဿနာ ဒိုမိန်းတစ်ခု၏ တည်ငြိမ်ပြီး ဒေတာဆိုင်ရာ အသွင်အပြင်များကို ဖော်ပြသည့် မော်ဒယ်တစ်ခုဖြစ်သည်။ ဤဆောင်းပါးတွင် SAP CAP ရှိ Domain Modeling ကို အသေးစိတ်လေ့လာပါမည်။

Domain Modeling

ရိုးရိုးရှင်းရှင်းပြောရလျှင် SAP CAP ရှိ CDS သည် လုပ်ငန်းပြဿနာကို သော့များ၊ အကွက်များနှင့် မှတ်ချက်များကို သတ်မှတ်ပေးသည့်နည်းလမ်းဖြင့် ဒိုမိန်းမော်ဒယ်ကို ထုတ်လုပ်သည်။ ဒိုမိန်းမော်ဒယ်တစ်ခုထုတ်လုပ်ရန် ကုဒ်ကို CDS schema (db/schema.cds) ဖြင့် ရေးသားထားသည်။ ဤဒိုမိန်းမော်ဒယ်များကို ဝန်ဆောင်မှုအဓိပ္ပာယ်ဖွင့်ဆိုချက်များ၊ ခိုင်မြဲမှုပုံစံများ၊ ဒေတာဘေ့စ်များ သို့မဟုတ် အခြားဒိုမိန်းမော်ဒယ်အတွင်းတွင်ပင် ပြန်လည်အသုံးပြုနိုင်သည်။

နမူနာ ဥပမာ-

Namespace empInfo; '@sap/cds/common' မှ {Currency, managed} ကို အသုံးပြု; အဖွဲ့အစည်း ဝန်ထမ်းများ- စီမံခန့်ခွဲထားသည် {သော့ ID- ကိန်းပြည့်၊ firstName- ဘာသာပြန်ထားသော စာကြောင်း (111); LastName: ကွက်တိကွက်တိဖြစ်စေသော စာကြောင်း (1111); မန်နေဂျာ- မန်နေဂျာများထံသို့ အသင်းအဖွဲ့၊ Joining ရက်စွဲ- ကိန်းပြည့်၊ လစာ- ဒဿမ (၉၊၂); ငွေကြေး- ငွေကြေး၊ }

 

ဤနမူနာတွင် ကျွန်ုပ်တို့သည် ဝန်ထမ်းတစ်ဦး၏ အခြေခံအသေးစိတ်များပါ၀င်သည့် ဝန်ထမ်းတစ်ဦးကို ဖန်တီးထားသည့် schema.cds ဖိုင်တစ်ခုကို ဖန်တီးထားသည်။

ဤအစီအစဉ်တစ်ခုလုံးကို empInfo ဟုအမည်ပေးထားသည်။

ဤအစီအစဉ်သည် စံဒေတာအမျိုးအစားဖြစ်သည့် ငွေကြေးကို အသုံးပြုသည်။ ဤကဲ့သို့သော စံဒေတာအမျိုးအစားကို အသုံးပြုခြင်းဖြင့် ၎င်းနှင့်သက်ဆိုင်သည့် ကြိုတင်သတ်မှတ်ထားသော တန်ဖိုးအားလုံးကို ယူဆောင်လာစေရန် ကူညီပေးသည်။

Model တစ်ခုဖန်တီးရန် CDS ကိုအသုံးပြုပါသည်။ အဲဒီ CDS မှာ ကျွန်တော်တို့ သုံးပါတယ်။

  1. တစ်မူထူးခြားသော အရာဝတ္ထုအစုံကို ကိုယ်စားပြုမည့် အရာများ ဥပမာ-
    1. ဝန်ထမ်းအခြေခံအချက်အလက်
    2. ဝန်ထမ်းဆက်သွယ်ရေးအချက်အလက်
    3. ဝန်ထမ်းလစာအချက်အလက်
  2. ပေါင်းသင်းဆက်ဆံရေးကို သတ်မှတ်ရန်
    1. မန်နေဂျာများစာရင်းအားလုံးပါရှိမည့် အခြားအဖွဲ့အစည်းမန်နေဂျာနှင့် မန်နေဂျာပေါင်းသင်းခြင်း။

ကွန်ဗင်းရှင်းအမည်ပေးခြင်းနှင့် အကြံပြုချက်များ

  1. အဖွဲ့အစည်း၏အမည်သည် စာလုံးကြီးဖြင့် အစပြုသင့်ပြီး ၎င်းသည် လူသားတို့ဖတ်၍ရနိုင်သော ကိုယ်ပိုင်ရှင်းပြချက်ဖြစ်သင့်သည် - ဥပမာ ဝန်ထမ်းများ၊
  2. စာလုံးအသေးဖြင့် အစိတ်အပိုင်းများကို စတင်ပါ - ဥပမာ၊ firstName
  3. entities ၏ အများကိန်းပုံစံကို အသုံးပြုရန် အကြံပြုထားသည် – ဥပမာ၊ Employees
  4. အမျိုးအစားများ၏ အနည်းကိန်းပုံစံကို အသုံးပြုရန် အကြံပြုထားသည် - ဥပမာ၊ ငွေကြေး
  5. အကြောင်းအရာများကို ထပ်တလဲလဲမလုပ်ပါနှင့် - ဥပမာ၊ Employees.EmployeeName အစား Employees.name
  6. စကားလုံးတစ်လုံးတည်းသော အမည်များကို ပိုနှစ်သက်သည် - ဥပမာ - လစာပမာဏ အစား လစာ
  7. နည်းပညာပိုင်းဆိုင်ရာ အဓိကသော့များအတွက် ID ကိုသုံးပါ - ဥပမာ၊ Employee ID အတွက် ID
  8. သင်၏အကြောင်းအရာများကိုထူးခြားစေရန် Namespace ကိုသုံးနိုင်သည်။ ၎င်းသည် ၎င်းတို့ကို ကွဲပြားစေရန် သီးခြား Namespace ဖြင့် သင်ပွားထားသော schemas (cds ဖိုင်များ) ရှိနိုင်သည် SAP ရှိ client concept နှင့်တူသည်။ သင့်မော်ဒယ်များကို အခြားပရောဂျက်များတွင် ပြန်လည်အသုံးပြုနိုင်ပါက Namespaces သည် ရွေးချယ်နိုင်သည်၊ နေ့၏အဆုံးတွင် ၎င်းတို့သည် ဖိုင်တစ်ခုရှိ သက်ဆိုင်ရာအမည်များအားလုံးကို အလိုအလျောက်အသုံးချသည့် ရှေ့ဆက်များသာဖြစ်သည်။ - ဥပမာ,

namespace laptop;entity Dell {}

..… သည်-

လက်တော့ပ်။Dell {}

  1. nested namespace ကဏ္ဍများအတွက် contexts ကို သင်သုံးနိုင်သည်။ - ဥပမာ,

namespace laptop;entity Dell {}           //> laptop.Dellဆက်စပ် Apple { entity MacBookPro {}       //> laptop.Apple.MacBookPro     MacBookAir {} }

 

အဖွဲ့အစည်းများ

အရာဝတ္ထုများသည် အဓိကသော့များပါသည့် ဇယားများနှင့်တူသည်။ ကျွန်ုပ်တို့သည် ဤအရာများကို အသုံးပြု၍ CRUD လုပ်ဆောင်ချက်ကို လုပ်ဆောင်နိုင်ပါသည်။ တတ်နိုင်သမျှ ပြားအောင်ထားပါ။ အဲဒါကို Normalize မလွန်ပါနဲ့။ ပြန်သုံးလို့မရတဲ့ အမျိုးအစားတွေကို မသုံးပါနဲ့။ ဤကဏ္ဍသည် မော်ဒယ်လ်အတွက်သာဖြစ်ပြီး၊ နယ်ပယ်တစ်ခုချင်းစီနှင့်သက်ဆိုင်သည့် မှတ်စာများကိုသာ ထည့်သွင်းသင့်ပြီး နည်းပညာဆိုင်ရာအသေးစိတ်အချက်များ (ယုတ္တိဗေဒ) ကို ထည့်သွင်းသင့်သည်။

အမျိုးအစားများ

အမျိုးအစားများသည် SAP ABAP ရှိ Domain နှင့်တူသည်၊ ၎င်းသည် Data ဒြပ်စင်များ၏ အမျိုးအစားကို သတ်မှတ်ရန် အသုံးပြုသည်။

ရှုထောင့်

ရှုထောင့်များသည် မော်ဒယ်များ၏ တိုးချဲ့မှုများဖြစ်ပြီး ရှိပြီးသား အဓိပ္ပါယ်ဖွင့်ဆိုချက်များနှင့် မှတ်ချက်များကို တိုးချဲ့ရန်အတွက် အဓိကအားဖြင့် အသုံးပြုကြသည်။ မော်ဒယ်တစ်ခုကို သတ်မှတ်ပြီးသည်နှင့်၊ သီးခြားလုပ်ဆောင်စရာများအတွက် ၎င်းတို့အပေါ်တွင် မှတ်ချက်များကို ထည့်သွင်းရန် မတူညီသော စီဒီဖိုင်များ (Aspect) ကို အသုံးပြုနိုင်ပါသည်။

ဥပမာ-

  • CD များ- သင်၏အဓိကဒိုမိန်းမော်ဒယ်၊ သန့်ရှင်းသည်၊ ရိုးရှင်းပြီး နားလည်နိုင်သည်
  • စာရင်းစစ်-model.cds- ဖိုင်တစ်ခုတွင် စာရင်းစစ်ရန်အတွက် လိုအပ်သော အပိုအကွက်များကို ပေါင်းထည့်သည်။
  • auth-model.cds- ခွင့်ပြုချက်အတွက် မှတ်ချက်များကို ပေါင်းထည့်သည်။

အဓိကသော့များ

SAP ABAP ရှိ ဇယားများနှင့် CDS ကဲ့သို့ပင်၊ ကျွန်ုပ်တို့သည် အဓိကစကားလုံးကို အသုံးပြု၍ Entity အတွက် အဓိကသော့များကို ထိန်းသိမ်းထားပါသည်။ သော့ချက်။

ဘုံအဓိပ္ပါယ်ဖွင့်ဆိုချက်များ၏နည်းစနစ်ကို အသုံးပြုခြင်းဖြင့် ပင်မသော့ကို မော်ဒယ်တစ်လျှောက်တွင် ပြန်လည်အသုံးပြုနိုင်ပါသည်။

ဘုံအဓိပ္ပါယ်များအားလုံးကို သိမ်းဆည်းထားနိုင်သည့် common.cds Model တစ်ခုကို ကျွန်ုပ်တို့ ဖန်တီးနိုင်သည်။

// ဘုံအဓိပ္ပါယ်

အဖွဲ့အစည်း StandardEntity { သော့ ID : UUID; } ယခု ဤဘုံအဓိပ္ပါယ်ဖွင့်ဆိုချက်များကို အောက်ပါအတိုင်း ပြန်သုံးနိုင်သည်- './common' မှ { StandardEntity } ကို အသုံးပြုပြီး၊ entity Employee : StandardEntity { name : String; ... } entity Manager : StandardEntity { name : String; ... }

 

ဘုံဖိုင်ကို အမည်ပေးထားသည့် ကြိုတင်သတ်မှတ်ထားသော အကြောင်းအရာတစ်ခုဖြင့် ပုံသေဖြင့် ဖန်တီးထားပြီးဖြစ်သည်။ ခွေးကလေး.

UUID များကို OData သို့ ပုံဖော်ခြင်း။

CDS သည် OData မော်ဒယ်များအားလုံးတွင် ပုံမှန်အားဖြင့် UUID များကို Edm.Guid သို့ မြေပုံပြုလုပ်သည်။ သို့သော်၊ OData စံနှုန်းသည် Edm.Guid တန်ဖိုးများအတွက် တင်းကျပ်သော စည်းမျဉ်းများကို ထည့်သွင်းထားသည် - ဥပမာအားဖြင့်၊ တုံးထုထားသော စာကြောင်းများကိုသာ ခွင့်ပြုသည် - လက်ရှိဒေတာနှင့် ကွဲလွဲနိုင်ပါသည်။ ထို့ကြောင့်၊ ကျွန်ုပ်တို့သည် ပုံသေမြေပုံကို အောက်ပါအတိုင်း လွှမ်းမိုးရန် ခွင့်ပြုသည်-

ဘဘ စာအုပ်များ {

သော့ ID : UUID @odata.Type: 'Edm.String';

...

}

လိုအပ်ပါက၊ သက်ဆိုင်ရာ ပိုင်ဆိုင်မှုကို အစားထိုးရန် မှတ်ချက် @odata.MaxLength ကိုလည်း ထည့်နိုင်သည်။

အသင်း

၎င်းသည် အရာနှစ်ခုကြားရှိ ဆက်စပ်မှုကို သတ်မှတ်ရန် အသုံးပြုသည်။ ABAP CDS ကဲ့သို့ပင်၊ ဤနေရာတွင်လည်း ကျွန်ုပ်တို့သည် စကားလုံးကိုသုံးသည်။ အသင်း။ ဒီနေရာမှာ အဓိကစကားလုံး များသော ကပြသည် 0..* cardinality Cardinality အတွက် ကန့်သတ်ချက်များ ကို ကန့်သတ်ချက် (အခြေ အနေ) အဖြစ် ထည့်သွင်းနိုင်သည် - ဥပမာအားဖြင့် အသုံးပြုခြင်း။ null မဟုတ်ပါ။.

ရေးစပ်သီ

ကျွန်ုပ်တို့သည် အဖွဲ့အစည်းတစ်ခုလုံး၏ အရာဝတ္ထုများနှင့် သက်ဆိုင်သည့်နယ်ပယ်တစ်ခုနှင့် ဆက်စပ်နေသည့်အသင်းနှင့် မတူဘဲ၊ ဖွဲ့စည်းမှုများသည် အခြားအဖွဲ့အစည်းတစ်ခု၏ သီးခြားနယ်ပယ်ကို ရည်ညွှန်းခြင်းဖြစ်သည်။ ၎င်းတွင် ကိုယ်တိုင် စီမံခန့်ခွဲသည့် နက်နဲသော လုပ်ဆောင်ချက်များ (Insert/Update) နှင့် cascaded ဖျက်ခြင်း (Multi Dependent table deletion) ၏ အပိုအားသာချက်ရှိသည်။

// ပါရှိသော OrderItems များဖြင့် အမှာစာများကို သတ်မှတ်ပါ။အဖွဲ့အစည်း မှာယူမှုများ { သော့ ID : UUID; Items : Items.parent=$self;}entity Order_Items { // အမှာစာများဖြင့်သာ ဝင်ရောက်ကြည့်ရှုနိုင်မည်ဖြစ်ပါသည်။  အဓိကမိဘ : အမိန့်ပေးရန်အသင်း; သော့ချက်စာအုပ် : Association to Books; ပမာဏ : ကိန်းပြည့်;}

အကောင်းဆုံးအလေ့အကျင့်များ

  1. ကျွန်ုပ်တို့သည် မော်ဒယ်များထဲတွင် နည်းပညာဆိုင်ရာ အသေးစိတ်အချက်အလက်များကို မထည့်ပါနှင့် ရှုထောင့်အဲဒီအတွက်
  2. အသုံး အတိုကောက်အမည်များ နှင့် ရိုးရှင်းသောပြားချပ်ချပ်မော်ဒယ်များ
  3. Models များရှိ entities များကို Normalize မပြုလုပ်ပါနှင့်
  4. မြင့်မားသော loads နှင့် volumes ကို အမှန်တကယ်ကိုင်တွယ်ဖြေရှင်းပါက local integer sequences ကိုသုံးပါ။ မဟုတ်ပါက UUID များကို ပိုနှစ်သက်သည်။

ယခုအချိန်အထိ ကျွန်ုပ်တို့ သင်ယူလေ့လာခဲ့သည့်အရာ- မော်ဒယ်ဖန်တီးမှုနှင့် ရှုထောင့်များ .

SAP CAP တွင် Domain Modeling

မှတ်ချက် Leave

ဤ site ကိုစပမ်လျှော့ချဖို့ Akismet ကိုအသုံးပြုသည်။ သင့်ရဲ့ comment ကိုဒေတာများကိုဆောင်ရွက်ပြီးဖြစ်ပါတယ်လေ့လာ.