Modeliranje domene u SAP CAP-u

Uvod

Model domene u SAP CAP-u je model koji opisuje statičke aspekte problematične domene povezane s podacima u smislu modela odnosa entiteta. U ovom članku ćemo detaljno proučiti modeliranje domene u SAP CAP-u.

Modeliranje domene

Jednostavnim riječima, CDS u SAP CAP-u proizvodi model domene na takav način da definira poslovni problem u smislu ključeva, polja i napomena. Kod za generiranje modela domene napisan je u CDS shemi (db/schema.cds). Ovi modeli domene mogu se koristiti u definicijama usluga, modelima postojanosti, bazama podataka ili čak ponovno koristiti unutar drugog modela domene.

Primjer primjera:

Imenski prostor empInfo; pomoću {Currency, managed} iz '@sap/cds/common'; entitet Zaposlenici: upravljano { ID ključa: cijeli broj; ime: lokalizirani niz (111); prezime: lokalizirani niz (1111); upravitelj: Udruženje menadžerima; datum pridruživanja: cijeli broj; plaća: Decimala (9,2); valuta: Valuta; }

 

U ovom primjeru stvorili smo datoteku schema.cds u kojoj smo kreirali entitet Zaposlenici koji uključuje osnovne podatke o zaposleniku

Cijela ova shema dobila je imenski prostor, tj. empInfo

Ova shema koristi standardni tip podataka, tj. Valuta. Korištenje standardnog tipa podataka poput ovog pomaže nam da donesemo sve unaprijed definirane vrijednosti koje se odnose na njega.

Koristimo CDS za izradu modela. U tom CDS-u koristimo

  1. Entiteti koji predstavljaju skup jedinstvenih objekata npr.:
    1. Osnovne informacije o zaposlenicima
    2. Informacije o komunikaciji zaposlenika
    3. Podaci o plaćama zaposlenika
  2. Asocijacije za definiranje odnosa
    1. Povezivanje upravitelja s drugim entitetom Upravitelj koji će imati popis svih upravitelja

Konvencija o imenovanju i preporuke

  1. Naziv subjekta trebao bi početi velikim slovom i trebao bi biti čitljiv i razumljiv samo po sebi – na primjer, Zaposlenici
  2. Počnite elemente s malim slovom – na primjer, ime
  3. Preporuča se korištenje oblika množine entiteta – na primjer, Zaposlenici
  4. Preporuča se korištenje oblika jednine - na primjer, Valuta
  5. nemojte ponavljati kontekste – na primjer, Employees.name umjesto Employees.EmployeeName
  6. preferirajte nazive od jedne riječi – na primjer, plaća umjesto salaryAmount
  7. koristite ID za tehničke primarne ključeve – na primjer, ID za ID zaposlenika
  8. Možete koristiti Namespace kako biste svoje entitete učinili jedinstvenim. To je poput koncepta klijenta u SAP-u gdje možete imati duplicirane sheme (cds datoteke) s jedinstvenim prostorom imena kako biste ih razlikovali. Prostori imena nisu obavezni, koristite prostore imena ako se vaši modeli mogu ponovno koristiti u drugim projektima. Na kraju dana to su samo prefiksi, koji se automatski primjenjuju na sva relevantna imena u datoteci. - na primjer,

imensko prijenosno računalo; entitet Dell {}

..… je ekvivalentno:

prijenosno računalo entiteta.Dell {}

  1. Možete koristiti kontekste za ugniježđene odjeljke prostora imena. - na primjer,

imensko prijenosno računalo; entitet Dell {}           //> laptop.Dellkontekst Apple { entitet MacBookPro {}       //> laptop.Apple.MacBookPro     entitet MacBookAir {} }

 

entiteti

Entiteti su poput tablica s primarnim ključevima. Možemo izvesti CRUD operaciju pomoću ovih entiteta. Neka bude što ravnija. Nemojte ga pretjerano normalizirati. Nemojte koristiti vrste koje se ne mogu višekratno koristiti. Ovaj odjeljak je samo za modeliranje, treba dodati samo bilješke vezane uz pojedina polja i ne smiju se dodavati tehnički detalji (logika).

