Modelovanie domén v SAP CAP

úvod

Doménový model v SAP CAP je model, ktorý popisuje statické aspekty problémovej domény súvisiace s údajmi z hľadiska modelov vzťahov medzi entitami. V tomto článku budeme podrobne študovať modelovanie domén v SAP CAP.

Modelovanie domén

Jednoducho povedané, CDS v SAP CAP vytvára doménový model takým spôsobom, že definuje obchodný problém z hľadiska kľúčov, polí a anotácií. Kód na generovanie modelu domény je napísaný v schéme CDS (db/schema.cds). Tieto doménové modely možno použiť v definíciách služieb, perzistentných modeloch, databázach alebo dokonca opätovne použiť v rámci iného modelu domény.

Vzorový príklad:

Menný priestor empInfo; pomocou {Currency, managed} z '@sap/cds/common'; entita Zamestnanci: managed { ID kľúča: Integer; krstné meno: lokalizovaný reťazec (111); priezvisko: lokalizovaný reťazec (1111); manažér: Združenie manažérom; dátum pripojenia: celé číslo; plat: Desatinné (9,2); mena: Mena; }

 

V tomto príklade sme vytvorili súbor schema.cds, kde sme vytvorili entitu Zamestnanci, ktorá obsahuje základné údaje o zamestnancovi

Celá táto schéma dostala menný priestor, tj empInfo

Táto schéma používa štandardný typ údajov, tj Mena. Použitie štandardného dátového typu, ako je tento, nám pomáha priniesť všetky preddefinované hodnoty, ktoré s tým súvisia.

Na vytvorenie modelu používame CDS. V tomto CDS používame

  1. Entity reprezentujúce množinu jedinečných objektov, napr.
    1. Základné informácie o zamestnancovi
    2. Informácie o komunikácii so zamestnancami
    3. Informácie o platoch zamestnancov
  2. Asociácie na definovanie vzťahov
    1. Priradenie manažéra k inej entite Manažér, ktorý bude mať zoznam všetkých manažérov

Dohovor o názvoch a odporúčania

  1. Názov entity by sa mal začínať veľkým písmenom a mal by byť pre človeka čitateľný a zrozumiteľný – napríklad Zamestnanci
  2. Prvky začnite malým písmenom – napríklad krstné meno
  3. Odporúča sa používať množné číslo entít – napríklad Zamestnanci
  4. Odporúča sa používať typy v jednotnom čísle – napríklad Mena
  5. neopakujte kontexty – napríklad Employees.name namiesto Employees.EmployeeName
  6. uprednostňujte jednoslovné názvy – napríklad plat namiesto platuSuma
  7. použite ID pre technické primárne kľúče – napríklad ID pre ID zamestnanca
  8. Na to, aby boli vaše entity jedinečné, môžete použiť priestor názvov. Je to ako koncept klienta v systéme SAP, kde môžete mať duplicitné schémy (súbory cds) s jedinečným priestorom názvov na ich rozlíšenie. Priestory názvov sú voliteľné. Ak by sa vaše modely mohli opätovne použiť v iných projektoch, použite priestory názvov. Na konci dňa sú to len predpony, ktoré sa automaticky aplikujú na všetky relevantné mená v súbore. - napríklad,

menný priestor laptop;entita Dell {}

... je ekvivalentné:

entita laptop.Dell {}

  1. Môžete použiť kontexty pre vnorené sekcie menného priestoru. - napríklad,

menný priestor laptop;entita Dell {}           //> laptop.Dellkontext Apple { entita MacBookPro {}       //> laptop.Apple.MacBookPro     entita MacBookAir {} }

 

entity

Entity sú ako tabuľky s primárnymi kľúčmi. Pomocou týchto entít môžeme vykonávať operácie CRUD. Udržujte ho čo najrovnejší. Neprekračujte normalizáciu. Nepoužívajte jednorazové typy. Táto časť slúži len na modelovanie, mali by sa pridať iba anotácie týkajúce sa jednotlivých polí a nemali by sa pridávať žiadne technické detaily (logiky).

