Immudellar tad-Dominju fis-SAP CAP

introduzzjoni

Mudell ta' Dominju f'SAP CAP huwa mudell li jiddeskrivi l-aspetti statiċi relatati mad-dejta ta' dominju problematiku f'termini ta' mudelli ta' relazzjoni ta' entità. F'dan l-artikolu ser nistudjaw id-Dominju Modeling f'SAP CAP fid-dettall.

Immudellar tad-Dominju

Fi kliem sempliċi, CDS f'SAP CAP jipproduċi mudell ta 'dominju b'tali mod li jiddefinixxi l-problema tan-negozju f'termini ta' ċwievet, oqsma u annotazzjonijiet. Il-kodiċi biex jiġġenera mudell tad-dominju huwa miktub fi skema CDS (db/schema.cds). Dawn il-mudelli tad-dominju jistgħu jintużaw f'Definizzjonijiet ta' Servizz, Mudelli ta' Persistenza, Databases jew saħansitra jerġgħu jintużaw f'mudell ta' dominju ieħor.

Eżempju tal-Kampjun:

Ispazju tal-isem empInfo; bl-użu ta' {Currency, managed} minn '@sap/cds/common'; entità Impjegati: amministrati { key ID: Integer; firstName: String lokalizzat (111); lastName: String lokalizzat (1111); maniġer: Assoċjazzjoni għall-Maniġers; dataofJoining: Integer; salarju: Deċimali (9,2); munita: Munita; }

 

F'dan l-eżempju ħloqna fajl schema.cds fejn ħloqna entità Impjegati li tinkludi dettalji bażiċi ta' Impjegat

Din l-iskema kollha ngħatat namespace jiġifieri empInfo

Din l-iskema tuża tip ta' dejta standard jiġifieri Munita. L-użu tat-tip ta 'dejta standard bħal dan jgħinna nġibu l-għajnuna kollha tal-valur predefiniti relatati magħha.

Aħna nużaw CDS biex noħolqu Mudell. F'dak is-CDS, nużaw

  1. Entitajiet biex jirrappreżentaw sett ta' oġġetti uniċi eż:
    1. Informazzjoni Bażika dwar l-Impjegat
    2. Informazzjoni dwar il-Komunikazzjoni tal-Impjegati
    3. Informazzjoni dwar is-Salarju tal-Impjegati
  2. Assoċjazzjonijiet biex jiddefinixxu relazzjonijiet
    1. Assoċjazzjoni tal-Maniġers lil entità oħra Manager li jkollha l-lista kollha tal-Managers

Konvenzjoni ta' Ismijiet u Rakkomandazzjonijiet

  1. L-isem tal-entità għandu jibda b’ittra kapitali u għandu jkun jista’ jinqara mill-bniedem u jispjega lilu nnifsu – pereżempju, Impjegati
  2. Ibda l-elementi b'ittra żgħira - pereżempju, firstName
  3. Huwa rakkomandat li tuża forma plural ta' entitajiet – pereżempju, Impjegati
  4. Huwa rakkomandat li tuża forma singular ta 'tipi - per eżempju, Munita
  5. tirrepetix kuntesti – pereżempju, Employees.name minflok Employees.EmployeeName
  6. jippreferu ismijiet ta’ kelma waħda – pereżempju, salarju minflok salarjuAmount
  7. uża ID għal ċwievet primarji tekniċi – pereżempju, ID għall-ID tal-Impjegat
  8. Tista' tuża Namespace biex tagħmel l-entitajiet tiegħek uniċi. Huwa bħall-kunċett tal-klijent fis-SAP fejn jista 'jkollok skemi duplikati (fajls cds) bi Namespace uniku biex jiddifferenzjawhom. L-ispazji tal-isem huma fakultattivi, uża l-ispazji tal-isem jekk il-mudelli tiegħek jistgħu jerġgħu jintużaw fi proġetti oħra. Fl-aħħar tal-ġurnata huma biss prefissi, li jiġu applikati awtomatikament għall-ismijiet rilevanti kollha f'fajl. - pereżempju,

laptop namespace;entità Dell {}

..… huwa ekwivalenti għal:

laptop tal-entità.Dell {}

  1. Tista' tuża kuntesti għal sezzjonijiet tal-ispazji tal-ismijiet imnaqqsa. - pereżempju,

laptop namespace;entità Dell {}           //> laptop.Dellkuntest Apple { entità MacBookPro {}       //> laptop.Apple.MacBookPro     entità MacBookAir {} }

 

Entitajiet

L-entitajiet huma bħal tabelli b'ċwievet primarji. Nistgħu nwettqu operazzjoni CRUD billi nużaw dawn l-Entitajiet. Żommha ċatta kemm jista 'jkun. M'għandekx over Normalize dan. Tużax tipi li ma jistgħux jerġgħu jintużaw. Din it-taqsima hija biss għall-immudellar, għandha tiżdied biss annotazzjoni relatata ma' oqsma individwali u m'għandhom jiżdiedu l-ebda dettalji tekniċi (loġika).

