ການສ້າງແບບຈໍາລອງໂດເມນໃນ SAP CAP

ການນໍາສະເຫນີ

Domain Model ໃນ SAP CAP ແມ່ນຕົວແບບທີ່ອະທິບາຍເຖິງລັກສະນະຄົງທີ່, ທີ່ກ່ຽວຂ້ອງກັບຂໍ້ມູນຂອງໂດເມນທີ່ມີບັນຫາໃນແງ່ຂອງຕົວແບບທີ່ກ່ຽວຂ້ອງກັບນິຕິບຸກຄົນ. ໃນບົດຄວາມນີ້ພວກເຮົາຈະສຶກສາ Domain Modeling ໃນ SAP CAP ຢ່າງລະອຽດ.

ການສ້າງແບບຈໍາລອງໂດເມນ

ໃນຄໍາສັບຕ່າງໆງ່າຍດາຍ, CDS ໃນ SAP CAP ຜະລິດຕົວແບບໂດເມນໃນລັກສະນະທີ່ມັນກໍານົດບັນຫາທຸລະກິດໃນຂໍ້ກໍານົດຂອງກະແຈ, ພາກສະຫນາມແລະຄໍາບັນຍາຍ. ລະຫັດເພື່ອສ້າງຕົວແບບໂດເມນແມ່ນຂຽນໄວ້ໃນ CDS schema (db/schema.cds). ຮູບແບບໂດເມນເຫຼົ່ານີ້ສາມາດຖືກນໍາໃຊ້ໃນຄໍານິຍາມການບໍລິການ, ຮູບແບບຄົງທີ່, ຖານຂໍ້ມູນ ຫຼືແມ້ກະທັ້ງນໍາມາໃຊ້ຄືນພາຍໃນຕົວແບບໂດເມນອື່ນ.

ຕົວຢ່າງຕົວຢ່າງ:

Namespace empInfo; ໂດຍໃຊ້ {Currency, managed} ຈາກ '@sap/cds/common'; entity ພະນັກງານ: ຈັດການ { key ID: Integer; firstName: localized String (111); LastName: localized String (1111); ຜູ້ຈັດການ: ສະມາຄົມກັບຜູ້ຈັດການ; ວັນທີເຂົ້າຮ່ວມ: ຈຳນວນເຕັມ; ເງິນເດືອນ: ອັດຕານິຍົມ (9,2); ສະກຸນເງິນ: ສະກຸນເງິນ; }

 

ໃນຕົວຢ່າງນີ້ພວກເຮົາໄດ້ສ້າງໄຟລ໌ schema.cds ທີ່ພວກເຮົາໄດ້ສ້າງ entity Employees ເຊິ່ງປະກອບມີລາຍລະອຽດພື້ນຖານຂອງພະນັກງານ.

schema ທັງຫມົດນີ້ໄດ້ຮັບ namespace ເຊັ່ນ: empInfo

schema ນີ້ໃຊ້ປະເພດຂໍ້ມູນມາດຕະຖານເຊັ່ນ Currency. ການນໍາໃຊ້ປະເພດຂໍ້ມູນມາດຕະຖານເຊັ່ນນີ້ຊ່ວຍໃຫ້ພວກເຮົານໍາເອົາມູນຄ່າທີ່ກໍານົດໄວ້ລ່ວງຫນ້າທັງຫມົດທີ່ຊ່ວຍກ່ຽວຂ້ອງກັບມັນ.

ພວກເຮົາໃຊ້ CDS ເພື່ອສ້າງ Model. ໃນ CDS ນັ້ນ, ພວກເຮົາໃຊ້

  1. ຫົວໜ່ວຍເພື່ອສະແດງຊຸດຂອງວັດຖຸທີ່ເປັນເອກະລັກເຊັ່ນ:
    1. ຂໍ້ມູນພື້ນຖານຂອງພະນັກງານ
    2. ຂໍ້ມູນການສື່ສານຂອງພະນັກງານ
    3. ຂໍ້ມູນເງິນເດືອນຂອງພະນັກງານ
  2. ສະມາຄົມເພື່ອກໍານົດຄວາມສໍາພັນ
    1. ສະມາຄົມຜູ້ຈັດການກັບຜູ້ຈັດການຫນ່ວຍງານອື່ນເຊິ່ງຈະມີລາຍຊື່ຜູ້ຈັດການທັງຫມົດ

