Modelowanie domeny w SAP CAP

Wprowadzenie

Model domeny w SAP CAP to model opisujący statyczne, związane z danymi aspekty domeny problemowej w kategoriach modeli relacji encji. W tym artykule szczegółowo omówimy modelowanie domen w SAP CAP.

Modelowanie domeny

Mówiąc prościej, CDS w SAP CAP tworzy model domeny w taki sposób, że definiuje problem biznesowy w zakresie kluczy, pól i adnotacji. Kod generujący model domeny jest napisany w schemacie CDS (db/schema.cds). Te modele domen mogą być używane w definicjach usług, modelach trwałości, bazach danych, a nawet ponownie w innym modelu domeny.

Przykładowy przykład:

Przestrzeń nazw empInfo; przy użyciu {Currency, managed} z '@sap/cds/common'; podmiot Pracownicy: zarządzany { ID klucza: Integer; imię: zlokalizowany ciąg (111); nazwisko: zlokalizowane String (1111); kierownik: Stowarzyszenie Menedżerów; data przyłączenia: liczba całkowita; wynagrodzenie: Dziesiętne (9,2); waluta: waluta; }

 

W tym przykładzie stworzyliśmy plik schema.cds, w którym utworzyliśmy encję Pracownicy, która zawiera podstawowe dane pracownika

Cały ten schemat otrzymał przestrzeń nazw, tj. empInfo

Ten schemat wykorzystuje standardowy typ danych, tj. Waluta. Korzystanie ze standardowego typu danych, takiego jak ten, pomaga nam uzyskać wszystkie wstępnie zdefiniowane wartości, które są z nim powiązane.

Używamy CDS do stworzenia Modelu. W tym CDS używamy

  1. Encje reprezentujące zbiór unikalnych obiektów, np.:
    1. Podstawowe informacje o pracowniku
    2. Informacje dotyczące komunikacji z pracownikami
    3. Informacje o wynagrodzeniu pracownika
  2. Asocjacje do definiowania relacji
    1. Powiązanie menedżera z innym podmiotem Menedżer, który będzie posiadał listę wszystkich menedżerów

Konwencja nazewnictwa i zalecenia

  1. Nazwa podmiotu powinna zaczynać się z dużej litery i być czytelna dla człowieka i oczywista – np. Pracownicy
  2. Zacznij elementy od małej litery – na przykład imię
  3. Zaleca się stosowanie liczby mnogiej podmiotów – np. Pracownicy
  4. Zaleca się stosowanie liczby pojedynczej typów – np. Waluta
  5. nie powtarzaj kontekstów — na przykład Employees.name zamiast Employees.EmployeeName
  6. preferuj nazwy jednowyrazowe – na przykład pensja zamiast pensjaKwota
  7. użyj identyfikatora dla technicznych kluczy podstawowych – na przykład identyfikatora dla identyfikatora pracownika
  8. Możesz użyć przestrzeni nazw, aby Twoje jednostki były unikatowe. Przypomina to koncepcję klienta w SAP, w której można mieć zduplikowane schematy (pliki cds) z unikalną przestrzenią nazw, aby je odróżnić. Przestrzenie nazw są opcjonalne, użyj przestrzeni nazw, jeśli Twoje modele mogą być ponownie użyte w innych projektach. Na koniec dnia są tylko prefiksami, które są automatycznie stosowane do wszystkich odpowiednich nazw w pliku. - na przykład,

laptop z przestrzenią nazw;jednostka Dell {}

..… jest równa:

podmiot laptop.Dell {}

  1. Możesz użyć kontekstów dla zagnieżdżonych sekcji przestrzeni nazw. - na przykład,

laptop z przestrzenią nazw;jednostka Dell {}           //> laptop.Dellkontekst Apple { podmiot MacBookPro {}       //> laptop.Apple.MacBookPro     podmiot MacBookAir {} }

 

podmioty

Encje są jak tabele z kluczami podstawowymi. Za pomocą tych Jednostek możemy wykonać operację CRUD. Trzymaj go tak płasko, jak to możliwe. Nie przesadzaj z normalizacją. Nie używaj typów jednorazowych. Ta sekcja jest przeznaczona tylko do modelowania, należy dodawać tylko adnotacje dotyczące poszczególnych pól i nie należy dodawać żadnych szczegółów technicznych (logiki).

