ការធ្វើគំរូដែននៅក្នុង SAP CAP

សេចក្តីផ្តើម

គំរូដែននៅក្នុង SAP CAP គឺជាគំរូដែលពិពណ៌នាអំពីទិដ្ឋភាពដែលទាក់ទងនឹងទិន្នន័យឋិតិវន្តនៃដែនបញ្ហាមួយទាក់ទងនឹងគំរូទំនាក់ទំនងអង្គភាព។ នៅក្នុងអត្ថបទនេះ យើងនឹងសិក្សាអំពី Domain Modeling នៅក្នុង SAP CAP ដោយលម្អិត។

ការធ្វើគំរូដែន

នៅក្នុងពាក្យសាមញ្ញ CDS នៅក្នុង SAP CAP ផលិតគំរូដែនតាមរបៀបដែលវាកំណត់បញ្ហាអាជីវកម្មទាក់ទងនឹងសោ វាល និងចំណារពន្យល់។ កូដដើម្បីបង្កើតគំរូដែនត្រូវបានសរសេរក្នុងគ្រោងការណ៍ CDS (db/schema.cds)។ គំរូដែនទាំងនេះអាចត្រូវបានប្រើនៅក្នុងនិយមន័យសេវាកម្ម គំរូបន្ត មូលដ្ឋានទិន្នន័យ ឬសូម្បីតែប្រើឡើងវិញក្នុងគំរូដែនផ្សេងទៀត។

ឧទាហរណ៍គំរូ៖

Namespace empInfo; ដោយប្រើ {Currency, managed} ពី '@sap/cds/common'; បុគ្គលិកអង្គភាព៖ គ្រប់គ្រង { លេខសម្គាល់គន្លឹះ៖ ចំនួនគត់; ឈ្មោះដំបូង៖ ខ្សែអក្សរដែលបានធ្វើមូលដ្ឋានីយកម្ម (111); ឈ្មោះចុងក្រោយ៖ ខ្សែអក្សរដែលបានធ្វើមូលដ្ឋានីយកម្ម (១១១១); អ្នកគ្រប់គ្រង: សមាគមទៅនឹងអ្នកគ្រប់គ្រង; កាលបរិច្ឆេទនៃការចូលរួម៖ ចំនួនគត់; ប្រាក់ខែ៖ ទសភាគ (៩,២); រូបិយប័ណ្ណ៖ រូបិយប័ណ្ណ; }

 

ក្នុងឧទាហរណ៍នេះ យើងបានបង្កើតឯកសារ schema.cds ដែលយើងបានបង្កើតអង្គភាពនិយោជិត ដែលរួមបញ្ចូលព័ត៌មានលម្អិតជាមូលដ្ឋាននៃនិយោជិត

គ្រោងការណ៍ទាំងមូលនេះត្រូវបានផ្តល់ namespace ពោលគឺ empInfo

គ្រោងការណ៍នេះប្រើប្រភេទទិន្នន័យស្តង់ដារ ពោលគឺរូបិយប័ណ្ណ។ ការប្រើប្រាស់ប្រភេទទិន្នន័យស្តង់ដារបែបនេះជួយយើងក្នុងការនាំយកតម្លៃដែលបានកំណត់ជាមុនទាំងអស់ដែលទាក់ទងនឹងវា។

យើងប្រើ CDS ដើម្បីបង្កើតគំរូមួយ។ នៅក្នុង CDS នោះយើងប្រើ

  1. អង្គធាតុ​ដែល​តំណាង​ឱ្យ​សំណុំ​នៃ​វត្ថុ​តែ​មួយ ឧ.
    1. ព័ត៌មានមូលដ្ឋានរបស់និយោជិត
    2. ព័ត៌មានទំនាក់ទំនងបុគ្គលិក
    3. ព័ត៌មានអំពីប្រាក់ខែបុគ្គលិក
  2. សមាគមដើម្បីកំណត់ទំនាក់ទំនង
    1. ការផ្សារភ្ជាប់អ្នកគ្រប់គ្រងទៅអ្នកគ្រប់គ្រងអង្គភាពមួយផ្សេងទៀតដែលនឹងមានបញ្ជីអ្នកគ្រប់គ្រងទាំងអស់។

