SAP CAP da domenni modellashtirish

kirish

SAP CAP-dagi domen modeli - bu ob'ekt munosabatlari modellari nuqtai nazaridan muammoli domenning statik, ma'lumotlar bilan bog'liq tomonlarini tavsiflovchi model. Ushbu maqolada biz SAP CAP-da domenni modellashtirishni batafsil o'rganamiz.

Domenni modellashtirish

Oddiy so'zlar bilan aytganda, SAP CAP-dagi CDS domen modelini shunday ishlab chiqaradiki, u biznes muammosini kalitlar, maydonlar va izohlar nuqtai nazaridan belgilaydi. Domen modelini yaratish uchun kod CDS sxemasida (db/schema.cds) yozilgan. Ushbu domen modellari xizmat ta'riflarida, doimiylik modellarida, ma'lumotlar bazalarida ishlatilishi yoki hatto boshqa domen modelida qayta ishlatilishi mumkin.

Namuna misol:

empInfo nom maydoni; '@sap/cds/common'dan {Currency, managed} dan foydalanish; ob'ekt Xodimlar: boshqariladigan { key ID: Integer; firstName: mahalliylashtirilgan String (111); familiya: mahalliylashtirilgan String (1111); menejer: Menejerlar uyushmasi; qo'shilish sanasi: Integer; ish haqi: O'nlik (9,2); valyuta: valyuta; }

 

Ushbu misolda biz schema.cds faylini yaratdik, unda biz Xodimlar ob'ektini yaratdik, unda Xodimning asosiy ma'lumotlari mavjud.

Bu butun sxemaga nom maydoni, ya'ni empInfo berilgan

Ushbu sxema standart ma'lumotlar turidan, ya'ni Valyutadan foydalanadi. Bu kabi standart ma'lumotlar turidan foydalanish bizga oldindan belgilangan barcha qiymatlarni unga bog'liq yordam berishga yordam beradi.

Model yaratish uchun biz CDS dan foydalanamiz. Ushbu CDSda biz foydalanamiz

  1. Noyob ob'ektlar to'plamini ifodalash uchun ob'ektlar, masalan:
    1. Xodimlar haqida asosiy ma'lumotlar
    2. Xodimlar bilan aloqa ma'lumotlari
    3. Xodimlarning ish haqi haqida ma'lumot
  2. O'zaro munosabatlarni aniqlash uchun uyushmalar
    1. Menejerning barcha menejerlar ro'yxatiga ega bo'lgan boshqa tashkilotga aloqasi

Nomlash konventsiyasi va tavsiyalar

  1. Tashkilot nomi bosh harf bilan boshlanishi kerak va u odamlar tomonidan o'qilishi va o'zini o'zi tushunarli bo'lishi kerak - masalan, Xodimlar
  2. Elementlarni kichik harf bilan boshlang - masalan, firstName
  3. Ob'ektlarning ko'plik shaklidan foydalanish tavsiya etiladi - masalan, Xodimlar
  4. Turlarning yagona shaklidan foydalanish tavsiya etiladi - masalan, Valyuta
  5. kontekstlarni takrorlamang – masalan, Employees.EmployeeName o‘rniga Employees.name
  6. bir so'zli nomlarni afzal ko'ring - masalan, ish haqi miqdori o'rniga ish haqi
  7. texnik asosiy kalitlar uchun identifikatordan foydalaning - masalan, Xodim ID uchun ID
  8. Ob'ektlaringizni noyob qilish uchun Namespace-dan foydalanishingiz mumkin. Bu SAP-dagi mijoz kontseptsiyasiga o'xshaydi, unda siz ularni farqlash uchun noyob nomlar maydoniga ega bo'lgan takroriy sxemalarga (CD-fayllarga) ega bo'lishingiz mumkin. Nomlar bo'shliqlari ixtiyoriy, agar modellaringiz boshqa loyihalarda qayta ishlatilishi mumkin bo'lsa, nom bo'shliqlaridan foydalaning. Kun oxirida ular faqat prefikslar bo'lib, ular fayldagi barcha tegishli nomlarga avtomatik ravishda qo'llaniladi. - misol uchun,

nom maydoni noutbuk; ob'ekt Dell {}

..… ga teng:

ob'ekt noutbuki.Dell {}

  1. Ichki nomlar maydoni bo'limlari uchun kontekstlardan foydalanishingiz mumkin. - misol uchun,

nom maydoni noutbuk; ob'ekt Dell {}           //> noutbuk.Dellkontekst Apple { ob'ekt MacBookPro {}       //> noutbuk.Apple.MacBookPro     ob'ekt MacBookAir {} }

 

Korxonalar

Ob'ektlar asosiy kalitlarga ega jadvallarga o'xshaydi. Biz ushbu ob'ektlar yordamida CRUD operatsiyasini bajarishimiz mumkin. Uni iloji boricha tekis tuting. Uni haddan tashqari normallashtirmang. Qayta ishlatib bo'lmaydigan turlardan foydalanmang. Ushbu bo'lim faqat modellashtirish uchun mo'ljallangan, faqat alohida maydonlarga tegishli izoh qo'shilishi kerak va hech qanday texnik tafsilotlar (mantiq) qo'shilmasligi kerak.

