SAP CAP ичинде доменди моделдөө

тааныштыруу

SAP CAP доменинин модели – бул объект-мамиле моделдери боюнча көйгөйлүү домендин статикалык, маалыматтарга байланышкан аспектилерин сүрөттөгөн модель. Бул макалада биз SAP CAPте доменди моделдештирүү жагын кеңири изилдейбиз.

Доменди моделдөө

Жөнөкөй сөз менен айтканда, SAP CAPдеги CDS домен моделин ачкычтар, талаалар жана аннотациялар боюнча бизнес көйгөйүн аныктагандай кылып чыгарат. Домен моделин түзүү коду CDS схемасында жазылган (db/schema.cds). Бул домен моделдерин Кызматтын аныктамаларында, туруктуулук моделдеринде, маалымат базаларында колдонсо болот же башка домен моделинде кайра колдонсо болот.

Үлгү Мисал:

Namespace empInfo; '@sap/cds/common'дан {Currency, managed} колдонуу; entity Кызматкерлер: башкарылган {ачкыч ID: Integer; firstName: локализацияланган String (111); фамилия: локализацияланган String (1111); менеджер: Менеджерлер ассоциациясы; dateofJoining: Integer; эмгек акы: Ондук (9,2); валюта: валюта; }

 

Бул мисалда биз schema.cds файлын түздүк, анда Кызматкердин негизги деталдарын камтыган Кызматкерлер уюмун түздүк.

Бул бүт схемага ат мейкиндиги, башкача айтканда empInfo берилди

Бул схема стандарттык маалымат түрүн, б.а. Валюта колдонот. Ушул сыяктуу стандарттуу маалымат түрүн колдонуу, ага байланыштуу бардык алдын ала аныкталган маанини алып келүүгө жардам берет.

Моделди түзүү үчүн биз CDS колдонобуз. Ошол CDSте биз колдонобуз

  1. Уникалдуу объекттердин жыйындысын көрсөтүү үчүн объекттер, мисалы:
    1. Кызматкердин негизги маалыматы
    2. Кызматкерлердин байланыш маалыматы
    3. Кызматкердин эмгек акысы жөнүндө маалымат
  2. мамилелерди аныктоо үчүн бирикмелер
    1. Бардык Менеджерлердин тизмесине ээ болгон башка мекемеге менеджер ассоциациясы

Ат коюу конвенциясы жана сунуштар

  1. Мекеменин аталышы баш тамга менен башталышы керек жана ал адам окуй турган жана өзүн-өзү түшүндүрүүчү болушу керек - мисалы, Кызматкерлер
  2. Элементтерди кичине тамга менен баштоо – мисалы, FirstName
  3. Бул субъекттердин көптүк түрүн колдонуу сунушталат – мисалы, Кызматкерлер
  4. Типтердин сингулярдык формасын колдонуу сунушталат – мисалы, Валюта
  5. контексттерди кайталаба – мисалы, Employees.EmployeeName ордуна Employees.name
  6. бир сөздөн турган ысымдарды артык көрүшөт - мисалы, жалакы суммасынын ордуна эмгек акы
  7. техникалык негизги ачкычтар үчүн ID колдонуу - мисалы, Кызматкер ID үчүн ID
  8. Сиз объекттериңизди уникалдуу кылуу үчүн Namespace колдоно аласыз. Бул SAPдеги кардар концепциясы сыяктуу, анда сиз аларды айырмалоо үчүн уникалдуу Namespace менен кайталанган схемаларга (CD файлдары) ээ боло аласыз. Аттар мейкиндиктери милдеттүү эмес, эгер моделдериңиз башка долбоорлордо кайра колдонулушу мүмкүн болсо, аттар мейкиндигин колдонуңуз. Күндүн аягында алар жөн гана префикстер, алар файлдагы бардык тиешелүү аттарга автоматтык түрдө колдонулат. - Мисалы,

аттар мейкиндиги ноутбук; Dell объекти {}

..… барабар:

объект ноутбук.Dell {}

  1. Сиз контексттерди атын мейкиндигинин бөлүмдөрү үчүн колдоно аласыз. - Мисалы,

аттар мейкиндиги ноутбук; Dell объекти {}           //> ноутбук.Dellконтекст Apple { entity MacBookPro {}       //> ноутбук.Apple.MacBookPro     MacBookAir объекти {} }

 

жактар

Объекттер негизги ачкычтары бар таблицаларга окшош. Биз бул объекттерди колдонуу менен CRUD операциясын аткара алабыз. Аны мүмкүн болушунча тегиз кармаңыз. Аны нормалдаштырбаңыз. Кайра колдонууга болбой турган түрлөрүн колдонбоңуз. Бул бөлүм моделдөө үчүн гана, айрым талааларга тиешелүү аннотация гана кошулушу керек жана эч кандай техникалык деталдар (логика) кошулбашы керек.

