Modeliranje domena 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 domena u SAP CAP-u.

Domain Modeling

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 je napisan u CDS šemi (db/schema.cds). Ovi modeli domena se mogu koristiti u definicijama usluga, modelima postojanosti, bazama podataka ili čak ponovo koristiti u okviru drugog modela domene.

Primjer primjera:

Imenski prostor empInfo; koristeći {Currency, managed} iz '@sap/cds/common'; entitet Zaposleni: upravljani { ID ključa: Integer; ime: lokalizirani niz (111); prezime: lokalizirani niz (1111); menadžer: Udruženje menadžerima; dateofJoining: Integer; plata: Decimala (9,2); valuta: Valuta; }

 

U ovom primjeru kreirali smo datoteku schema.cds u kojoj smo kreirali entitet Employees koji uključuje osnovne detalje o zaposleniku

Cijela ova šema je dobila imenski prostor, tj. empInfo

Ova šema koristi standardni tip podataka, tj. Valuta. Korišćenje standardnog tipa podataka kao što je ovaj pomaže nam da donesemo sve unapred definisane vrednosti pomoći koje se odnose na njega.

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

  1. Entiteti koji predstavljaju skup jedinstvenih objekata npr.:
    1. Osnovne informacije o zaposlenima
    2. Informacije o komunikaciji zaposlenika
    3. Informacije o plaći zaposlenih
  2. Asocijacije za definiranje odnosa
    1. Povezivanje menadžera sa drugim entitetom Menadžer koji će imati svu listu menadžera

Konvencija o imenovanju i preporuke

  1. Naziv subjekta treba da počinje velikim slovom i treba da bude čitljiv i razumljiv samo po sebi – na primer, Zaposleni
  2. Počnite elemente malim slovom – na primjer, ime
  3. Preporučuje se upotreba oblika množine entiteta – na primjer, Zaposleni
  4. Preporučuje se upotreba 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, salary umjesto salaryAmount
  7. koristite ID za tehničke primarne ključeve – na primjer, ID za ID zaposlenika
  8. Možete koristiti Namespace da svoje entitete učinite jedinstvenim. To je poput koncepta klijenta u SAP-u gdje možete imati duplicirane šeme (cds datoteke) s jedinstvenim prostorom imena kako biste ih razlikovali. Imenski prostori su opcioni, koristite prostore imena ako se vaši modeli mogu ponovo koristiti u drugim projektima. Na kraju dana to su samo prefiksi, koji se automatski primjenjuju na sva relevantna imena u datoteci. - na primjer,

imenski laptop; entitet Dell {}

..… je ekvivalentno:

entitetski laptop.Dell {}

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

imenski laptop; entitet Dell {}           //> laptop.Dellkontekst Apple { entitet MacBookPro {}       //> laptop.Apple.MacBookPro     entitet MacBookAir {} }

 

Entiteti

Entiteti su kao tabele sa primarnim ključevima. Možemo izvršiti CRUD operaciju koristeći ove entitete. Neka bude što ravnija. Nemojte ga pretjerati sa normalizacijom. Nemojte koristiti tipove koji se ne mogu višekratno koristiti. Ovaj odjeljak je samo za modeliranje, treba dodati samo napomene koje se odnose na pojedinačna polja i ne treba dodati tehničke detalje (logike).

tipovi

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

Aspekti

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

Na primjer-

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

Primarni ključevi

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

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

Možemo kreirati 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 ponovo koristiti na sljedeći način: korištenje { StandardEntity } iz './common'; entitet Zaposlenik : StandardEntity { ime : String; ... } Upravitelj entiteta : StandardEntity { ime : String; ... }

 

Zajednička datoteka je već kreirana po defaultu s unaprijed definiranim entitetom pod nazivom cuid.

Mapiranje UUID-a 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, dozvoljeni su samo nizovi sa crticom – koja mogu biti u sukobu s postojećim podacima. Stoga dozvoljavamo da se zadano mapiranje poništi na sljedeći način:

entitetske knjige {

ID ključa: UUID @odata.Type:'Edm.String';

...

}

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

asocijacija

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

kompozicije

Za razliku od Asocijacije gdje polje entiteta povezujemo sa objektima cijelog entiteta, kompozicije se samo odnose na specifično polje drugog entiteta. Ima dodatnu prednost dubinskih operacija koje se samostalno upravljaju (Umetanje/ažuriranje) i kaskadno brisanje (Brisanje više ovisno o tablici).

// Definiraj narudžbe sa sadržanim stavkama narudžbeentitet Nalozi { ID ključa : UUID; Stavke : Sastav mnogih stavki_porudžbine na Items.parent=$self;}entitet Order_Items { // pristupit će se samo putem naloga  ključni roditelj : Povezivanje sa nalozima; ključna knjiga: Asocijacija na knjige; količina : Integer;}

Najbolje prakse

  1. Nemojte dodavati tehničke detalje u Modeli, mi koristimo Aspektiza to
  2. upotreba kratka imenajednostavni ravni modeli
  3. Ne pretjerujte sa normalizacijom entiteta u modelima
  4. Koristite lokalne cjelobrojne sekvence ako se zaista bavite velikim opterećenjem i volumenom. U suprotnom, preferirajte UUID-ove

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

Modeliranje domena u SAP CAP-u

Ostavite komentar

Ova stranica koristi Akismet kako bi smanjila neželjenu poštu. Saznajte kako se podaci vašeg komentara obrađuju.