Modelování domén v SAP CAP

Úvod

Doménový model v SAP CAP je model, který popisuje statické aspekty problémové domény související s daty z hlediska modelů vztahů mezi entitami. V tomto článku budeme podrobně studovat modelování domén v SAP CAP.

Modelování domén

Jednoduše řečeno, CDS v SAP CAP vytváří doménový model takovým způsobem, že definuje obchodní problém z hlediska klíčů, polí a anotací. Kód pro generování modelu domény je zapsán ve schématu CDS (db/schema.cds). Tyto doménové modely lze použít v definicích služeb, perzistentních modelech, databázích nebo dokonce znovu použít v rámci jiného modelu domény.

Ukázkový příklad:

jmenný prostor empInfo; pomocí {Currency, managed} z '@sap/cds/common'; entita Zaměstnanci: řízeno { ID klíče: Integer; jméno: lokalizovaný řetězec (111); příjmení: lokalizovaný řetězec (1111); manažer: Asociace manažerům; datum připojení: celé číslo; plat: Desetinný (9,2); měna: Měna; }

 

V tomto příkladu jsme vytvořili soubor schema.cds, kde jsme vytvořili entitu Zaměstnanci, která obsahuje základní údaje o zaměstnanci.

Celé toto schéma dostalo jmenný prostor, tj. empInfo

Toto schéma používá standardní datový typ, tj. Měna. Použití standardního datového typu, jako je tento, nám pomáhá přinést všechny předdefinované hodnoty, které s tím souvisí.

K vytvoření modelu používáme CDS. V tomto CDS používáme

  1. Entity reprezentující sadu jedinečných objektů, např.
    1. Základní informace o zaměstnanci
    2. Informace o komunikaci se zaměstnanci
    3. Informace o platu zaměstnance
  2. Asociace k definování vztahů
    1. Přidružení manažera k jiné entitě Manažer, který bude mít seznam všech manažerů

Konvence pojmenování a doporučení

  1. Název entity by měl začínat velkým písmenem a měl by být člověku čitelný a samovysvětlující – například Zaměstnanci
  2. Prvky začínejte malým písmenem – například jméno
  3. Doporučuje se používat množné číslo entit – například Zaměstnanci
  4. Doporučuje se používat typy v jednotném čísle – například Měna
  5. neopakujte kontexty – například Employees.name namísto Employees.EmployeeName
  6. preferujte jednoslovné názvy – například plat místo platČástka
  7. použijte ID pro technické primární klíče – například ID pro ID zaměstnance
  8. Pomocí Namespace můžete vytvořit jedinečné entity. Je to jako koncept klienta v SAP, kde můžete mít duplicitní schémata (soubory cds) s jedinečným jmenným prostorem, abyste je odlišili. Jmenné prostory jsou volitelné, použijte jmenné prostory, pokud by vaše modely mohly být znovu použity v jiných projektech. Na konci dne jsou to jen předpony, které se automaticky použijí na všechna relevantní jména v souboru. - například,

jmenný prostor laptop;entita Dell {}

..… je ekvivalentní:

entita laptop.Dell {}

  1. Můžete použít kontexty pro vnořené sekce jmenného prostoru. - například,

jmenný prostor laptop;entita Dell {}           //> laptop.Dellkontext Apple { entita MacBookPro {}       //> laptop.Apple.MacBookPro     entita MacBookAir {} }

 

Subjekty

Entity jsou jako tabulky s primárními klíči. Pomocí těchto entit můžeme provádět operace CRUD. Udržujte ji co nejrovnější. Nepřekračujte normalizaci. Nepoužívejte typy, které nelze znovu použít. Tato sekce je pouze pro modelování, měla by být přidána pouze anotace vztahující se k jednotlivým oborům a neměly by se přidávat žádné technické detaily (logiky).

Typ nemovitosti

Typy jsou jako doména v SAP ABAP, používá se k definování typovaných datových prvků.

Aspekty

Aspekty jsou rozšířením Modelů a používají se hlavně k rozšíření stávajících definic a anotací. Jakmile je model definován, můžeme použít různé soubory cds (Aspect) k přidání anotací pro konkrétní úlohu.

Například-

  • cds– model vaší hlavní domény, udržovaný čistý, jednoduchý a srozumitelný
  • audit-model.cds– přidá další pole požadovaná pro audit v souboru
  • auth-model.cds– přidává anotace pro autorizaci.

Primární klíče

Stejně jako tabulky a CDS v SAP ABAP udržujeme primární klíče pro entitu pomocí klíčového slova klíč.

Primární klíč lze v modelu znovu použít pomocí metodologie běžných definic.

Můžeme vytvořit model common.cds, kde lze uložit všechny běžné definice.

// běžné definice

entity StandardEntity { ID klíče : UUID; } Nyní lze tyto běžné definice znovu použít, jak je uvedeno níže: using { StandardEntity } z './common'; entity Zaměstnanec : StandardEntity { název : String; ... } Správce entity : StandardEntity { název : String; ... }

 

Společný soubor je již ve výchozím nastavení vytvořen s předdefinovanou entitou pojmenovanou cuid.

Mapování UUID na OData

CDS mapuje UUID na Edm.Guid ve výchozím nastavení ve všech modelech OData. Standard OData však stanoví omezující pravidla pro hodnoty Edm.Guid – například jsou povoleny pouze řetězce s pomlčkou – která mohou být v rozporu s existujícími daty. Proto umožňujeme přepsat výchozí mapování následovně:

entity knihy {

ID klíče: UUID @odata.Type:'Edm.String';

...

}

V případě potřeby můžete také přidat anotaci @odata.MaxLength a přepsat tak odpovídající vlastnost.

Sdružení

Používá se k definování vztahu mezi dvěma entitami. Stejně jako ABAP CDS i zde používáme slovo Sdružení. Zde klíčové slovo mnoho označuje a 0..* mohutnost. Omezení mohutnosti lze přidat jako omezení (kde podmínka) – například pomocí nenulový.

Skladby

Na rozdíl od Asociace, kde spojujeme pole entity s objekty celé entity, kompozice odkazují pouze na konkrétní pole jiné entity. Má další výhodu samořízených hlubokých operací (vložení/aktualizace) a kaskádového mazání (mazání více závislých tabulek).

// Definování objednávek s obsaženými položkami objednávkyentity Orders { ID klíče : UUID; Items : Složení mnoha Order_Items na Items.parent=$self;}entita Order_Items { // budou přístupné pouze prostřednictvím Objednávek  klíčový rodič: Asociace k objednávkám; klíčová kniha : Asociace ke knihám; množství : celé číslo;}

osvědčené postupy

  1. Nepřidávejte technické podrobnosti do Modelů, používáme Aspektypro které
  2. Použijte  krátká jména a  jednoduché ploché modely
  3. Nepřekračujte normalizaci entit v modelech
  4. Pokud opravdu řešíte vysoké zatížení a objemy, použijte místní celočíselné sekvence. Jinak preferujte UUID

Dosud jsme se naučili: Tvorba modelu a jeho aspektů.

Modelování domén v SAP CAP

Zanechat komentář

Tyto stránky používají Akismet k omezení spamu. Zjistěte, jak jsou vaše údaje komentářů zpracovávány.