Դոմենի մոդելավորում SAP CAP-ում

ներածություն

SAP CAP-ում տիրույթի մոդելը մի մոդել է, որը նկարագրում է խնդրի տիրույթի ստատիկ, տվյալների հետ կապված ասպեկտները՝ կազմակերպություն-հարաբերությունների մոդելների տեսանկյունից: Այս հոդվածում մենք մանրամասն կուսումնասիրենք տիրույթի մոդելավորումը SAP CAP-ում:

Դոմենի մոդելավորում

Պարզ խոսքերով, SAP CAP-ում CDS-ն արտադրում է տիրույթի մոդելը այնպես, որ այն սահմանում է բիզնեսի խնդիրը բանալիների, դաշտերի և ծանոթագրությունների առումով: Դոմենի մոդել ստեղծելու կոդը գրված է CDS սխեմայում (db/schema.cds): Այս տիրույթի մոդելները կարող են օգտագործվել ծառայության սահմանումների, կայունության մոդելների, տվյալների շտեմարանների մեջ կամ նույնիսկ վերօգտագործվել մեկ այլ տիրույթի մոդելում:

Նմուշ Օրինակ.

Անվանատարածք empInfo; օգտագործելով {Currency, կառավարվող} «@sap/cds/common»-ից; կազմակերպություն Աշխատակիցներ՝ կառավարվող { key ID՝ Integer; Անուն. տեղայնացված տող (111); ազգանունը` տեղայնացված տող (1111); մենեջեր՝ ասոցիացիա մենեջերներին; Միանալու ամսաթիվը՝ ամբողջ թիվ; աշխատավարձը՝ տասնորդական (9,2); արժույթ՝ արժույթ; }

 

Այս օրինակում մենք ստեղծել ենք ֆայլ schema.cds, որտեղ մենք ստեղծել ենք Աշխատակիցներ, որը ներառում է Աշխատողի հիմնական մանրամասները:

Այս ամբողջ սխեմային տրվել է անվանատարածք, այսինքն empInfo

Այս սխեման օգտագործում է ստանդարտ տվյալների տեսակ, օրինակ՝ արժույթ: Նման ստանդարտ տվյալների տիպի օգտագործումն օգնում է մեզ բերել դրա հետ կապված բոլոր կանխորոշված ​​արժեքային օգնությունները:

Մոդել ստեղծելու համար մենք օգտագործում ենք CDS: Այդ CDS-ում մենք օգտագործում ենք

  1. Սուբյեկտներ, որոնք ներկայացնում են եզակի օբյեկտների հավաքածու, օրինակ՝
    1. Աշխատակիցների հիմնական տեղեկատվություն
    2. Աշխատակիցների հաղորդակցման տեղեկատվությունը
    3. Աշխատակիցների աշխատավարձի մասին տեղեկատվություն
  2. Հարաբերությունները սահմանելու ասոցիացիաներ
    1. Կառավարիչների միավորում մեկ այլ կազմակերպության Կառավարիչ, որը կունենա բոլոր Կառավարիչների ցուցակը

Անվանման կոնվենցիա և առաջարկություններ

  1. Կազմակերպության անվանումը պետք է սկսվի մեծատառով, այն պետք է լինի մարդու համար ընթեռնելի և ինքնաբացատրելի, օրինակ՝ Աշխատակիցներ
  2. Սկսեք տարրերը փոքրատառով, օրինակ՝ firstName
  3. Խորհուրդ է տրվում օգտագործել սուբյեկտների հոգնակի ձև, օրինակ՝ Աշխատակիցներ
  4. Խորհուրդ է տրվում օգտագործել տեսակների եզակի ձև, օրինակ՝ արժույթ
  5. մի կրկնեք համատեքստերը, օրինակ՝ Employees.name փոխարեն Employees.EmployeeName
  6. նախընտրում են մեկ բառով անուններ, օրինակ՝ աշխատավարձ աշխատավարձի փոխարեն Գումար
  7. օգտագործեք ID-ն տեխնիկական առաջնային բանալիների համար, օրինակ՝ ID-ն աշխատողի ID-ի համար
  8. Դուք կարող եք օգտագործել Անունների տարածությունը՝ ձեր կազմավորումները եզակի դարձնելու համար: Դա նման է SAP-ի հաճախորդի հայեցակարգին, որտեղ դուք կարող եք ունենալ կրկնօրինակ սխեմաներ (CD ֆայլեր) եզակի Անվանատարածքով՝ դրանք տարբերելու համար: Անվանատարածքները կամընտիր են, օգտագործեք անունների տարածքներ, եթե ձեր մոդելները կարող են կրկին օգտագործվել այլ նախագծերում: Օրվա վերջում դրանք պարզապես նախածանցներ են, որոնք ավտոմատ կերպով կիրառվում են ֆայլի բոլոր համապատասխան անունների վրա: - օրինակ,

անվանատարածք նոութբուք;նություն Dell {}

..… համարժեք է.

դյուրակիր համակարգիչ.Dell {}

  1. Դուք կարող եք օգտագործել համատեքստեր ներդիր անվանատարածքի բաժինների համար: - օրինակ,

անվանատարածք նոութբուք;նություն Dell {}           //> laptop.Dellհամատեքստ Apple { entity MacBookPro {}       //> laptop.Apple.MacBookPro     միավոր MacBookAir {} }

 

Կազմակերպություններ

Սուբյեկտները նման են հիմնական բանալիներով աղյուսակների: Մենք կարող ենք կատարել CRUD գործողություն՝ օգտագործելով այս սուբյեկտները: Պահպանեք այն հնարավորինս հարթ: Չափից ավելի նորմալացնել այն: Մի օգտագործեք չվերօգտագործվող տեսակներ: Այս բաժինը միայն մոդելավորման համար է, պետք է ավելացվի միայն առանձին դաշտերի հետ կապված անոտացիա և չպետք է ավելացվի տեխնիկական մանրամասներ (տրամաբանություն):

Տեսակներ

Տեսակները նման են տիրույթին SAP ABAP-ում, այն օգտագործվում էր տվյալների մուտքագրված տարրերը սահմանելու համար:

Ասպեկտները

Ասպեկտները մոդելների ընդլայնումն են և հիմնականում օգտագործվում են գոյություն ունեցող սահմանումները և ծանոթագրությունները ընդլայնելու համար: Մոդելը սահմանելուց հետո մենք կարող ենք օգտագործել տարբեր CD ֆայլեր (Aspect)՝ դրանց վերևում անոտացիաներ ավելացնելու կոնկրետ առաջադրանքների համար:

Օրինակ-

  • cds– ձեր հիմնական տիրույթի մոդելը, որը մաքուր է, պարզ և հասկանալի
  • audit-model.cds– ավելացնում է ֆայլում աուդիտի համար անհրաժեշտ լրացուցիչ դաշտեր
  • auth-model.cds- ավելացնում է ծանոթագրություններ թույլտվության համար:

Առաջնային բանալիներ

Ինչպես աղյուսակները և CDS-ները SAP ABAP-ում, մենք պահպանում ենք հիմնական բանալիները Entity-ի համար՝ օգտագործելով հիմնաբառը բանալի.

Առաջնային բանալին կարող է կրկին օգտագործվել մոդելի մեջ՝ օգտագործելով ընդհանուր սահմանումների մեթոդաբանությունը:

Մենք կարող ենք ստեղծել common.cds մոդել, որտեղ կարող են պահվել բոլոր ընդհանուր սահմանումները:

// ընդհանուր սահմանումներ

entity StandardEntity { key ID : UUID; } Այժմ այս ընդհանուր սահմանումները կարող են կրկին օգտագործվել ստորև. օգտագործելով { StandardEntity } -ից './common'; entity Employee: StandardEntity {name: String; ... } entity Manager : StandardEntity { name : String; ...}

 

Ընդհանուր ֆայլն արդեն ստեղծվել է լռելյայնորեն՝ անվանված նախապես սահմանված կազմով cuid.

UUID-ների քարտեզագրում OData-ին

CDS-ը UUID-ները քարտեզագրում է Edm.Guid-ին, լռելյայնորեն, OData-ի բոլոր մոդելներում: Այնուամենայնիվ, OData ստանդարտը սահմանում է սահմանափակող կանոններ Edm.Guid արժեքների համար, օրինակ՝ թույլատրվում են միայն գծիկներով տողեր, որոնք կարող են հակասել առկա տվյալներին: Հետևաբար, մենք թույլ ենք տալիս կանխադրված քարտեզագրումը վերացնել հետևյալ կերպ.

էության Գրքեր {

բանալին ID՝ UUID @odata.Type:'Edm.String';

...

}

Անհրաժեշտության դեպքում կարող եք նաև ավելացնել @odata.MaxLength անոտացիան՝ համապատասխան հատկությունը նույնպես վերացնելու համար:

Միացում

Այն օգտագործվում է երկու սուբյեկտների միջև հարաբերությունները սահմանելու համար: Ինչպես ABAP CDS-ը, այստեղ նույնպես մենք օգտագործում ենք բառը Ասոցիացիա: Ահա բանալի բառը շատ ցույց է տալիս ա 0..* կարդինալություն. Կարդինալության սահմանափակումները կարող են ավելացվել որպես սահմանափակում (որտեղ պայման) – օրինակ՝ օգտագործելով ոչ զրոյական.

Կոմպոզիցիաներ

Ի տարբերություն Ասոցիացիայի, որտեղ մենք միավորում ենք էության դաշտը մի ամբողջ էության օբյեկտների հետ, կոմպոզիցիաները պարզապես վերաբերում են մեկ այլ էության կոնկրետ դաշտին: Այն լրացուցիչ առավելություն ունի ինքնուրույն կառավարվող խորը գործառնությունների (Տեղադրել/Թարմացնել) և կասկադային ջնջում (Բազմաթիվ կախված աղյուսակի ջնջում):

// Սահմանել պատվերներ պարունակվող OrderItems-ովentity Orders { key ID : UUID; Items. բազմաթիվ Order_Items-ի կազմություն Items.parent=$self;}entity Order_Items { // հասանելի կլինի միայն Պատվերների միջոցով  հիմնական ծնող. Պատվերների միացում; հիմնական գիրք. Գրքերի ասոցիացիա; քանակ՝ ամբողջ թիվ;}

Լավագույն պրակտիկա

  1. Մի ավելացրեք տեխնիկական մանրամասներ Models-ում, մենք օգտագործում ենք Ասպեկտներըդրա համար
  2. օգտագործում կարճ անուններ և պարզ հարթ մոդելներ
  3. Չափից դուրս նորմալացնել սուբյեկտները մոդելներում
  4. Օգտագործեք տեղական ամբողջ թվերի հաջորդականությունը, եթե իսկապես գործ ունեք բարձր բեռների և ծավալների հետ: Հակառակ դեպքում, նախընտրեք UUID-ները

Մինչ այժմ այն, ինչ մենք սովորել ենք. Մոդելի և դրա վերևում ասպեկտների ստեղծում:

Դոմենի մոդելավորում SAP CAP-ում

Թողնել մեկնաբանություն

Այս կայքը օգտագործում է Akismet- ը սպամի նվազեցման համար: Իմացեք, թե ինչպես է ձեր տվյալները մշակվում.