түрлөрү

Түрлөр SAP ABAP доменине окшош, ал маалымат элементтеринин типтерин аныктоо үчүн колдонулат.

аспектилери

Аспекттер Моделдердин кеңейтүүлөрү болуп саналат жана негизинен учурдагы аныктамаларды жана аннотацияларды кеңейтүү үчүн колдонулат. Модель аныкталгандан кийин, белгилүү бир тапшырма үчүн алардын үстүнө аннотацияларды кошуу үчүн ар кандай CD файлдарын (Аспект) колдоно алабыз.

Мисалы-

  • CDs– Сиздин негизги домен модели, таза, жөнөкөй жана түшүнүктүү сакталган
  • audit-model.cds– файлда текшерүү үчүн зарыл болгон кошумча талааларды кошот
  • auth-model.cds– авторизация үчүн аннотацияларды кошот.

Негизги ачкычтар

SAP ABAPдагы таблицалар жана CDS сыяктуу, биз Негизги ачкычтарды ачкыч сөздү колдонуу менен сактайбыз негизги.

Негизги ачкыч жалпы аныктамалардын методологиясын колдонуу менен модел боюнча кайра колдонулушу мүмкүн.

Биз бардык жалпы аныктамалар сактала турган common.cds моделин түзө алабыз.

// жалпы аныктамалар

entity StandardEntity { key ID : UUID; } Эми бул жалпы аныктамаларды төмөндөгүдөй кайра колдонсо болот: './common' ичинен { StandardEntity } колдонуу; entity Кызматкер : StandardEntity {аты : String; ... } entity Manager : StandardEntity {name : String; ...}

 

Жалпы файл мурунтан эле алдын ала аныкталган объект менен демейки боюнча түзүлгөн cuid.

UUIDдерди OData менен салыштыруу

CDS бардык OData моделдеринде демейки боюнча Edm.Guidге UUIDдерди түзөт. Бирок, OData стандарты Edm.Guid баалуулуктары үчүн чектөөчү эрежелерди коёт - мисалы, тиреленген саптарга гана уруксат берилет - алар учурдагы маалыматтарга карама-каршы келиши мүмкүн. Ошондуктан, биз демейки картаны төмөнкүдөй жокко чыгарууга уруксат беребиз:

entity Books {

ачкыч ID: UUID @odata.Type:'Edm.String';

...

}

Керек болсо, тиешелүү касиетти жокко чыгаруу үчүн @odata.MaxLength аннотациясын кошо аласыз.

бирикме

Бул эки субъекттин ортосундагы мамилени аныктоо үчүн колдонулат. ABAP CDS сыяктуу, бул жерде да биз сөздү колдонобуз Ассоциация. Бул жерде, ачкыч сөз көп көрсөтөт а 0..* кардиналдуулук. Кардиналдуулук үчүн чектөөлөрдү чектөө катары кошууга болот (шарт) - мисалы, колдонуу нөл эмес.

курамы

Ассоциациядан айырмаланып, биз субъекттин талаасын бүтүндөй бир объекттин объектилери менен байланыштырабыз, композициялар жөн гана башка объекттин белгилүү бир тармагына шилтеме кылат. Ал өзүн-өзү башкарган терең операциялардын (Кыстаруу/Жаңыртуу) жана каскаддык өчүрүүнүн (Көп көз каранды таблицаны жок кылуу) кошумча артыкчылыгына ээ.

// камтылган OrderItems менен буйруктарды аныктооentity Orders {ачкыч ID : UUID; Объекттер : Items.parent=$self;}объект Order_Items { боюнча көптөгөн Order_Items курамы // Буйрутмалар аркылуу гана жеткиликтүү болот  негизги ата-эне: Буйрутмаларга ассоциация; негизги китеп: Китептерге ассоциация; саны: бүтүн;}

Мыкты тажрыйбалар

  1. Моделдерге техникалык деталдарды кошпоңуз, биз колдонобуз аспектилериал үчүн
  2. колдонуу кыска аттары жана жөнөкөй жалпак моделдер
  3. Моделдердеги объекттерди нормалдаштырбаңыз
  4. Эгер сиз чындап эле чоң жүктөмдөр жана көлөмдөр менен алектенсеңиз, жергиликтүү бүтүн сандардын ырааттуулугун колдонуңуз. Болбосо, UUIDди тандаңыз

Буга чейин биз эмнени үйрөндүк: Модельди түзүү жана анын үстүнө аспектилер.

SAP CAP ичинде доменди моделдөө

Комментарий калтыруу

Бул сайт спам азайтуу Akismet колдонот. Сиздин комментарий маалымат кандайча иштелишин Үйрөнүү.