ການຕັ້ງຊື່ສົນທິສັນຍາ & ຄໍາແນະນໍາ

  1. ຊື່ຂອງນິຕິບຸກຄົນຄວນເລີ່ມຕົ້ນດ້ວຍຕົວພິມໃຫຍ່ ແລະມັນຄວນຈະເປັນທີ່ມະນຸດອ່ານໄດ້ ແລະສາມາດອະທິບາຍໄດ້ດ້ວຍຕົນເອງ - ຕົວຢ່າງ, ພະນັກງານ.
  2. ເລີ່ມຕົ້ນອົງປະກອບດ້ວຍຕົວພິມນ້ອຍ - ຕົວຢ່າງ, ຊື່ທໍາອິດ
  3. ມັນແນະນໍາໃຫ້ໃຊ້ຮູບແບບຫຼາຍຂອງນິຕິບຸກຄົນ - ຕົວຢ່າງ, ພະນັກງານ
  4. ແນະນຳໃຫ້ໃຊ້ຮູບແບບທີ່ເປັນເອກກະລັກຂອງປະເພດ – ຕົວຢ່າງ, ສະກຸນເງິນ
  5. ຢ່າເຮັດຊ້ຳສະພາບການ – ຕົວຢ່າງ Employees.name ແທນ Employees.EmployeeName
  6. ຕ້ອງການຊື່ຄໍາດຽວ - ຕົວຢ່າງ, ເງິນເດືອນແທນທີ່ຈະເປັນເງິນເດືອນ
  7. ໃຊ້ ID ສໍາລັບກະແຈຫຼັກທາງດ້ານວິຊາການ – ຕົວຢ່າງເຊັ່ນ ID ສໍາລັບ ID ພະນັກງານ
  8. ທ່ານສາມາດນໍາໃຊ້ Namespace ເພື່ອເຮັດໃຫ້ຫນ່ວຍງານຂອງທ່ານເປັນເອກະລັກ. ມັນຄ້າຍຄືກັບແນວຄວາມຄິດຂອງລູກຄ້າໃນ SAP ບ່ອນທີ່ທ່ານສາມາດມີ schemas ຊ້ໍາກັນ (ໄຟລ໌ cds) ທີ່ມີ Namespace ເປັນເອກະລັກເພື່ອແຍກຄວາມແຕກຕ່າງ. Namespaces ແມ່ນທາງເລືອກ, ໃຊ້ namespaces ຖ້າຕົວແບບຂອງທ່ານອາດຈະຖືກນໍາໃຊ້ຄືນໃຫມ່ໃນໂຄງການອື່ນໆ. ໃນຕອນທ້າຍຂອງມື້, ພວກມັນແມ່ນພຽງແຕ່ຄໍານໍາຫນ້າ, ເຊິ່ງຖືກນໍາໃຊ້ໂດຍອັດຕະໂນມັດກັບຊື່ທີ່ກ່ຽວຂ້ອງທັງຫມົດໃນໄຟລ໌. - ຍົກ​ຕົວ​ຢ່າງ,

namespace laptop;entity Dell {}

..… ເທົ່າກັບ:

entity laptop.Dell {}

  1. ທ່ານ​ສາ​ມາດ​ນໍາ​ໃຊ້​ເນື້ອ​ໃນ​ສໍາ​ລັບ​ພາກ​ສ່ວນ namespace ຊ້ອນ​. - ຍົກ​ຕົວ​ຢ່າງ,

namespace laptop;entity Dell {}           //> laptop.Dellບໍລິບົດ Apple { entity MacBookPro {}       //> laptop.Apple.MacBookPro     ຫົວໜ່ວຍ MacBookAir {} }

 

ໜ່ວຍ ງານຕ່າງໆ

ຫນ່ວຍງານແມ່ນຄ້າຍຄືຕາຕະລາງທີ່ມີກະແຈຫຼັກ. ພວກເຮົາສາມາດດໍາເນີນການ CRUD ໂດຍໃຊ້ຫນ່ວຍງານເຫຼົ່ານີ້. ຮັກສາມັນໃຫ້ຮາບພຽງເທົ່າທີ່ເປັນໄປໄດ້. ຢ່າເຮັດໃຫ້ມັນເກີນປົກກະຕິ. ຢ່າໃຊ້ປະເພດທີ່ບໍ່ສາມາດໃຊ້ຄືນໄດ້. ພາກນີ້ແມ່ນພຽງແຕ່ສໍາລັບການສ້າງແບບຈໍາລອງ, ພຽງແຕ່ຄໍາບັນຍາຍທີ່ກ່ຽວຂ້ອງກັບແຕ່ລະພາກສະຫນາມຄວນໄດ້ຮັບການເພີ່ມແລະບໍ່ມີລາຍລະອຽດດ້ານວິຊາການ (ເຫດຜົນ) ຄວນໄດ້ຮັບການເພີ່ມ.