ការដាក់ឈ្មោះអនុសញ្ញា និងអនុសាសន៍

  1. ឈ្មោះរបស់អង្គភាពគួរតែចាប់ផ្តើមដោយអក្សរធំ ហើយវាគួរតែជាមនុស្សដែលអាចអានបាន និងពន្យល់ដោយខ្លួនឯង - ឧទាហរណ៍ និយោជិត
  2. ចាប់ផ្តើមធាតុដោយអក្សរតូច - ឧទាហរណ៍ FirstName
  3. វាត្រូវបានណែនាំឱ្យប្រើទម្រង់ពហុវចនៈនៃអង្គភាព - ឧទាហរណ៍ បុគ្គលិក
  4. វាត្រូវបានណែនាំឱ្យប្រើទម្រង់ឯកវចនៈនៃប្រភេទ – ឧទាហរណ៍ រូបិយប័ណ្ណ
  5. កុំនិយាយឡើងវិញនូវបរិបទ – ឧទាហរណ៍ Employees.name ជំនួសឱ្យ Employees.EmployeeName
  6. ចូលចិត្តឈ្មោះពាក្យមួយ - ឧទាហរណ៍ ប្រាក់ខែ ជំនួសឱ្យប្រាក់ខែ
  7. ប្រើលេខសម្គាល់សម្រាប់សោចម្បងបច្ចេកទេស - ឧទាហរណ៍ ID សម្រាប់លេខសម្គាល់បុគ្គលិក
  8. អ្នកអាចប្រើ Namespace ដើម្បីធ្វើឱ្យអង្គភាពរបស់អ្នកមានតែមួយគត់។ វាដូចជាគំនិតអតិថិជននៅក្នុង SAP ដែលអ្នកអាចមានគ្រោងការណ៍ស្ទួន (ឯកសារ cds) ជាមួយនឹង Namespace តែមួយគត់ដើម្បីបែងចែកពួកវាខុសគ្នា។ Namespaces គឺស្រេចចិត្ត ប្រើ namespaces ប្រសិនបើម៉ូដែលរបស់អ្នកអាចប្រើឡើងវិញនៅក្នុងគម្រោងផ្សេងទៀត។ នៅចុងបញ្ចប់នៃថ្ងៃ ពួកគេគ្រាន់តែជាបុព្វបទ ដែលត្រូវបានអនុវត្តដោយស្វ័យប្រវត្តិចំពោះឈ្មោះដែលពាក់ព័ន្ធទាំងអស់នៅក្នុងឯកសារមួយ។ - ឧទាហរណ៍,

namespace laptop;អង្គភាព Dell {}

..… ស្មើនឹង៖

អង្គភាពកុំព្យូទ័រយួរដៃ.Dell {}

  1. អ្នក​អាច​ប្រើ​បរិបទ​សម្រាប់​ផ្នែក namespace ដែល​បាន​បង្កប់។ - ឧទាហរណ៍,

namespace laptop;អង្គភាព Dell {}           //> កុំព្យូទ័រយួរដៃ.Dellបរិបទ Apple { អង្គភាព MacBookPro {}       //> laptop.Apple.MacBookPro     អង្គភាព MacBookAir {} }

 

អង្គភាព

ធាតុគឺដូចជាតារាងដែលមានសោចម្បង។ យើងអាចអនុវត្តប្រតិបត្តិការ CRUD ដោយប្រើអង្គភាពទាំងនេះ។ រក្សាវាឱ្យរាបស្មើតាមដែលអាចធ្វើទៅបាន។ កុំធ្វើឱ្យវាហួសប្រមាណ។ កុំប្រើប្រភេទដែលមិនអាចប្រើឡើងវិញបាន។ ផ្នែកនេះគឺសម្រាប់តែការធ្វើគំរូប៉ុណ្ណោះ មានតែចំណារពន្យល់ដែលទាក់ទងនឹងវិស័យនីមួយៗប៉ុណ្ណោះគួរតែត្រូវបានបន្ថែម ហើយមិនមានព័ត៌មានលម្អិតបច្ចេកទេស (តក្កវិជ្ជា) គួរតែត្រូវបានបន្ថែមទេ។

