Моделирање на домен во SAP CAP

Вовед

Модел на домен во SAP CAP е модел кој ги опишува статичните аспекти поврзани со податоци на доменот на проблемот во однос на моделите за односи меѓу ентитетите. Во оваа статија детално ќе го проучуваме моделирањето на доменот во SAP CAP.

Моделирање на домен

Со едноставни зборови, CDS во SAP CAP произведува модел на домен на таков начин што го дефинира деловниот проблем во смисла на клучеви, полиња и прибелешки. Кодот за генерирање на модел на домен е напишан во шема на ЦДС (db/schema.cds). Овие модели на домени може да се користат во дефиниции за услуги, модели на упорност, бази на податоци или дури и повторно да се користат во друг модел на домен.

Примерок Пример:

Именски простор empInfo; користејќи {Currency, управувана} од „@sap/cds/common“; ентитет Вработени: управувани { ID на клуч: Цел број; ПрвоИме: локализирана низа (111); презиме: локализиран Стринг (1111); менаџер: Здружение на менаџери; датум на придружување: Цел број; плата: Децимална (9,2); валута: Валута; }

 

Во овој пример создадовме датотека schema.cds каде што создадовме ентитет Employees кој вклучува основни детали за вработен

Целата оваа шема доби именски простор, т.е. empInfo

Оваа шема користи стандарден тип на податоци, т.е. валута. Користењето на стандардниот тип на податоци како ова ни помага да ги донесеме сите претходно дефинирани помошни вредности поврзани со него.

Ние користиме CDS за да креираме модел. Во тој ЦДС користиме

  1. Ентитети за претставување на збир на уникатни објекти на пр.
    1. Основни информации за вработените
    2. Информации за комуникација на вработените
    3. Информации за платата на вработените
  2. Асоцијации за дефинирање на односите
    1. Асоцијација на менаџер со друг ентитет Менаџер кој ќе ја има целата листа на менаџери

Конвенција за именување и препораки

  1. Името на субјектот треба да започнува со голема буква и треба да биде читливо и самообјасниво - на пример, вработени
  2. Стартувајте ги елементите со мала буква - на пример, firstName
  3. Се препорачува да се користи множинска форма на ентитети - на пример, Вработени
  4. Се препорачува да се користи еднина форма на типови - на пример, валута
  5. не повторувај контексти - на пример, Employees.name наместо Employees.EmployeeName
  6. претпочитаат имиња со еден збор - на пример, плата наместо платаИзнос
  7. користете ID за технички примарни клучеви - на пример, ID за ID на вработени
  8. Можете да го користите Именскиот простор за да ги направите вашите ентитети уникатни. Тоа е како концепт на клиент во SAP каде што можете да имате дупликат шеми (cds-датотеки) со уникатен именски простор за да ги разликувате. Просторите со имиња се опционални, користете ги именските простори ако вашите модели може повторно да се користат во други проекти. На крајот на денот, тие се само префикси, кои автоматски се применуваат на сите релевантни имиња во датотеката. - на пример,

именски простор лаптоп;ентитет Dell {}

..… е еквивалентно на:

ентитет лаптоп.Dell {}

  1. Можете да користите контексти за вгнездени секции на именскиот простор. - на пример,

именски простор лаптоп;ентитет Dell {}           //> лаптоп.Dellконтекст Apple { ентитет MacBookPro {}       //> лаптоп.Apple.MacBookPro     ентитет MacBookAir {} }

 

Субјекти

Ентитетите се како табели со примарни клучеви. Можеме да извршиме операција CRUD користејќи ги овие ентитети. Чувајте го колку што е можно рамно. Не претерувајте го нормализирајте. Не користете типови кои не се повеќекратно употребливи. Овој дел е само за моделирање, треба да се додаде само прибелешка поврзана со поединечни полиња и да не се додаваат технички детали (логики).

Видови

Типовите се како домен во SAP ABAP, тој се користи за дефинирање на внесените елементи на податоци.

Аспекти

Аспектите се екстензии на Моделите и главно се користат за проширување на постоечките дефиниции и прибелешки. Откако ќе се дефинира моделот, можеме да користиме различни CD-датотеки (Aspect) за да додадеме прибелешки над нив за одредена задача.

На пример-

  • ЦД-а– моделот на вашиот основен домен, се одржува чист, едноставен и разбирлив
  • ревизија-модел.cds– додава дополнителни полиња потребни за ревизија во датотека
  • auth-model.cds– додава прибелешки за овластување.

Примарни клучеви

Како табели и CDS во SAP ABAP, ние ги одржуваме Примарните клучеви за Ентитетот користејќи клучен збор клучот.

Примарниот клуч може повторно да се користи низ моделот со користење на методологијата на заеднички дефиниции.

Можеме да создадеме заеднички.cds модел каде што може да се складираат сите заеднички дефиниции.

// заеднички дефиниции

ентитет StandardEntity { ID на клуч: UUID; } Сега овие вообичаени дефиниции може повторно да се користат како подолу: користејќи { StandardEntity } од './common'; ентитет Вработен : StandardEntity { име : Стринг; ... } ентитет Менаџер : StandardEntity { име : Низа; ...}

 

Заедничката датотека веќе е стандардно креирана со претходно дефиниран ентитет именуван куид.

Мапирање UUID на OData

CDS мапира UUID на Edm.Guid, стандардно, во сите модели на OData. Сепак, стандардот OData поставува рестриктивни правила за вредностите на Edm.Guid - на пример, дозволени се само низи со цртичка - што може да биде во конфликт со постоечките податоци. Затоа, дозволуваме стандардното мапирање да се отфрли на следниов начин:

ентитети Книги {

ID на клуч: UUID @odata.Тип:'Edm.String';

...

}

Доколку е потребно, можете да ја додадете и прибелешката @odata.MaxLength за да го отфрлите соодветното својство.

Здружението

Се користи за дефинирање на односот помеѓу два ентитета. Како ABAP CDS, и овде го користиме зборот Здружение. Еве, клучниот збор многу означува а 0..* кардиналност. Ограничувањата за кардиналност може да се додадат како ограничување (каде што е услов) - на пример, користење не нула.

Композиции

За разлика од Асоцијацијата каде што поврзуваме поле на ентитет со објекти на цел ентитет, композициите само се однесуваат на специфично поле на друг ентитет. Има дополнителна предност од самоуправуваните длабоки операции (Вметни/Ажурирај) и каскадно бришење (бришење на повеќе зависни табели).

// Дефинирајте нарачки со содржини OrderItemsентитет Нарачки { ID на клуч : UUID; Ставки : Состав од многу Order_Items на Items.parent=$self;}ентитет Order_Items { // ќе се пристапи само преку нарачки  клучен родител: Асоцијација за нарачки; клучна книга : Здружение на книги; количина : Цел број;}

Најдобри практики

  1. Не додавајте технички детали во Модели, ние користиме Аспектиза тоа
  2. Користете кратки имиња  едноставни рамни модели
  3. Не претерувајте со нормализирање на ентитетите во моделите
  4. Користете локални секвенци со цели броеви ако навистина се занимавате со големи оптоварувања и волумени. Во спротивно, претпочитајте UUID

Досега што научивме: Создавање на модел и аспекти над него.

Моделирање на домен во SAP CAP

Остави коментар

Оваа страница користи Akismet за намалување на спам. Научете како се обработува вашиот коментар.