Tipovi

Vrste su poput domene u SAP ABAP-u, koriste se za definiranje tipa podataka elemenata.

aspekti

Aspekti su proširenja modela i uglavnom se koriste za proširenje postojećih definicija i napomena. Nakon što je model definiran, možemo koristiti različite cds datoteke (Aspect) za dodavanje bilješki na njih za određeni zadatak.

Na primjer-

  • CD-ovi– vaš osnovni model domene, čist, jednostavan i razumljiv
  • audit-model.cds– dodaje dodatna polja potrebna za reviziju u datoteci
  • auth-model.cds– dodaje bilješke za autorizaciju.

Primarni ključevi

Poput tablica i CDS-a u SAP ABAP-u, održavamo primarne ključeve za entitet pomoću ključne riječi ključ.

Primarni ključ se može ponovno koristiti u modelu korištenjem metodologije uobičajenih definicija.

Možemo stvoriti zajednički.cds model gdje se mogu pohraniti sve uobičajene definicije.

// uobičajene definicije

entitet StandardEntity { ID ključa: UUID; } Sada se ove uobičajene definicije mogu ponovno koristiti na sljedeći način: korištenjem { StandardEntity } iz './common'; entitet Zaposlenik : StandardEntity { ime : String; ... } Upravitelj entiteta : StandardEntity { name : String; ... }

 

Zajednička datoteka je već stvorena prema zadanim postavkama s unaprijed definiranim entitetom pod nazivom cuid.

Mapiranje UUID-ova u OData

CDS mapira UUID-ove u Edm.Guid, prema zadanim postavkama, u svim OData modelima. Međutim, OData standard postavlja restriktivna pravila za vrijednosti Edm.Guid – na primjer, dopušteni su samo nizovi s crticom – koja mogu biti u sukobu s postojećim podacima. Stoga dopuštamo da se zadano mapiranje poništi na sljedeći način:

knjige entiteta {

ID ključa: UUID @odata.Upišite:'Edm.String';

...

}

Ako je potrebno, možete dodati i bilješku @odata.MaxLength da biste nadjačali i odgovarajuće svojstvo.

Udruženje

Koristi se za definiranje odnosa između dva entiteta. Poput ABAP CDS-a, i ovdje koristimo tu riječ Udruga. Evo, ključna riječ mnogi označava a 0..* kardinalnost. Ograničenja za kardinalnost mogu se dodati kao ograničenje (gdje uvjet) – na primjer, korištenjem nije null.

Sastavi

Za razliku od Asocijacije gdje polje entiteta povezujemo s objektima cijelog entiteta, kompozicije se odnose samo na specifično polje drugog entiteta. Ima dodatnu prednost dubokih operacija kojima se upravlja samostalno (umetanje/ažuriranje) i kaskadno brisanje (brisanje više ovisno o tablici).

// Definirajte narudžbe sa sadržanim stavkama narudžbeentitet Nalozi { ID ključa: UUID; Stavke : sastav mnogih stavki_narudžbe na Items.parent=$self;}entitet Stavke_porudžbine { // pristupit će se samo putem Narudžbi  ključni roditelj : Povezanost s narudžbama; ključna knjiga : Asocijacija na knjige; količina: cijeli broj;}

Najbolji primjeri iz prakse

  1. Nemojte dodavati tehničke detalje u Modeli, mi koristimo aspektiza to
  2. Koristiti kratkih imenajednostavni ravni modeli
  3. Nemojte pretjerano normalizirati entitete u modelima
  4. Koristite lokalne cjelobrojne sekvence ako stvarno imate posla s velikim opterećenjem i volumenom. Inače, radije UUID-ove

Do sada smo naučili: Kreiranje modela i aspekata povrh toga.

Modeliranje domene u SAP CAP-u

Ostavite komentar

Ova web stranica koristi Akismet za smanjenje neželjene pošte. Saznajte kako se podaci vašeg komentara obrađuju.