ប្រភេទ

ប្រភេទគឺដូចជា Domain នៅក្នុង SAP ABAP វាប្រើដើម្បីកំណត់ប្រភេទនៃធាតុទិន្នន័យ។

ទិដ្ឋភាព

ទិដ្ឋភាពគឺជាផ្នែកបន្ថែមនៃគំរូ ហើយត្រូវបានប្រើជាចម្បងដើម្បីពង្រីកនិយមន័យ និងចំណារពន្យល់ដែលមានស្រាប់។ នៅពេលដែលគំរូមួយត្រូវបានកំណត់ យើងអាចប្រើឯកសារ cds ផ្សេងគ្នា (Aspect) ដើម្បីបន្ថែមចំណារពន្យល់នៅលើពួកវាសម្រាប់កិច្ចការជាក់លាក់។

ឧទាហរណ៍-

  • ស៊ីឌី- គំរូដែនស្នូលរបស់អ្នក រក្សាស្អាត សាមញ្ញ និងអាចយល់បាន។
  • សវនកម្ម-model.cds- បន្ថែមវាលបន្ថែមដែលត្រូវការសម្រាប់សវនកម្មក្នុងឯកសារ
  • auth-model.cds- បន្ថែមចំណារពន្យល់សម្រាប់ការអនុញ្ញាត។

សោបឋម

ដូចតារាង និង CDS នៅក្នុង SAP ABAP យើងរក្សាសោបឋមសម្រាប់ Entity ដោយប្រើពាក្យគន្លឹះ គន្លឹះ។

កូនសោចម្បងអាចត្រូវបានប្រើឡើងវិញនៅទូទាំងគំរូដោយប្រើវិធីសាស្រ្តនៃនិយមន័យទូទៅ។

យើងអាចបង្កើតគំរូ common.cds ដែលនិយមន័យទូទៅទាំងអស់អាចត្រូវបានរក្សាទុក។

// និយមន័យទូទៅ

អង្គភាព StandardEntity { លេខសម្គាល់គន្លឹះ៖ UUID; } ឥឡូវនេះ និយមន័យទូទៅទាំងនេះអាចត្រូវបានប្រើឡើងវិញដូចខាងក្រោម៖ ដោយប្រើ { StandardEntity } ពី './common'; អង្គភាពបុគ្គលិក : StandardEntity { ឈ្មោះ : ខ្សែអក្សរ; ... } អ្នកគ្រប់គ្រងអង្គភាព : StandardEntity { ឈ្មោះ : ខ្សែអក្សរ; ... }

 

ឯកសារទូទៅត្រូវបានបង្កើតរួចហើយតាមលំនាំដើមជាមួយអង្គភាពដែលបានកំណត់ជាមុនដែលមានឈ្មោះ ឃ្យូដ.

ការធ្វើផែនទី UUIDs ទៅ OData

CDS ធ្វើផែនទី UUIDs ទៅ Edm.Guid តាមលំនាំដើមនៅក្នុងគំរូ OData ទាំងអស់។ ទោះយ៉ាងណាក៏ដោយ ស្តង់ដារ OData បង្កើតច្បាប់រឹតត្បិតសម្រាប់តម្លៃ Edm.Guid - ឧទាហរណ៍ មានតែខ្សែអក្សរដែលដាក់សហសញ្ញាប៉ុណ្ណោះដែលត្រូវបានអនុញ្ញាត - ដែលអាចប៉ះទង្គិចជាមួយទិន្នន័យដែលមានស្រាប់។ ដូច្នេះ យើងអនុញ្ញាតឲ្យការគូសផែនទីលំនាំដើមត្រូវបានបដិសេធដូចខាងក្រោម៖