ປະເພດ

ປະເພດແມ່ນຄ້າຍຄື Domain ໃນ SAP ABAP, ມັນໃຊ້ເພື່ອກໍານົດປະເພດຂອງອົງປະກອບຂໍ້ມູນ.

ດ້ານຕ່າງໆ

ລັກສະນະແມ່ນສ່ວນຂະຫຍາຍຂອງຕົວແບບ ແລະສ່ວນໃຫຍ່ແມ່ນໃຊ້ເພື່ອຂະຫຍາຍຄຳນິຍາມ ແລະຄຳອະທິບາຍປະກອບທີ່ມີຢູ່ແລ້ວ. ເມື່ອຕົວແບບໃດໜຶ່ງຖືກກຳນົດ, ພວກເຮົາສາມາດໃຊ້ໄຟລ໌ cds ທີ່ແຕກຕ່າງກັນ (Aspect) ເພື່ອເພີ່ມຄຳອະທິບາຍປະກອບໃສ່ເທິງພວກມັນສຳລັບວຽກສະເພາະ.

ຍົກ​ຕົວ​ຢ່າງ-

  • cds- ຮູບແບບໂດເມນຫຼັກຂອງເຈົ້າ, ຮັກສາຄວາມສະອາດ, ງ່າຍດາຍ ແລະເຂົ້າໃຈໄດ້
  • audit-model.cds– ເພີ່ມຊ່ອງຂໍ້ມູນເພີ່ມເຕີມທີ່ຕ້ອງການສໍາລັບການກວດສອບໃນໄຟລ໌
  • auth-model.cds- ເພີ່ມຄໍາບັນຍາຍສໍາລັບການອະນຸຍາດ.

ກະແຈຫຼັກ

ເຊັ່ນດຽວກັນກັບຕາຕະລາງ & CDS ໃນ SAP ABAP, ພວກເຮົາຮັກສາລະຫັດຫຼັກສໍາລັບ Entity ໂດຍໃຊ້ຄໍາສໍາຄັນ key

ລະຫັດຫຼັກສາມາດນໍາມາໃຊ້ຄືນໄດ້ໃນທົ່ວຕົວແບບໂດຍການໃຊ້ວິທີການຂອງຄໍານິຍາມທົ່ວໄປ.

ພວກເຮົາສາມາດສ້າງແບບຈໍາລອງ common.cds ບ່ອນທີ່ຄໍານິຍາມທົ່ວໄປທັງຫມົດສາມາດຖືກເກັບໄວ້.

// ຄໍານິຍາມທົ່ວໄປ

entity StandardEntity { key ID : UUID; } ດຽວນີ້ຄຳນິຍາມທົ່ວໄປເຫຼົ່ານີ້ສາມາດນຳມາໃຊ້ຄືນໄດ້ດັ່ງລຸ່ມນີ້: ໂດຍໃຊ້ { StandardEntity } ຈາກ './common'; entity ພະນັກງານ : StandardEntity { name : String; ... } entity Manager : StandardEntity { name : String; ... }

 

ໄຟລ໌ທົ່ວໄປໄດ້ຖືກສ້າງຂື້ນແລ້ວໂດຍຄ່າເລີ່ມຕົ້ນດ້ວຍ entity ທີ່ກໍານົດໄວ້ກ່ອນທີ່ມີຊື່ cuid.

ການສ້າງແຜນທີ່ UUIDs ກັບ OData

CDS ແຜນທີ່ UUIDs ກັບ Edm.Guid, ຕາມຄ່າເລີ່ມຕົ້ນ, ໃນທຸກຮູບແບບ OData. ຢ່າງໃດກໍຕາມ, ມາດຕະຖານ OData ວາງກົດລະບຽບຈໍາກັດສໍາລັບຄ່າ Edm.Guid - ຕົວຢ່າງ, ອະນຸຍາດໃຫ້ມີພຽງສະຕຣິງທີ່ຖືກຍັບຍັ້ງ - ເຊິ່ງອາດຈະຂັດກັບຂໍ້ມູນທີ່ມີຢູ່. ດັ່ງນັ້ນ, ພວກເຮົາອະນຸຍາດໃຫ້ແຜນທີ່ເລີ່ມຕົ້ນຖືກ overridden ດັ່ງຕໍ່ໄປນີ້:

ປຶ້ມຫົວຫນ່ວຍ {

ID ລະຫັດ: UUID @odata.ປະເພດ:'Edm.String';

...

}

ຖ້າຈໍາເປັນ, ທ່ານຍັງສາມາດເພີ່ມຄໍາບັນຍາຍ @odata.MaxLength ເພື່ອ override ຊັບສິນທີ່ສອດຄ້ອງກັນ, ເຊັ່ນດຽວກັນ.

ສະມາຄົມ

ມັນຖືກນໍາໃຊ້ເພື່ອກໍານົດຄວາມສໍາພັນລະຫວ່າງສອງຫນ່ວຍງານ. ເຊັ່ນດຽວກັນກັບ ABAP CDS, ໃນທີ່ນີ້ພວກເຮົາກໍ່ໃຊ້ຄໍາສັບ ສະມາຄົມ. ນີ້, ຄໍາສໍາຄັນ ຈໍານວນຫຼາຍ ບົ່ງບອກກ 0..* cardinality. ຂໍ້ຈໍາກັດສໍາລັບ cardinality ສາມາດຖືກເພີ່ມເປັນຂໍ້ຈໍາກັດ (ບ່ອນທີ່ມີເງື່ອນໄຂ) - ສໍາລັບຕົວຢ່າງ, ການນໍາໃຊ້ ບໍ່ແມ່ນ null.

Compositions

ບໍ່ເຫມືອນກັບສະມາຄົມທີ່ພວກເຮົາເຊື່ອມໂຍງກັບສາຂາຂອງນິຕິບຸກຄົນກັບວັດຖຸຂອງຫນ່ວຍງານທັງຫມົດ, ອົງປະກອບພຽງແຕ່ຫມາຍເຖິງພາກສະຫນາມສະເພາະຂອງຫນ່ວຍງານອື່ນ. ມັນມີປະໂຫຍດພິເສດຂອງການປະຕິບັດຢ່າງເລິກເຊິ່ງທີ່ຈັດການດ້ວຍຕົນເອງ (ໃສ່ / ອັບເດດ) ແລະການລຶບແບບ cascaded (ການລຶບຕາຕະລາງຫຼາຍຂື້ນ).

// ກໍານົດຄໍາສັ່ງທີ່ມີ OrderItems ບັນຈຸentity Orders { key ID : UUID; ລາຍການ : ອົງປະກອບຂອງ Order_Items ຫຼາຍອັນໃນ Items.parent=$self;}entity Order_Items { // ຈະຖືກເຂົ້າເຖິງໂດຍຜ່ານຄໍາສັ່ງເທົ່ານັ້ນ  ພໍ່ແມ່ທີ່ສໍາຄັນ : ສະມາຄົມເພື່ອຄໍາສັ່ງ; ປື້ມຫຼັກ : Association to Books; ປະລິມານ: ຈຳນວນເຕັມ;}

ການປະຕິບັດທີ່ດີທີ່ສຸດ

  1. ຢ່າເພີ່ມລາຍລະອຽດດ້ານວິຊາການໃນ Models, ພວກເຮົາໃຊ້ ດ້ານຕ່າງໆສຳ ລັບສິ່ງນັ້ນ
  2. ການນໍາໃຊ້ ຊື່ສັ້ນ ແລະ ແບບຮາບພຽງທີ່ງ່າຍດາຍ
  3. ຢ່າເຮັດໃຫ້ບັນດາຫົວໜ່ວຍຢູ່ໃນຕົວແບບປົກກະຕິເກີນປົກກະຕິ
  4. ໃຊ້ລໍາດັບ integer ທ້ອງຖິ່ນຖ້າຫາກວ່າທ່ານກໍ່ຈັດການກັບການໂຫຼດສູງແລະປະລິມານ. ຖ້າບໍ່ດັ່ງນັ້ນ, ມັກ UUIDs

ມາຮອດປະຈຸສິ່ງທີ່ພວກເຮົາໄດ້ຮຽນຮູ້: ການສ້າງແບບຈໍາລອງແລະລັກສະນະຢູ່ເທິງສຸດຂອງມັນ.

ການສ້າງແບບຈໍາລອງໂດເມນໃນ SAP CAP

ອອກຄໍາເຫັນເປັນ

ເວັບໄຊທ໌ນີ້ໃຊ້ Akismet ເພື່ອຫຼຸດຜ່ອນການຂີ້ເຫຍື້ອ. ຮຽນຮູ້ວິທີທີ່ຂໍ້ມູນຂອງທ່ານຖືກປະຕິບັດ.