turlari

Turlar SAP ABAP-dagi domenga o'xshaydi, u ma'lumotlar elementlarining turini aniqlash uchun ishlatilgan.

Asrlar

Aspektlar Modellarning kengaytmalari bo'lib, asosan mavjud ta'riflar va izohlarni kengaytirish uchun ishlatiladi. Model aniqlangandan so'ng, biz turli xil CD-fayllardan (Aspect) foydalanishimiz mumkin, ularning ustiga aniq vazifa uchun izohlar qo'shishimiz mumkin.

Misol uchun-

  • CD– sizning asosiy domen modelingiz toza, sodda va tushunarli
  • audit-model.cds– faylda tekshirish uchun zarur boʻlgan qoʻshimcha maydonlarni qoʻshadi
  • auth-model.cds- avtorizatsiya uchun izohlar qo'shadi.

Asosiy kalitlar

SAP ABAP-dagi jadvallar va CDS kabi, biz kalit so'zdan foydalangan holda ob'ekt uchun asosiy kalitlarni saqlaymiz kalit.

Birlamchi kalit umumiy ta'riflar metodologiyasidan foydalangan holda model bo'ylab qayta ishlatilishi mumkin.

Biz barcha umumiy ta'riflar saqlanishi mumkin bo'lgan common.cds Modelini yaratishimiz mumkin.

// umumiy ta'riflar

ob'ekt StandardEntity { kalit ID : UUID; } Endi bu umumiy ta'riflarni quyidagi tarzda qayta ishlatish mumkin: './common' dan { StandardEntity } dan foydalanish; ob'ekt Xodim : StandardEntity { nomi : String; ... } ob'ekt menejeri : StandardEntity { nomi : String; ... }

 

Umumiy fayl allaqachon sukut bo'yicha oldindan belgilangan ob'ekt nomi bilan yaratilgan cuid.

UUID-larni OData bilan taqqoslash

CDS barcha OData modellarida sukut bo'yicha UUID'larni Edm.Guid bilan taqqoslaydi. Biroq, OData standarti Edm.Guid qiymatlari uchun cheklovchi qoidalarni o'rnatadi - masalan, faqat chiziqli satrlarga ruxsat beriladi - mavjud ma'lumotlarga zid bo'lishi mumkin. Shunday qilib, biz standart xaritalashni quyidagi tarzda bekor qilishga ruxsat beramiz:

shaxs kitoblari {

kalit identifikatori: UUID @odata.Type:'Edm.String';

...

}

Agar kerak bo'lsa, tegishli xususiyatni bekor qilish uchun @odata.MaxLength izohini ham qo'shishingiz mumkin.

jamiyat

U ikki ob'ekt o'rtasidagi munosabatlarni aniqlash uchun ishlatiladi. ABAP CDS kabi, biz ham bu so'zdan foydalanamiz Assotsiatsiya. Mana, kalit so'z ko'p a ni bildiradi 0..* kardinallik. Kardinallik uchun cheklovlar cheklov sifatida qo'shilishi mumkin (qaerda shart) - masalan, foydalanish null emas.

Kompozitsiyalar

Biz ob'ekt sohasini butun bir ob'ekt ob'ektlari bilan bog'laydigan Assotsiatsiyadan farqli o'laroq, kompozitsiyalar shunchaki boshqa ob'ektning o'ziga xos maydoniga ishora qiladi. O'z-o'zidan boshqariladigan chuqur operatsiyalar (Qo'shish/yangilash) va kaskadli o'chirish (Ko'p bog'liq jadvalni o'chirish) qo'shimcha afzalliklarga ega.

// Tarkibdagi OrderItems bilan Buyurtmalarni aniqlangshaxs Buyurtmalari { kalit ID : UUID; Elementlar : Items.parent=$self;}ob'ektdagi Buyurtma_Itemsidagi ko'p Buyurtma_Itemslarining tarkibi { // faqat Buyurtmalar orqali kirish mumkin  asosiy ota-ona: Buyurtmalar assotsiatsiyasi; asosiy kitob: Kitoblar assotsiatsiyasi; miqdor: butun;}

Eng yaxshi amaliyotlar

  1. Modellarga texnik tafsilotlarni qo'shmang, biz foydalanamiz AsrlarBuning uchun
  2. foydalanish qisqa ismlar va oddiy tekis modellar
  3. Modellardagi ob'ektlarni normallashtirmang
  4. Agar siz haqiqatan ham yuqori yuklar va hajmlar bilan shug'ullansangiz, mahalliy tamsayılar ketma-ketligidan foydalaning. Aks holda, UUIDlarni afzal qiling

Hozirgacha biz nimani o'rgandik: Model va uning ustidagi jihatlarni yaratish.

SAP CAP da domenni modellashtirish

Izoh qoldirish

Ushbu sayt spamni kamaytirish uchun Akismet-dan foydalanadi. Fikringiz ma'lumotlarining qanday ishlashini bilib oling.