Modelarea domeniului în SAP CAP

Introducere

Un model de domeniu în SAP CAP este un model care descrie aspectele statice, legate de date, ale unui domeniu cu probleme în termeni de modele entitate-relație. În acest articol vom studia în detaliu Modelarea Domeniilor în SAP CAP.

Modelarea domeniului

Cu cuvinte simple, un CDS în SAP CAP produce un model de domeniu în așa fel încât să definească problema afacerii în termeni de chei, câmpuri și adnotări. Codul pentru generarea unui model de domeniu este scris într-o schemă CDS (db/schema.cds). Aceste modele de domenii pot fi utilizate în definiții de servicii, modele de persistență, baze de date sau chiar reutilizate în cadrul unui alt model de domeniu.

Exemplu de exemplu:

Spațiu de nume empInfo; folosind {Currency, managed} din „@sap/cds/common”; entitate Angajati: gestionat { ID cheie: Integer; prenume: șir localizat (111); lastName: șir localizat (1111); manager: Asociația Managerilor; dataJoining: Integer; salariu: zecimal (9,2); moneda: Moneda; }

 

În acest exemplu, am creat un fișier schema.cds în care am creat o entitate Angajați care include detalii de bază ale unui angajat

Toată această schemă a primit un spațiu de nume, adică empInfo

Această schemă folosește un tip de date standard, adică Moneda. Folosirea tipului de date standard astfel ne ajută să aducem toate ajutoarele valorice predefinite legate de acesta.

Folosim CDS pentru a crea un Model. În acel CD-uri, folosim

  1. Entități care reprezintă un set de obiecte unice, de exemplu:
    1. Informații de bază despre angajați
    2. Informații despre comunicarea angajaților
    3. Informații despre salariul angajaților
  2. Asociații pentru definirea relațiilor
    1. Asocierea managerului cu o altă entitate Manager care va avea toate lista Managerilor

Convenția de denumire și recomandări

  1. Numele entității ar trebui să înceapă cu o literă majusculă și ar trebui să fie ușor de citit și să se explice de la sine - de exemplu, angajați
  2. Începeți elementele cu o literă mică – de exemplu, prenumele
  3. Este recomandat să folosiți forma plurală de entități – de exemplu, Angajații
  4. Se recomandă utilizarea formelor singulare de tip – de exemplu, Moneda
  5. nu repetați contexte – de exemplu, Employees.name în loc de Employees.EmployeeName
  6. preferați nume cu un singur cuvânt – de exemplu, salariu în loc de salariuSumă
  7. utilizați ID-ul pentru cheile primare tehnice – de exemplu, ID-ul pentru ID-ul angajatului
  8. Puteți folosi Namespace pentru a vă face entitățile unice. Este ca și conceptul de client în SAP, unde puteți avea scheme duplicate (fișiere cds) cu spațiu de nume unic pentru a le diferenția. Spațiile de nume sunt opționale, utilizați spațiile de nume dacă modelele dvs. ar putea fi reutilizate în alte proiecte. La sfârșitul zilei, acestea sunt doar prefixe, care sunt aplicate automat tuturor numelor relevante dintr-un fișier. - de exemplu,

laptop cu spațiu de nume;entitate Dell {}

..… este echivalent cu:

laptop entitate.Dell {}

  1. Puteți utiliza contexte pentru secțiunile de spațiu de nume imbricate. - de exemplu,

laptop cu spațiu de nume;entitate Dell {}           //> laptop.Dellcontext Apple { entitate MacBookPro {}       //> laptop.Apple.MacBookPro     entitate MacBookAir {} }

 

entități

Entitățile sunt ca niște tabele cu chei primare. Putem efectua operația CRUD folosind aceste Entități. Păstrați-l cât mai plat posibil. Nu-l supranormalizați. Nu utilizați tipuri nereutilizabile. Această secțiune este doar pentru modelare, trebuie adăugate doar adnotări legate de câmpurile individuale și nu trebuie adăugate detalii tehnice (logici).

Tipuri de

Tipurile sunt ca Domeniul în SAP ABAP, acesta folosit pentru a defini tiparea elementelor de date.

aspecte

Aspectele sunt extensii ale Modelelor și sunt utilizate în principal pentru a extinde definițiile și adnotările existente. Odată ce un model este definit, putem folosi diferite fișiere CD-uri (Aspect) pentru a adăuga adnotări peste ele pentru o anumită sarcină.

De exemplu-

  • CDs– modelul de domeniu principal, păstrat curat, simplu și ușor de înțeles
  • audit-model.cds– adaugă câmpuri suplimentare necesare pentru auditare într-un fișier
  • auth-model.cds– adaugă adnotări pentru autorizare.

Chei primare

La fel ca tabelele și CD-urile în SAP ABAP, menținem cheile primare pentru Entitate folosind cuvântul cheie cheie.

O cheie primară poate fi reutilizată în întregul model utilizând metodologia definițiilor comune.

Putem crea un model common.cds unde pot fi stocate toate definițiile comune.

// definiții comune

entitate StandardEntity { ID cheie : UUID; } Acum aceste definiții comune pot fi reutilizate după cum urmează: folosind { StandardEntity } din './common'; entitate Angajat : StandardEntity { nume : String; ... } entitate Manager : StandardEntity { nume : String; ...}

 

Fișierul comun este deja creat implicit cu o entitate predefinită numită cuid.

Maparea UUID-urilor la OData

CDS mapează UUID-urile la Edm.Guid, în mod implicit, în toate modelele OData. Cu toate acestea, standardul OData stabilește reguli restrictive pentru valorile Edm.Guid – de exemplu, sunt permise doar șirurile cu cratime – care pot intra în conflict cu datele existente. Prin urmare, permitem ca maparea implicită să fie înlocuită după cum urmează:

entitate cărți {

ID cheie: UUID @odata.Type: „Edm.String”;

...

}

Dacă este necesar, puteți adăuga și adnotarea @odata.MaxLength pentru a suprascrie și proprietatea corespunzătoare.

Asociație

Este folosit pentru a defini relația dintre două entități. La fel ca ABAP CDS, și aici folosim cuvântul Asociere. Aici, cuvântul cheie multe indică o 0..* cardinalitatea. Restricțiile pentru cardinalitate pot fi adăugate ca o constrângere (unde condiție) – de exemplu, folosind nu nul.

compoziţii

Spre deosebire de Asociație în care asociem un domeniu de entitate cu obiectele unei întregi entități, compozițiile se referă doar la un domeniu specific al altei entități. Are un avantaj suplimentar de operațiuni profunde auto-gestionate (Inserare/Actualizare) și ștergere în cascadă (Ștergerea tabelului multidependent).

// Definiți comenzi cu elemente de comandă conținuteentitate Comenzi { ID cheie : UUID; Items : Compoziția multor Order_Items pe Items.parent=$self;}entity Order_Items { // va fi accesat numai prin Comenzi  părinte cheie: Asociere la Comenzi; cartea cheie: Asociația cărților; cantitate: Integer;}

Cele mai bune practici

  1. Nu adăugați detalii tehnice în Modele, noi folosim aspectepentru asta
  2. Utilizare nume scurte și modele plate simple
  3. Nu supranormalizați entitățile din Modele
  4. Utilizați secvențe întregi locale dacă aveți de-a face cu încărcături și volume mari. În caz contrar, preferați UUID-urile

Până acum, ceea ce am învățat: Crearea modelului și a aspectelor pe deasupra.

Modelarea domeniului în SAP CAP

Lasa un comentariu

Acest site folosește Akismet pentru a reduce spamul. Aflați cum sunt procesate datele despre comentarii.