Моделсозии домен дар SAP CAP

Муқаддима

Модели домен дар SAP CAP як моделест, ки ҷанбаҳои статикӣ, вобаста ба додаҳои домени мушкилотро дар робита бо моделҳои муносибат бо субъект тавсиф мекунад. Дар ин мақола мо моделсозии доменро дар SAP CAP муфассал меомӯзем.

Моделсозии домен

Ба ибораи оддӣ, CDS дар SAP CAP модели домениро тавре тавлид мекунад, ки он мушкилоти тиҷоратро аз рӯи калидҳо, майдонҳо ва эзоҳҳо муайян мекунад. Рамзи тавлиди модели домен дар схемаи CDS (db/schema.cds) навишта шудааст. Ин моделҳои доменро метавон дар Таърифҳои хидмат, Моделҳои доимӣ, Пойгоҳи додаҳо истифода бурд ё ҳатто дар доираи модели дигари домен дубора истифода кард.

Намунаи намуна:

Фазои ном empInfo; бо истифода аз {Currency, managed} аз '@sap/cds/common'; муассиса Кормандон: идорашаванда { ID калид: бутун; Номи аввал: Сатри маҳаллӣ (111); насаб: Сатри маҳаллӣ (1111); менеҷер: Ассотсиатсия ба менеҷерҳо; санаи ҳамроҳшавӣ: бутун; маош: Даҳӣ (9,2); асъор: асъор; }

 

Дар ин мисол мо файли schema.cds-ро эҷод кардем, ки дар он мо як созмони Кормандонро эҷод кардем, ки тафсилоти асосии кормандро дар бар мегирад

Ба тамоми ин схема фазои ном дода шудааст, яъне empInfo

Ин схема як навъи маълумоти стандартиро, яъне Асъорро истифода мебарад. Истифодаи намуди стандартии додаҳо ба мо кӯмак мекунад, ки тамоми арзиши пешакӣ муайяншударо ба он ёрӣ расонем.

Мо CDS-ро барои сохтани Модел истифода мебарем. Дар он CDS, мо истифода мебарем

  1. Объектҳо барои муаррифии маҷмӯи объектҳои беназир, масалан:
    1. Маълумоти асосӣ дар бораи кормандон
    2. Маълумот дар бораи алоқаи кормандон
    3. Маълумот дар бораи музди меҳнати кормандон
  2. Ассотсиатсияҳо барои муайян кардани муносибатҳо
    1. Ассотсиатсияи менеҷер ба менеҷери дигар, ки ҳама рӯйхати менеҷеронро дар бар мегирад

Конвенсияи номгузорӣ ва тавсияҳо

  1. Номи ташкилот бояд бо ҳарфи калон оғоз шавад ва он бояд ба одамон қобили хондан ва худ фаҳмо бошад - масалан, Кормандон
  2. Элементҳоро бо ҳарфи хурд оғоз кунед - масалан, Номи аввал
  3. Тавсия дода мешавад, ки шакли ҷамъи субъектҳоро истифода баред - масалан, Кормандон
  4. Тавсия дода мешавад, ки шакли ягонаи намудҳоро истифода баред - масалан, асъор
  5. контекстҳоро такрор накунед - масалан, Employees.name ба ҷои Employees.EmployeeName
  6. номҳои як калимаро афзалтар медонанд - масалан, музди меҳнат ба ҷои маошAmount
  7. ID-ро барои калидҳои ибтидоии техникӣ истифода баред - масалан, ID барои ID-и корманд
  8. Шумо метавонед Фазои Name-ро истифода баред, то объектҳои худро беназир созед. Он ба консепсияи муштарӣ дар SAP монанд аст, ки дар он шумо метавонед схемаҳои такрорӣ (файлҳои CD) бо фазои номҳои беназир барои фарқ кардани онҳо дошта бошед. Фазоҳои номҳо ихтиёрӣ мебошанд, фазои номҳоро истифода баред, агар моделҳои шумо дар лоиҳаҳои дигар дубора истифода шаванд. Дар охири рӯз онҳо танҳо префиксҳо мебошанд, ки ба таври худкор ба ҳамаи номҳои мувофиқ дар файл татбиқ карда мешаванд. - барои намуна,

ноутбуки фазои ном; объекти Dell {}

..… баробар аст:

ноутбук.Dell {}

  1. Шумо метавонед контекстҳоро барои бахшҳои фазои номҳои лона истифода баред. - барои намуна,

ноутбуки фазои ном; объекти Dell {}           //> ноутбук.Dellконтекст Apple { объекти MacBookPro {}       //> ноутбук.Apple.MacBookPro     объекти MacBookAir {} }

 

Шахсоне

Объектҳо ба ҷадвалҳо бо калидҳои ибтидоӣ монанданд. Мо метавонем амалиёти CRUD-ро бо истифода аз ин объектҳо иҷро кунем. Онро то ҳадди имкон ҳамвор нигоҳ доред. Онро аз ҳад зиёд нормал накунед. Намудҳои дубора истифоданашавандаро истифода набаред. Ин бахш танҳо барои моделсозӣ аст, танҳо шарҳи марбут ба соҳаҳои алоҳида бояд илова карда шавад ва ҳеҷ ҷузъиёти техникӣ (мантиқ) илова карда нашавад.

Намудҳои

Намудҳо ба домен дар SAP ABAP монанданд, ки он барои муайян кардани чопшудаи унсурҳои додаҳо истифода мешуд.

Ҷанбаҳо

Ҷанбаҳо васеъшавии Моделҳо мебошанд ва асосан барои васеъ кардани таърифҳо ва эзоҳҳои мавҷуда истифода мешаванд. Пас аз муайян кардани модел, мо метавонем файлҳои cds-и гуногунро (Аспект) барои илова кардани эзоҳҳо дар болои онҳо барои вазифаи мушаххас истифода барем.

Барои намуна-

  • Дискҳои- модели домени асосии шумо, ки тоза, содда ва фаҳмо нигоҳ дошта мешавад
  • audit-model.cds– майдонҳои иловагиро илова мекунад, ки барои тафтиш дар файл заруранд
  • auth-model.cds– эзоҳҳо барои иҷозат илова мекунад.

Калидҳои ибтидоӣ

Мисли ҷадвалҳо ва CDS дар SAP ABAP, мо калидҳои ибтидоиро барои Entity бо истифода аз калимаи калидӣ нигоҳ медорем калид

Калиди ибтидоиро метавон дар тамоми модел бо истифода аз методологияи таърифҳои умумӣ дубора истифода бурд.

Мо метавонем модели common.cds эҷод кунем, ки дар он ҳамаи таърифҳои умумӣ нигоҳ дошта мешаванд.

// таърифҳои умумӣ

entity StandardEntity { ID калид : UUID; } Акнун ин таърифҳои умумиро метавон ба таври зерин дубора истифода кард: бо истифода аз { StandardEntity } аз './common'; entity Корманд : StandardEntity {ном : Сатр; ... } Менеҷери объект : StandardEntity {ном : Сатр; ... }

 

Файли умумӣ аллакай бо нобаёнӣ бо объекти пешакӣ муайяншуда сохта шудааст cuid.

Харитасозии 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 барои кам кардани спам истифода мешавад. Омӯзед, ки чӣ тавр маълумотҳои худро тафтиш кунед.