Domeno modeliavimas SAP CAP

Įvadas

SAP CAP domeno modelis yra modelis, apibūdinantis statinius, su duomenimis susijusius probleminės srities aspektus objektų santykių modelių požiūriu. Šiame straipsnyje mes išsamiai išnagrinėsime domenų modeliavimą SAP CAP.

Domeno modeliavimas

Paprastais žodžiais tariant, CDS SAP CAP sukuria domeno modelį taip, kad apibrėžia verslo problemą raktais, laukais ir anotacijomis. Kodas, skirtas sukurti domeno modelį, parašytas CDS schemoje (db/schema.cds). Šie domenų modeliai gali būti naudojami paslaugų apibrėžimuose, patvarumo modeliuose, duomenų bazėse arba netgi pakartotinai naudojami kitame domeno modelyje.

Pavyzdžio pavyzdys:

Vardų erdvė empInfo; naudojant {Currency, manage} iš „@sap/cds/common“; subjektas Darbuotojai: valdomas { rakto ID: Integer; vardas: lokalizuota eilutė (111); pavardė: lokalizuota eilutė (1111); vadovas: Asociacija su vadovais; prisijungimo data: Sveikasis skaičius; atlyginimas: dešimtainis (9,2); valiuta: Valiuta; }

 

Šiame pavyzdyje sukūrėme failą schema.cds, kuriame sukūrėme objektą Darbuotojai, kuriame yra pagrindinė darbuotojo informacija

Visai šiai schemai buvo suteikta vardų erdvė, ty empInfo

Šioje schemoje naudojamas standartinis duomenų tipas, ty valiuta. Standartinio duomenų tipo naudojimas, kaip šis, padeda mums pateikti visas su juo susijusias iš anksto nustatytas reikšmes.

Modeliui sukurti naudojame CDS. Tame CDS mes naudojame

  1. Objektai, vaizduojantys unikalių objektų rinkinį, pvz.:
    1. Pagrindinė darbuotojo informacija
    2. Darbuotojų bendravimo informacija
    3. Informacija apie darbuotojų atlyginimus
  2. Asociacijos santykiams apibrėžti
    1. Valdytojo susiejimas su kitu subjektu Valdytojas, kuris turės visą valdytojų sąrašą

Vardų suteikimo konvencija ir rekomendacijos

  1. Subjekto pavadinimas turi prasidėti didžiąja raide, jis turi būti žmogui įskaitomas ir aiškus, pvz., Darbuotojai
  2. Pradėkite elementus mažosiomis raidėmis, pavyzdžiui, vardas
  3. Rekomenduojama naudoti daugiskaitos formą – pvz., Darbuotojai
  4. Rekomenduojama naudoti vienaskaitos tipų formas – pavyzdžiui, Valiuta
  5. nekartokite kontekstų – pavyzdžiui, Darbuotojai.vardas, o ne Darbuotojai.Darbuotojo vardas
  6. pirmenybę teikia vienažodžiams pavadinimams – pavyzdžiui, alga, o ne algaAmount
  7. naudoti ID techniniams pirminiams raktams, pavyzdžiui, ID darbuotojo ID
  8. Galite naudoti vardų erdvę, kad jūsų objektai būtų unikalūs. Tai tarsi kliento koncepcija SAP, kur galite turėti pasikartojančias schemas (CD failus) su unikalia vardų erdve, kad jas atskirtumėte. Vardų erdvės yra neprivalomos, naudokite vardų sritis, jei jūsų modeliai gali būti pakartotinai naudojami kituose projektuose. Dienos pabaigoje tai tik priešdėliai, kurie automatiškai pritaikomi visiems atitinkamiems pavadinimams faile. - pavyzdžiui,

vardų erdvė nešiojamasis kompiuteris;subjektas Dell {}

..... yra lygiavertis:

subjekto nešiojamasis kompiuteris. „Dell“ {}

  1. Galite naudoti kontekstus įdėtoms vardų erdvės sekcijoms. - pavyzdžiui,

vardų erdvė nešiojamasis kompiuteris;subjektas Dell {}           //> nešiojamasis kompiuteris.Dellkontekstas Apple { entity MacBookPro {}       //> nešiojamas kompiuteris.Apple.MacBookPro     subjektas „MacBookAir“ {} }

 

Subjektai