rodzaje

Typy są jak Domena w SAP ABAP, służy do definiowania typu elementów danych.

techniczne

Aspekty są rozszerzeniami modeli i służą głównie do rozszerzenia istniejących definicji i adnotacji. Po zdefiniowaniu modelu możemy użyć różnych plików cds (Aspekt), aby dodać do nich adnotacje dotyczące określonego zadania.

Na przykład-

  • cds– Twój podstawowy model domeny, utrzymany w czystości, prosty i zrozumiały
  • audyt-model.cds– dodaje dodatkowe pola wymagane do audytu w pliku
  • model-uwierzytelniania.cds– dodaje adnotacje do autoryzacji.

Klucze podstawowe

Podobnie jak tabele i CDS w SAP ABAP, utrzymujemy klucze podstawowe dla Entity za pomocą słowa kluczowego klawisz.

Klucz podstawowy można ponownie wykorzystać w całym modelu, korzystając z metodologii wspólnych definicji.

Możemy stworzyć model common.cds, w którym można przechowywać wszystkie wspólne definicje.

// wspólne definicje

podmiot StandardEntity { identyfikator klucza : UUID; } Teraz te wspólne definicje mogą być ponownie użyte, jak poniżej: using { StandardEntity } z './common'; podmiot Pracownik : StandardEntity { name : String; ... } entity Manager : StandardEntity { name : String; ... }

 

Wspólny plik jest już tworzony domyślnie z predefiniowaną encją o nazwie Cuid.

Mapowanie identyfikatorów UUID na OData

CDS domyślnie mapuje identyfikatory UUID do Edm.Guid we wszystkich modelach OData. Jednak standard OData wprowadza restrykcyjne reguły dla wartości Edm.Guid – na przykład dozwolone są tylko dzielone ciągi – które mogą kolidować z istniejącymi danymi. Dlatego zezwalamy na nadpisanie domyślnego mapowania w następujący sposób:

podmiot Książki {

identyfikator klucza: UUID @dane.Typ:'Edm.String';

...

}

W razie potrzeby możesz również dodać adnotację @odata.MaxLength, aby zastąpić również odpowiednią właściwość.

Stowarzyszenie

Służy do definiowania relacji między dwoma podmiotami. Podobnie jak ABAP CDS, tutaj również używamy słowa Stowarzyszenie. Tutaj słowo kluczowe wiele wskazuje a 0..* kardynalność. Ograniczenia dla kardynalności można dodać jako ograniczenie (warunek gdzie) – na przykład używając Nie jest zerem.

Kompozycje

W przeciwieństwie do Stowarzyszenia, w którym kojarzymy pole encji z obiektami całej encji, kompozycje odwołują się po prostu do określonego pola innej encji. Ma dodatkową zaletę samozarządzających głębokich operacji (wstawianie/aktualizacja) i kaskadowego usuwania (usuwanie tabel z wieloma zależnościami).

// Zdefiniuj zamówienia z zawartymi pozycjami OrderItemjednostki Zamówienia { klucz ID : UUID; Items : Kompozycja wielu Order_Items na Items.parent=$self;}entity Order_Items { // jest dostępny tylko przez Zamówienia  kluczowy rodzic : Stowarzyszenie do Zakonów; księga kluczowa: Stowarzyszenie Książek; ilość : liczba całkowita;}

Najlepszych praktyk

  1. Nie dodawaj szczegółów technicznych w modelach, których używamy techniczneza to
  2. Zastosowanie krótkie imionaproste modele płaskie
  3. Nie przesadzaj Normalizuj bytów w modelach
  4. Użyj lokalnych sekwencji liczb całkowitych, jeśli naprawdę masz do czynienia z dużymi obciążeniami i objętościami. W przeciwnym razie preferuj identyfikatory UUID

Do tej pory dowiedzieliśmy się: Tworzenie modelu i aspektów na dodatek .

Modelowanie domeny w SAP CAP

Zostaw komentarz

Ta strona używa Akismet do redukcji spamu. Dowiedz się, jak przetwarzane są dane komentarza.