Modeling Domain di SAP CAP

perkenalan

Modél Domain dina SAP CAP nyaéta modél anu ngajelaskeun statik, aspék data-patali tina domain masalah dina hal modél hubungan éntitas. Dina tulisan ieu urang bakal diajar Modeling Domain dina SAP CAP sacara rinci.

Modél domain

Dina kecap basajan, a CDS di SAP CAP ngahasilkeun model domain ku cara kitu eta ngahartikeun masalah bisnis dina watesan konci, widang jeung annotations. Kode pikeun ngahasilkeun modél domain ditulis dina skéma CDS (db/schema.cds). Modél domain ieu tiasa dianggo dina Watesan Layanan, Model Kegigihan, Basis data atanapi bahkan dianggo deui dina modél domain sanés.

Conto conto:

Namespace empInfo; ngagunakeun {Currency, managed} tina '@sap/cds/common'; entitas Pagawe: junun { ID konci: Integer; firstName: localized String (111); LastName: localized String (1111); manajer: Asosiasi ka Manajer; dateofJoining: Integer; gaji: desimal (9,2); mata uang: mata uang; }

 

Dina conto ieu kami parantos nyiptakeun file schema.cds dimana kami parantos nyiptakeun éntitas Karyawan anu kalebet detil dasar karyawan.

Sakabéh skéma ieu geus dibéré ngaranspasi ie empInfo

Skéma ieu ngagunakeun tipe data standar nyaéta Mata Artos. Ngagunakeun tipe data standar kawas ieu mantuan kami pikeun mawa sagala nilai tos siap mantuan mantuan patali jeung eta.

Kami nganggo CDS pikeun nyiptakeun Modél. Dina éta CDS, kami nganggo

  1. Éntitas pikeun ngagambarkeun set objék unik misalna:
    1. Émbaran Dasar pagawe
    2. Émbaran Komunikasi pagawe
    3. Émbaran Gaji pagawe
  2. Asosiasi pikeun nangtukeun hubungan
    1. Asosiasi manajer ka Manajer éntitas sanés anu bakal ngagaduhan daptar Pangurus

Ngaran Konvénsi & Rekomendasi

  1. Ngaran éntitas kedah dimimitian ku hurup kapital sareng kedah tiasa dibaca ku manusa sareng jelas-jelas - contona, Karyawan
  2. Mimitian elemen nganggo hurup leutik - contona, firstName
  3. Disarankeun make bentuk jamak tina éntitas - contona, Karyawan
  4. Disarankeun make bentuk tunggal sahiji jenis - contona, Mata Artos
  5. ulah ngulang konteks - contona, Employees.name tinimbang Employees.EmployeeName
  6. resep ngaran hiji kecap - contona, gaji tinimbang salaryAmount
  7. make ID pikeun konci primér teknis - contona, ID pikeun ID pagawe
  8. Anjeun tiasa nganggo Namespace pikeun ngajantenkeun éntitas anjeun unik. Éta sapertos konsép klien dina SAP dimana anjeun tiasa gaduh skéma duplikat (file cd) kalayan Namespace unik pikeun ngabédakeunana. Namespaces opsional, anggo namespaces upami model anjeun tiasa dianggo deui dina proyék sanés. Dina ahir poé éta ngan ukur awalan, anu otomatis diterapkeun ka sadaya nami anu relevan dina file. - salaku conto,

namespace laptop;entitas Dell {}

..… sarua jeung:

éntitas laptop.Dell {}

  1. Anjeun tiasa make konteks pikeun bagian ngaranspasi nested. - salaku conto,

namespace laptop;entitas Dell {}           //> laptop.Dellkonteks Apple { éntitas MacBookPro {}       //> laptop.Apple.MacBookPro     éntitas MacBookAir {} }

 

Entitas

Éntitas sapertos tabel sareng konci primér. Urang tiasa ngalakukeun operasi CRUD nganggo Entitas ieu. Tetep sakumaha datar sabisa. Ulah over Normalize eta. Ulah make tipe non-reusable. Bagian ieu ngan ukur pikeun modél, ngan ukur anotasi anu aya hubunganana sareng widang individu anu kedah ditambihan sareng henteu kedah nambihan rinci téknis (logika).

