Modèl domèn nan SAP CAP

entwodiksyon

Yon Modèl Domèn nan SAP CAP se yon modèl ki dekri aspè estatik ki gen rapò ak done nan yon domèn pwoblèm an tèm de modèl antite-relasyon. Nan atik sa a nou pral etidye modèl domèn nan SAP CAP an detay.

Modèl domèn

Nan mo senp, yon CDS nan SAP CAP pwodui modèl domèn nan yon fason ke li defini pwoblèm biznis la an tèm de kle, jaden ak anotasyon. Kòd pou jenere yon modèl domèn ekri nan yon chema CDS (db/schema.cds). Modèl domèn sa yo ka itilize nan Definisyon Sèvis, Modèl Persistance, Baz done oswa menm itilize ankò nan yon lòt modèl domèn.

Egzanp Egzanp:

Espas non empInfo; lè l sèvi avèk {Currency, managed} soti nan '@sap/cds/common'; Entity Anplwaye: managed { kle ID: Enteger; firstName: lokalize String (111); siyati: lokalize String (1111); manadjè: Asosyasyon Manadjè; dateofJoining: nonb antye relatif; salè: Desimal (9,2); lajan: Lajan; }

 

Nan egzanp sa a nou te kreye yon fichye schema.cds kote nou te kreye yon antite Anplwaye ki gen ladann detay debaz yon Anplwaye.

Tout chema sa a te bay yon namespace sa vle di empInfo

Schema sa a itilize yon kalite done estanda sa vle di Lajan. Sèvi ak kalite done estanda tankou sa a ede nou pote tout valè predefini ede ki gen rapò ak li.

Nou itilize CDS pou kreye yon Modèl. Nan CDS sa a, nou itilize

  1. Antite ki reprezante yon seri objè inik tankou:
    1. Enfòmasyon de baz anplwaye yo
    2. Enfòmasyon sou Kominikasyon Anplwaye
    3. Enfòmasyon sou Salè Anplwaye yo
  2. Asosyasyon yo defini relasyon yo
    1. Manadjè asosyasyon bay yon lòt Manadjè antite ki pral gen tout lis Manadjè yo

Konvansyon nonmen ak rekòmandasyon

  1. Non antite a ta dwe kòmanse ak yon lèt majiskil epi li ta dwe lizib pou moun ak pwòp tèt ou-eksplikasyon - pou egzanp, Anplwaye.
  2. Kòmanse eleman ak yon lèt miniskil - pou egzanp, firstName
  3. Li rekòmande pou itilize fòm pliryèl nan antite - pou egzanp, Anplwaye
  4. Li rekòmande yo sèvi ak fòm sengilye nan kalite - pou egzanp, Lajan
  5. pa repete kontèks – pou egzanp, Employees.name olye de Employees.EmployeeName
  6. prefere non yon sèl mo - pou egzanp, salary olye de salaryAmount
  7. itilize ID pou kle prensipal teknik - pou egzanp, ID pou ID anplwaye
  8. Ou ka itilize Namespace pou fè antite ou yo inik. Se tankou konsèp kliyan nan SAP kote ou ka gen chema kopi (fichye CD) ak Namespace inik pou diferansye yo. Espas non yo opsyonèl, sèvi ak espas non si modèl ou yo ta ka reyitilize nan lòt pwojè. Nan fen jounen an, yo jis prefiks, ki otomatikman aplike nan tout non ki enpòtan nan yon dosye. - pa egzanp,

laptop espas non;entité Dell {}

..… ekivalan a:

laptop antite.Dell {}

  1. Ou ka itilize kontèks pou seksyon espas non anbrike. - pa egzanp,

laptop espas non;entité Dell {}           //> laptop.Dellkontèks Apple { antite MacBookPro {}       //> laptop.Apple.MacBookPro     antite MacBookAir {} }

 

Antite yo

