Modelatge de dominis en SAP CAP

introducció

Un model de domini a SAP CAP és un model que descriu els aspectes estàtics relacionats amb les dades d'un domini problema en termes de models de relació entitat. En aquest article estudiarem detalladament el modelatge de dominis en SAP CAP.

Modelatge de dominis

En paraules senzilles, un CDS a SAP CAP produeix un model de domini de manera que defineix el problema empresarial en termes de claus, camps i anotacions. El codi per generar un model de domini s'escriu en un esquema CDS (db/schema.cds). Aquests models de domini es poden utilitzar en definicions de serveis, models de persistència, bases de dades o fins i tot reutilitzar-se dins d'un altre model de domini.

Exemple d'exemple:

Espai de noms empInfo; utilitzant {Currency, managed} des de '@sap/cds/common'; Empleats de l'entitat: gestionat { ID clau: Enter; nom: cadena localitzada (111); cognom: cadena localitzada (1111); gerent: Associació de Directius; data d'unió: Enter; sou: decimal (9,2); moneda: Moneda; }

 

En aquest exemple hem creat un fitxer schema.cds on hem creat una entitat Employees que inclou detalls bàsics d'un Employee

A tot aquest esquema se li ha donat un espai de noms, és a dir, empInfo

Aquest esquema utilitza un tipus de dades estàndard, és a dir, Moneda. L'ús del tipus de dades estàndard com aquest ens ajuda a aportar totes les ajudes de valors predefinits relacionades amb ell.

Utilitzem CDS per crear un model. En aquest CDS, fem servir

  1. Entitats per representar un conjunt d'objectes únics, per exemple:
    1. Informació bàsica de l'empleat
    2. Informació de comunicació dels empleats
    3. Informació salarial dels empleats
  2. Associacions per definir relacions
    1. Associació de Gestors a una altra entitat Gestor que tindrà tota la llista de Gestors

Convenció de denominació i recomanacions

  1. El nom de l'entitat ha de començar amb una lletra majúscula i ha de ser llegible per l'home i s'explica per si mateix (per exemple, empleats).
  2. Comenceu els elements amb una lletra minúscula, per exemple, nom
  3. Es recomana utilitzar la forma plural d'entitats, per exemple, Empleats
  4. Es recomana utilitzar una forma singular de tipus, per exemple, Moneda
  5. no repeteixis contextos, per exemple, Employees.name en lloc de Employees.EmployeeName
  6. preferiu noms d'una sola paraula, per exemple, salari en comptes de salariAmount
  7. utilitzeu l'identificador per a les claus primàries tècniques, per exemple, l'identificador per a l'identificador de l'empleat
  8. Podeu utilitzar l'espai de noms per fer que les vostres entitats siguin úniques. És com el concepte de client a SAP on podeu tenir esquemes duplicats (fitxers cds) amb un espai de noms únic per diferenciar-los. Els espais de noms són opcionals, feu servir espais de noms si els vostres models es poden reutilitzar en altres projectes. Al final, només són prefixos, que s'apliquen automàticament a tots els noms rellevants d'un fitxer. - per exemple,

portàtil d'espai de noms;entitat Dell {}

..… equival a:

portàtil d'entitat. Dell {}

  1. Podeu utilitzar contextos per a seccions d'espai de noms imbricades. - per exemple,

portàtil d'espai de noms;entitat Dell {}           //> portàtil.Dellcontext Apple { entitat MacBookPro {}       //> portàtil.Apple.MacBookPro     entitat MacBookAir {} }

 

Entitats

Les entitats són com taules amb claus primàries. Podem realitzar operacions CRUD utilitzant aquestes entitats. Mantingueu-lo el més pla possible. No ho normalitzis massa. No utilitzeu tipus no reutilitzables. Aquesta secció és només per al modelatge, només s'han d'afegir anotacions relacionades amb camps individuals i no s'han d'afegir detalls tècnics (lògics).

Tipus

Els tipus són com el domini a SAP ABAP, que solia definir l'escriptura dels elements de dades.

Aspectes

Els aspectes són les extensions dels Models i s'utilitzen principalment per ampliar les definicions i anotacions existents. Un cop definit un model, podem utilitzar diferents fitxers de CD (Aspecte) per afegir-hi anotacions per a una tasca específica.

Per exemple-

  • cds- el vostre model de domini principal, net, senzill i entenedor
  • audit-model.cds– afegeix camps addicionals necessaris per a l'auditoria en un fitxer
  • auth-model.cds– afegeix anotacions per a l'autorització.

Claus primàries

Igual que les taules i els CDS a SAP ABAP, mantenim les claus primàries per a l'entitat mitjançant la paraula clau clau

Una clau primària es pot reutilitzar en tot el model utilitzant la metodologia de definicions comunes.

Podem crear un model common.cds on es puguin emmagatzemar totes les definicions comunes.

// definicions comunes

entitat StandardEntity { ID de clau: UUID; } Ara aquestes definicions comunes es poden reutilitzar de la següent manera: utilitzant { StandardEntity } de './common'; entitat Empleat: StandardEntity { nom: String; ... } gestor d'entitats : StandardEntity { nom : String; ...}

 

El fitxer comú ja està creat per defecte amb una entitat predefinida anomenada cuid.

Mapeig d'UUID a OData

CDS mapeja els UUID a Edm.Guid, per defecte, en tots els models OData. Tanmateix, l'estàndard OData estableix regles restrictives per als valors Edm.Guid (per exemple, només es permeten les cadenes amb guionet), que poden entrar en conflicte amb les dades existents. Per tant, permetem que el mapeig predeterminat es substitueixi de la manera següent:

Llibres d'entitat {

ID de clau: UUID @odata.Type:'Edm.String';

...

}

Si cal, també podeu afegir l'anotació @odata.MaxLength per anul·lar la propietat corresponent.

Associació

S'utilitza per definir la relació entre dues entitats. Com ABAP CDS, aquí també fem servir la paraula Associació. Aquí, la paraula clau molts indica a 0..* cardinalitat. Les restriccions de cardinalitat es poden afegir com a restricció (on condició), per exemple, utilitzant no nul·la.

Composicions

A diferència de l'Associació on associem un camp d'entitat amb els objectes d'una entitat sencera, les composicions només fan referència a un camp específic d'una altra entitat. Té un avantatge addicional d'operacions profundes autogestionades (inserció/actualització) i supressió en cascada (supressió de taula multidependent).

// Defineix comandes amb OrderItems contingutsentitat Orders { ID de clau: UUID; Items : composició de molts Order_Items a Items.parent=$self;}entitat Order_Items { // només s'hi pot accedir mitjançant Comandes  pare clau: Associació d'Ordres; llibre clau: Associació al Llibre; quantitat: enter;}

Bones pràctiques

  1. No afegiu detalls tècnics a Models, nosaltres fem servir Aspectesper això
  2. ús noms curts  models plans senzills
  3. No normalitzeu massa les entitats dels models
  4. Utilitzeu seqüències d'enters locals si realment tracteu amb càrregues i volums elevats. En cas contrari, preferiu els UUID

Fins ara el que hem après: Creació de Model i Aspectes a sobre.

Modelatge de dominis en SAP CAP

Deixa un comentari

Aquest lloc utilitza Akismet per reduir el correu no desitjat. Esbrineu com es processa el vostre comentari.