សៀវភៅអង្គភាព {

លេខសម្គាល់គន្លឹះ៖ UUID @odata.ប្រភេទ៖ 'Edm.String';

...

}

បើចាំបាច់ អ្នកក៏អាចបន្ថែមចំណារពន្យល់ @odata.MaxLength ដើម្បីបដិសេធទ្រព្យសម្បត្តិដែលត្រូវគ្នាផងដែរ។

សមាគម

វាត្រូវបានប្រើដើម្បីកំណត់ទំនាក់ទំនងរវាងអង្គភាពពីរ។ ដូច ABAP CDS ដែរ នៅទីនេះយើងប្រើពាក្យ សមាគម។ នៅទីនេះពាក្យគន្លឹះ មនុស្សជាច្រើន ចង្អុលបង្ហាញមួយ 0..* ខា។ ការដាក់កម្រិតសម្រាប់ cardinality អាចត្រូវបានបន្ថែមជាឧបសគ្គមួយ (កន្លែងដែលលក្ខខណ្ឌ) - ឧទាហរណ៍ដោយប្រើ មិន null.

សមាសភាព

មិនដូចសមាគមដែលយើងភ្ជាប់វាលនៃអង្គភាពជាមួយវត្ថុនៃអង្គភាពទាំងមូលទេ សមាសភាពគ្រាន់តែសំដៅទៅលើវាលជាក់លាក់នៃអង្គភាពមួយផ្សេងទៀត។ វាមានអត្ថប្រយោជន៍បន្ថែមនៃប្រតិបត្តិការស៊ីជម្រៅដែលគ្រប់គ្រងដោយខ្លួនឯង (បញ្ចូល/ធ្វើបច្ចុប្បន្នភាព) និងការលុបដោយល្បាក់ (ការលុបតារាងអាស្រ័យច្រើន)។

// កំណត់ការបញ្ជាទិញជាមួយវត្ថុបញ្ជាដែលមានការបញ្ជាទិញអង្គភាព { លេខសម្គាល់គន្លឹះ៖ UUID; Items : សមាសភាពនៃ Order_Items ជាច្រើននៅលើ Items.parent=$self;}entity Order_Items { // នឹងត្រូវបានចូលដំណើរការតាមរយៈការបញ្ជាទិញតែប៉ុណ្ណោះ  មេសំខាន់ : សមាគមទៅនឹងការបញ្ជាទិញ; សៀវភៅគន្លឹះ៖ សមាគមសៀវភៅ; បរិមាណ៖ ចំនួនគត់;}

ការអនុវត្តល្អបំផុត

  1. កុំបន្ថែមព័ត៌មានលម្អិតបច្ចេកទេសនៅក្នុងម៉ូដែល យើងប្រើ ទិដ្ឋភាពសម្រាប់​របស់​នោះ
  2. ការប្រើ ឈ្មោះខ្លី និង ម៉ូដែលផ្ទះល្វែងសាមញ្ញ
  3. កុំធ្វើលើសធម្មតា អង្គភាពនៅក្នុងគំរូ
  4. ប្រើលំដាប់ចំនួនគត់ក្នុងស្រុក ប្រសិនបើអ្នកពិតជាដោះស្រាយជាមួយនឹងបន្ទុក និងបរិមាណខ្ពស់។ បើមិនដូច្នោះទេ ចូលចិត្ត UUIDs

រហូតមកដល់ពេលនេះ អ្វីដែលយើងបានរៀន៖ ការបង្កើតគំរូ និងទិដ្ឋភាពនៅលើកំពូលរបស់វា។

ការធ្វើគំរូដែននៅក្នុង SAP CAP

ទុកឱ្យសេចក្តីអធិប្បាយ

តំបន់បណ្ដាញនេះប្រើ Akismet ដើម្បីកាត់បន្ថយសារឥតបានការ។ សិក្សាអំពីរបៀបដែលទិន្នន័យរបស់អ្នកត្រូវបានដំណើរការ.