Tipi

It-tipi huma bħal Dominju f'SAP ABAP, huwa użat biex jiddefinixxi l-ittajpjat ta 'elementi tad-Data.

aspetti

L-aspetti huma l-estensjonijiet tal-Mudelli u jintużaw prinċipalment biex jestendu d-definizzjonijiet u l-annotazzjonijiet eżistenti. Ladarba mudell jiġi definit, nistgħu nużaw fajls cds differenti (Aspect) biex inżidu annotazzjonijiet fuqhom għal kompitu speċifiku.

Pereżempju-

  • CDs– il-mudell tad-dominju ewlieni tiegħek, jinżamm nadif, sempliċi u li jinftiehem
  • audit-model.cds– iżid oqsma addizzjonali meħtieġa għall-awditjar f'fajl
  • awth-model.cds– iżid annotazzjonijiet għall-awtorizzazzjoni.

Ċwievet Primarji

Bħal tabelli u CDS f'SAP ABAP, aħna nżommu ċwievet Primarji għall-Entità billi tuża keyword ċavetta.

Ċavetta primarja tista' terġa' tintuża fil-mudell kollu billi tuża l-metodoloġija ta' definizzjonijiet komuni.

Nistgħu noħolqu Mudell common.cds fejn id-definizzjonijiet komuni kollha jistgħu jinħażnu.

// definizzjonijiet komuni

entità StandardEntity { ID taċ-ċavetta : UUID; } Issa dawn id-definizzjonijiet komuni jistgħu jerġgħu jintużaw kif hawn taħt: billi tuża { StandardEntity } minn './common'; entità Impjegat : StandardEntity { isem : String; ... } entità Manager : StandardEntity { isem : String; ...}

 

Il-fajl komuni huwa diġà maħluq awtomatikament b'entità predefinita msemmija cuid.

Immappjar ta' UUIDs għal OData

CDS jimmappa UUIDs għal Edm.Guid, b'mod awtomatiku, fil-mudelli OData kollha. Madankollu, l-istandard OData jpoġġi regoli restrittivi għall-valuri Edm.Guid - pereżempju, huma permessi biss strings hyphenated - li jistgħu jikkonfliġġu mad-dejta eżistenti. Għalhekk, aħna nippermettu li l-immappjar default jiġi sostitwit kif ġej:

Kotba tal-entità {

ID taċ-ċavetta: UUID @odata.Tip:'Edm.String';

...

}

Jekk meħtieġ, tista 'wkoll iżżid l-annotazzjoni @odata.MaxLength biex tegħleb il-proprjetà korrispondenti, ukoll.

Assoċjazzjoni

Jintuża biex jiddefinixxi r-relazzjoni bejn żewġ entitajiet. Bħal ABAP CDS, hawnhekk ukoll nużaw il-kelma Assoċjazzjoni. Hawnhekk, il-kelma prinċipali ħafna tindika a 0..* kardinalità. Ir-restrizzjonijiet għall-kardinalità jistgħu jiżdiedu bħala restrizzjoni (fejn il-kundizzjoni) - pereżempju, bl-użu mhux null.

Kompożizzjonijiet

B'differenza Assoċjazzjoni fejn aħna nassoċjaw qasam ta 'entità ma' l-oġġetti ta 'entità sħiħa, il-kompożizzjonijiet jirreferu biss għal qasam speċifiku ta' entità oħra. Għandu vantaġġ żejjed ta 'operazzjonijiet profondi ġestiti lilhom infushom (Daħħal/Aġġornament) u tħassir kaskata (tħassir ta' tabella Dipendenti Multi).

// Iddefinixxi l-Ordnijiet b'OrdnItems kontenutientità Ordnijiet { ID taċ-ċavetta : UUID; Oġġetti : Kompożizzjoni ta' ħafna Order_Items fuq Items.parent=$self;}entity Order_Items { // għandu jkun aċċessat permezz ta' Ordnijiet biss  ġenitur ewlieni: Assoċjazzjoni għall-Ordnijiet; ktieb ewlieni : Assoċjazzjoni għall-Kotba; kwantità: Integer;}

L-Aħjar Prattiki

  1. Iżżidx dettalji tekniċi fil-Mudelli, nużaw aspettigħal dik
  2. użu ismijiet qosramudelli ċatti sempliċi
  3. Tinnormalizzax wisq l-entitajiet fil-Mudelli
  4. Uża sekwenzi interi lokali jekk verament tittratta tagħbijiet u volumi għoljin. Inkella, tippreferi UUIDs

S'issa dak li tgħallimna: Ħolqien ta 'Mudell u Aspetti fuqu .

Immudellar tad-Dominju fis-SAP CAP

Ħalli kumment

Dan is-sit juża Akismet biex inaqqas l-ispam. Tgħallem kif il-kumment tiegħek huwa pproċessat.