tipe

Jinis sapertos Domain dina SAP ABAP, éta dianggo pikeun nangtukeun jinis elemen Data.

Aspék

Aspék mangrupikeun ekstensi tina Model sareng dianggo utamina pikeun ngalegaan definisi sareng anotasi anu aya. Sakali model ditetepkeun, urang tiasa nganggo file cd béda (Aspek) pikeun nambahkeun annotations on luhureun eta pikeun tugas husus.

Salaku conto-

  • CD- modél domain inti anjeun, tetep bersih, basajan tur kaharti
  • audit-model.cds- nambahkeun widang tambahan diperlukeun pikeun auditing dina file
  • auth-model.cds- nambihan annotations pikeun otorisasina.

Konci primér

Sapertos tabel & CDS dina SAP ABAP, kami ngajaga konci primér pikeun Entitas nganggo kecap konci konci.

Hiji konci primér bisa dipaké deui sakuliah modél ku ngagunakeun metodologi definisi umum.

Urang tiasa ngadamel Model common.cds dimana sadaya definisi umum tiasa disimpen.

// definisi umum

éntitas StandardEntity { ID konci : UUID; } Ayeuna definisi umum ieu tiasa dianggo deui sapertos di handap ieu: nganggo {StandardEntity} tina './common'; éntitas Pagawé: StandardEntity {nami: String; ... } éntitas Manajer: StandardEntity {nami: String; ...}

 

Berkas umum parantos didamel sacara standar sareng éntitas anu tos siap dingaranan cuid.

Mapping UUIDs kana OData

CDS peta UUIDs ka Edm.Guid, sacara standar, dina sakabéh model OData. Sanajan kitu, standar OData nempatkeun up aturan restrictive pikeun nilai Edm.Guid - contona, ukur string hyphenated nu diwenangkeun - nu bisa bertentangan jeung data nu aya. Ku alatan éta, urang ngidinan pemetaan standar ditimpa saperti kieu:

éntitas Buku {

ID konci: UUID @odata.Tipe: 'Edm.String';

...

}

Upami diperlukeun, Anjeun oge bisa nambahkeun annotation @odata.MaxLength pikeun override harta pakait, teuing.

perkumpulan

Hal ieu dipaké pikeun nangtukeun hubungan antara dua éntitas. Sapertos ABAP CDS, di dieu ogé kami nganggo kecap Asosiasi. Di dieu, kecap konci loba nunjukkeun a 0..* kardinalitas. The larangan pikeun cardinality bisa ditambahkeun salaku konstrain a (dimana kaayaan) - contona, ngagunakeun moal null.

komposisi

Beda sareng Asosiasi dimana urang ngaitkeun widang éntitas sareng objék tina hiji éntitas, komposisi ngan ukur ngarujuk kana widang khusus éntitas sanés. Mibanda kauntungan tambahan tina operasi jero timer junun (Selapkeun / Update) jeung ngahapus cascaded (Multi Dependent ngahapus tabel).

// Nangtukeun pesenan kalawan ngandung OrderItemséntitas Pesenan { ID konci: UUID; Item : Komposisi loba Order_Items on Items.parent=$self;}entity Order_Items { // wajib diaksés ngaliwatan pesenan wungkul  indungna konci: Asosiasi kana pesenan; buku konci: Asosiasi kana Buku; kuantitas: integer;}

Prakték pangalusna

  1. Entong nambihan detil téknis dina Model, kami nganggo Aspékkanggo éta
  2. make ngaran pondok jeung model datar basajan
  3. Ulah leuwih Normalisasi éntitas dina Models
  4. Paké urutan integer lokal lamun bener nungkulan beban tinggi na volume. Upami teu kitu, resep UUIDs

Nepi ka ayeuna naon anu urang diajar: Penciptaan Modél sareng Aspek di luhur éta.

Modeling Domain di SAP CAP

Ninggalkeun comment hiji

Situs migunakeun Akismet pikeun ngurangan spam. Diajar kumaha komentar data anjeun diolah.