Typy

Typy sú ako doména v SAP ABAP, používa sa na definovanie typovaných dátových prvkov.

aspekty

Aspekty sú rozšíreniami modelov a používajú sa hlavne na rozšírenie existujúcich definícií a anotácií. Keď je model definovaný, môžeme použiť rôzne súbory cds (Aspect) na pridanie anotácií pre konkrétnu úlohu.

Napríklad-

  • cds– model vašej hlavnej domény, udržiavaný čistý, jednoduchý a zrozumiteľný
  • audit-model.cds– pridáva ďalšie polia potrebné na auditovanie v súbore
  • auth-model.cds– pridáva anotácie na autorizáciu.

Primárne kľúče

Rovnako ako tabuľky a CDS v SAP ABAP udržiavame primárne kľúče pre entitu pomocou kľúčového slova Kľúč.

Primárny kľúč možno opätovne použiť v modeli pomocou metodológie spoločných definícií.

Môžeme vytvoriť model common.cds, kde môžu byť uložené všetky bežné definície.

// bežné definície

entity StandardEntity { ID kľúča : UUID; } Teraz môžu byť tieto bežné definície znovu použité, ako je uvedené nižšie: using { StandardEntity } z './common'; entita Zamestnanec : StandardEntity { meno : String; ... } Správca entity : StandardEntity { meno : String; ... }

 

Spoločný súbor je už štandardne vytvorený s preddefinovanou entitou s názvom cuid.

Mapovanie UUID na OData

CDS štandardne mapuje UUID na Edm.Guid vo všetkých modeloch OData. Štandard OData však stanovuje reštriktívne pravidlá pre hodnoty Edm.Guid – napríklad povolené sú len reťazce s pomlčkou – ktoré môžu byť v konflikte s existujúcimi údajmi. Preto umožňujeme prepísať predvolené mapovanie takto:

entity Books {

ID kľúča: UUID @odata.Typ:'Edm.String';

...

}

V prípade potreby môžete pridať aj anotáciu @odata.MaxLength, aby ste prepísali aj príslušnú vlastnosť.

Združenie

Používa sa na definovanie vzťahu medzi dvoma entitami. Podobne ako ABAP CDS, aj tu používame slovo Združenie. Tu je kľúčové slovo veľa označuje a 0..* kardinalita. Obmedzenia pre mohutnosť možno pridať ako obmedzenie (kde podmienka) – napríklad pomocou nie je nulový.

Skladby

Na rozdiel od asociácie, kde spájame pole entity s objektmi celej entity, kompozície odkazujú len na konkrétne pole inej entity. Má ďalšiu výhodu samostatne spravovaných hĺbkových operácií (vloženie/aktualizácia) a kaskádové vymazanie (vymazanie viacerých závislých tabuliek).

// Definovanie objednávok s obsiahnutými položkami objednávkyentity Orders { ID kľúča : UUID; Items : Zloženie mnohých Order_Items na Items.parent=$self;}entita Order_Items { // budú prístupné iba cez Objednávky  kľúčový rodič: Asociácia k objednávkam; kľúčová kniha : Asociácia ku knihám; množstvo : celé číslo;}

osvedčené postupy

  1. Nepridávajte technické detaily do Modelov, ktoré používame my aspektypre to
  2. Použitie krátke menájednoduché ploché modely
  3. Neprekračujte normalizáciu entít v modeloch
  4. Ak skutočne riešite vysoké zaťaženie a objemy, použite lokálne celočíselné sekvencie. V opačnom prípade uprednostňujte UUID

Doteraz sme sa naučili: Vytváranie modelu a jeho aspektov.

Modelovanie domén v SAP CAP

Zanechať komentár

Táto stránka používa Akismet na zníženie spamu. Zistite, ako sa spracúvajú údaje vašich komentárov.