Antite yo tankou tab ak kle prensipal yo. Nou ka fè operasyon CRUD lè l sèvi avèk antite sa yo. Kenbe li plat ke posib. Pa twò nòmalize li. Pa sèvi ak kalite ki pa ka itilize ankò. Seksyon sa a se sèlman pou modèl, se sèlman annotasyon ki gen rapò ak jaden endividyèl yo ta dwe ajoute epi pa gen okenn detay teknik (lojik) ta dwe ajoute.

Kalite

Kalite yo tankou Domèn nan SAP ABAP, li itilize pou defini eleman Done yo tape.

Aspè yo

Aspè yo se ekstansyon yo nan Modèl yo epi yo sitou itilize pou pwolonje definisyon ki egziste deja ak anotasyon yo. Yon fwa yo defini yon modèl, nou ka itilize diferan dosye CD (Aspè) pou ajoute annotasyon sou yo pou travay espesifik.

Pa egzanp-

  • CD– modèl domèn debaz ou a, kenbe pwòp, senp ak konprann
  • audit-model.cds– ajoute lòt jaden ki nesesè pou odit nan yon dosye
  • auth-model.cds– ajoute annotations pou otorizasyon.

Kle Prensipal

Tankou tab ak CDS nan SAP ABAP, nou kenbe kle prensipal pou Entity lè l sèvi avèk mo kle kle.

Yon kle prensipal ka reyitilize atravè modèl la lè w itilize metodoloji definisyon komen yo.

Nou ka kreye yon modèl common.cds kote tout definisyon komen yo ka estoke.

// definisyon komen

entity StandardEntity { ID kle : UUID; } Koulye a, definisyon komen sa yo ka reyitilize jan pi ba a: lè l sèvi avèk { StandardEntity } soti nan './common'; entity Employee : StandardEntity { non : String; ... } entity Manager : StandardEntity { non : String; ...}

 

Fichye komen an deja kreye pa default ak yon antite predefini yo te rele kid.

Kat UUID yo nan OData

CDS kat UUID yo nan Edm.Guid, pa default, nan tout modèl OData yo. Sepandan, estanda OData a mete règ restriksyon pou valè Edm.Guid - pou egzanp, se sèlman strings ki gen dwa - ki ka konfli ak done ki egziste deja. Se poutèt sa, nou pèmèt kat default yo dwe pase sou plas jan sa a:

liv antite {

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

...

}

Si sa nesesè, ou ka ajoute tou anotasyon @odata.MaxLength pou pase sou plas pwopriyete ki koresponn lan tou.

Asosyasyon

Yo itilize li pou defini relasyon ant de antite. Menm jan ak ABAP CDS, isit la tou nou itilize mo a Asosyasyon. Isit la, mo kle a anpil endike yon 0.* kardinalite. Restriksyon yo pou kardinalite ka ajoute kòm yon kontrent (kote kondisyon) - pou egzanp, lè l sèvi avèk pa nil.

Konpozisyon

Kontrèman ak Asosyasyon kote nou asosye yon jaden antite ak objè yo nan yon antite antye, konpozisyon yo jis refere a jaden espesifik nan yon lòt antite. Li gen avantaj siplemantè nan operasyon gwo twou san fon oto-jere (Insert / Mizajou) ak sipresyon kaskad (spresyon tab depandan milti).

// Defini Lòd ak atik OrderItemsEntity Orders { ID kle : UUID; Atik : Konpozisyon anpil Order_Items sou Items.parent=$self;}entity Order_Items { // dwe jwenn aksè nan Lòd sèlman  paran kle: Association to Orders; liv kle: Association to Books; kantite: nonb antye relatif;}

Meyè Pratik

  1. Pa ajoute detay teknik nan Modèl, nou itilize Aspè yopou sa
  2. Sèvi ak non kout ak modèl plat senp
  3. Pa twò nòmalize antite yo nan Modèl
  4. Sèvi ak sekans nonb antye relatif yo si ou reyèlman fè fas ak gwo chaj ak volim. Sinon, prefere UUID yo

Jiska kounye a sa nou te aprann: Kreyasyon Modèl ak Aspè sou tèt li.

Modèl domèn nan SAP CAP

Kite yon kòmantè

Sit sa a sèvi ak Akismet diminye Spam. Aprann kijan kòmantè ou a trete.