Esybės yra kaip lentelės su pirminiais raktais. CRUD operaciją galime atlikti naudodami šiuos objektus. Laikykite jį kiek įmanoma plokščią. Per daug nenormalizuokite. Nenaudokite vienkartinių tipų. Ši skiltis skirta tik modeliavimui, reikia pridėti tik su atskirais laukeliais susijusią anotaciją ir jokių techninių detalių (logikos).

Tipai

Tipai yra kaip domenas SAP ABAP, jis naudojamas duomenų elementų tipams apibrėžti.

Aspektai

Aspektai yra modelių plėtiniai ir daugiausia naudojami esamiems apibrėžimams ir anotacijoms išplėsti. Kai modelis yra apibrėžtas, galime naudoti skirtingus CD failus (Aspektas), kad pridėtume prie jų komentarus konkrečiai užduočiai.

Pavyzdžiui-

  • CD– jūsų pagrindinis domeno modelis, švarus, paprastas ir suprantamas
  • audito modelis.cds– į failą įtraukiami papildomi laukai, reikalingi auditui atlikti
  • auth-model.cds– pridedami autorizavimo komentarai.

Pirminiai raktai

Kaip ir SAP ABAP lentelės ir CDS, pirminius subjekto raktus palaikome naudodami raktinį žodį Raktas.

Pirminis raktas gali būti pakartotinai naudojamas visame modelyje, naudojant bendrų apibrėžimų metodiką.

Galime sukurti common.cds modelį, kuriame būtų saugomi visi bendri apibrėžimai.

// bendri apibrėžimai

entity StandardEntity { rakto ID : UUID; } Dabar šiuos bendrus apibrėžimus galima naudoti pakartotinai, kaip nurodyta toliau: naudojant { StandardEntity } iš './common'; subjektas Darbuotojas : StandardEntity { pavadinimas : String; ... } entity Manager : StandardEntity { pavadinimas : String; ... }

 

Bendras failas jau sukurtas pagal numatytuosius nustatymus su iš anksto nustatytu objektu pavadinimu cuid.

UUID susiejimas su OData

CDS pagal numatytuosius nustatymus susieja UUID su Edm.Guid visuose OData modeliuose. Tačiau OData standartas pateikia ribojančias taisykles Edm.Guid reikšmėms – pavyzdžiui, leidžiamos tik eilutės su brūkšneliu – kurios gali prieštarauti esamiems duomenims. Todėl leidžiame nepaisyti numatytojo susiejimo taip:

subjektas Knygos {

rakto ID: UUID @odata.Type:'Edm.String';

...

}

Jei reikia, taip pat galite pridėti komentarą @odata.MaxLength, kad nepaisytumėte atitinkamos nuosavybės.

Asociacija

Jis naudojamas nustatyti ryšį tarp dviejų objektų. Kaip ir ABAP CDS, čia taip pat vartojame žodį Asociacija. Čia raktinis žodis daug rodo a 0..* kardinalumas. Kardinalumo apribojimus galima pridėti kaip apribojimą (kur sąlyga) – pavyzdžiui, naudojant ne niekinis.

Kompozicijos

Skirtingai nuo asociacijos, kai objekto lauką susiejame su viso subjekto objektais, kompozicijos tiesiog nurodo konkretų kito objekto lauką. Jis turi papildomų privalumų, susijusių su savarankiškai valdomomis giliosiomis operacijomis (įterpimas / atnaujinimas) ir pakopinis ištrynimas (daugiai priklausomų lentelių ištrynimas).

// Apibrėžkite užsakymus su esančiais užsakymo elementaissubjektas Užsakymai { rakto ID : UUID; Elementai : daugelio Order_Items sudėtis Items.parent=$self;}entity Order_Items { // bus pasiekiama tik per Užsakymus  pagrindinis tėvas: susiejimas su užsakymais; raktų knyga: asociacija su knygomis; kiekis: sveikasis skaičius;}

Geriausia praktika

  1. Nepridėkite techninių detalių prie modelių, mes naudojame Aspektaiuž tai
  2. naudojimas trumpi vardai ir paprasti plokšti modeliai
  3. Nepersistenkite Normalizuokite objektų modeliuose
  4. Naudokite vietines sveikųjų skaičių sekas, jei tikrai susiduriate su didelėmis apkrovomis ir apimtimis. Kitu atveju pirmenybę teikite UUID

Iki šiol tai, ko išmokome: modelio kūrimas ir aspektai ant jo.

Domeno modeliavimas SAP CAP

Palikite komentarą

Ši svetainė naudoja "Akismet", kad sumažintų šlamštą. Sužinokite, kaip apdorojamas jūsų komentaras.