SAP CAP में डोमेन मॉडलिंग

परिचय

एसएपी सीएपी में एक डोमेन मॉडल एक मॉडल है जो इकाई-संबंध मॉडल के संदर्भ में एक समस्या डोमेन के स्थिर, डेटा-संबंधित पहलुओं का वर्णन करता है। इस लेख में हम SAP CAP में डोमेन मॉडलिंग का विस्तार से अध्ययन करेंगे।

डोमेन मॉडलिंग

सरल शब्दों में, SAP CAP में एक CDS डोमेन मॉडल को इस तरह से तैयार करता है कि यह कुंजी, फ़ील्ड और एनोटेशन के संदर्भ में व्यावसायिक समस्या को परिभाषित करता है। एक डोमेन मॉडल बनाने के लिए कोड एक CDS स्कीमा (db/schema.cds) में लिखा जाता है। इन डोमेन मॉडल का उपयोग सेवा परिभाषाओं, दृढ़ता मॉडल, डेटाबेस में किया जा सकता है या किसी अन्य डोमेन मॉडल के भीतर भी पुन: उपयोग किया जा सकता है।

नमूना उदाहरण:

नेमस्पेस एम्पइन्फो; '@sap/cds/common' से {मुद्रा, प्रबंधित} का उपयोग करना; इकाई कर्मचारी: प्रबंधित {कुंजी आईडी: पूर्णांक; पहला नाम: स्थानीयकृत स्ट्रिंग (111); अंतिम नाम: स्थानीयकृत स्ट्रिंग (1111); प्रबंधक: प्रबंधकों से संघ; शामिल होने की तिथि: पूर्णांक; वेतन: दशमलव (9,2); मुद्रा: मुद्रा; }

 

इस उदाहरण में हमने एक फ़ाइल schema.cds बनाई है जहाँ हमने एक कर्मचारी बनाया है जिसमें एक कर्मचारी का मूल विवरण शामिल है

इस पूरे स्कीमा को एक नाम स्थान दिया गया है अर्थात empInfo

यह स्कीमा एक मानक डेटा प्रकार अर्थात मुद्रा का उपयोग करती है। इस तरह के मानक डेटा प्रकार का उपयोग करने से हमें इससे संबंधित सभी पूर्वनिर्धारित मूल्यों को लाने में मदद मिलती है।

हम मॉडल बनाने के लिए सीडीएस का उपयोग करते हैं। उस सीडीएस में, हम उपयोग करते हैं

  1. अद्वितीय वस्तुओं के सेट का प्रतिनिधित्व करने वाली संस्थाएं जैसे:
    1. कर्मचारी बुनियादी जानकारी
    2. कर्मचारी संचार सूचना
    3. कर्मचारी वेतन सूचना
  2. संबंधों को परिभाषित करने के लिए संघ
    1. किसी अन्य इकाई प्रबंधक के लिए प्रबंधक संघ जिसमें सभी प्रबंधक सूची होगी

नामकरण सम्मेलन और सिफारिशें

  1. इकाई का नाम एक बड़े अक्षर से शुरू होना चाहिए और यह मानव पठनीय और स्व-व्याख्यात्मक होना चाहिए - उदाहरण के लिए, कर्मचारी
  2. तत्वों को लोअरकेस अक्षर से शुरू करें - उदाहरण के लिए, firstName
  3. संस्थाओं के बहुवचन रूप का उपयोग करने की अनुशंसा की जाती है - उदाहरण के लिए, कर्मचारी
  4. एकवचन रूप का उपयोग करने की अनुशंसा की जाती है - उदाहरण के लिए, मुद्रा
  5. संदर्भों को न दोहराएं - उदाहरण के लिए, कर्मचारियों के बजाय कर्मचारी का नाम। कर्मचारी का नाम
  6. एक शब्द के नाम पसंद करें - उदाहरण के लिए, वेतन के बजाय वेतनअमाउंट
  7. तकनीकी प्राथमिक कुंजी के लिए आईडी का उपयोग करें - उदाहरण के लिए, कर्मचारी आईडी के लिए आईडी
  8. आप अपनी संस्थाओं को विशिष्ट बनाने के लिए नेमस्पेस का उपयोग कर सकते हैं। यह एसएपी में क्लाइंट अवधारणा की तरह है जहां आप उन्हें अलग करने के लिए अद्वितीय नेमस्पेस के साथ डुप्लिकेट स्कीमा (सीडीएस फाइलें) रख सकते हैं। नामस्थान वैकल्पिक हैं, यदि आपके मॉडल का अन्य परियोजनाओं में पुन: उपयोग किया जा सकता है तो नामस्थान का उपयोग करें। दिन के अंत में वे केवल उपसर्ग होते हैं, जो स्वचालित रूप से फ़ाइल में सभी प्रासंगिक नामों पर लागू होते हैं। - उदाहरण के लिए,

नेमस्पेस लैपटॉप; इकाई डेल {}

..… के बराबर है:

इकाई लैपटॉप। डेल {}

  1. आप नेस्टेड नेमस्पेस अनुभागों के लिए संदर्भों का उपयोग कर सकते हैं। - उदाहरण के लिए,

नेमस्पेस लैपटॉप; इकाई डेल {}           //> लैपटॉप। डेलसंदर्भ ऐप्पल {इकाई मैकबुकप्रो {}       //> लैपटॉप।Apple.MacBookPro     इकाई मैकबुकएयर {} }

 

संस्थाओं

निकाय प्राथमिक कुंजी वाली तालिकाओं की तरह हैं। हम इन संस्थाओं का उपयोग करके CRUD संचालन कर सकते हैं। इसे जितना हो सके फ्लैट रखें। इसे सामान्यीकृत न करें। गैर-पुन: प्रयोज्य प्रकारों का उपयोग न करें। यह खंड केवल मॉडलिंग के लिए है, केवल अलग-अलग क्षेत्रों से संबंधित एनोटेशन जोड़ा जाना चाहिए और कोई तकनीकी विवरण (तर्क) नहीं जोड़ा जाना चाहिए।

प्रकार

प्रकार एसएपी एबीएपी में डोमेन की तरह हैं, यह डेटा तत्वों के प्रकार को परिभाषित करने के लिए प्रयोग किया जाता है।

पहलुओं

पहलू मॉडल के विस्तार हैं और मुख्य रूप से मौजूदा परिभाषाओं और टिप्पणियों का विस्तार करने के लिए उपयोग किए जाते हैं। एक बार एक मॉडल परिभाषित हो जाने के बाद, हम विशिष्ट कार्य के लिए उनके ऊपर एनोटेशन जोड़ने के लिए विभिन्न सीडी फाइलों (पहलू) का उपयोग कर सकते हैं।

उदाहरण के लिए-

  • सीडी- आपका मुख्य डोमेन मॉडल, स्वच्छ, सरल और समझने योग्य रखा गया
  • ऑडिट-मॉडल.सीडीएस- फ़ाइल में ऑडिटिंग के लिए आवश्यक अतिरिक्त फ़ील्ड जोड़ता है
  • प्रमाणीकरण-model.cds- प्राधिकरण के लिए एनोटेशन जोड़ता है।

प्राथमिक कुंजी

एसएपी एबीएपी में टेबल और सीडीएस की तरह, हम कीवर्ड का उपयोग करके इकाई के लिए प्राथमिक कुंजी बनाए रखते हैं कुंजी।

सामान्य परिभाषाओं की पद्धति का उपयोग करके मॉडल में एक प्राथमिक कुंजी का पुन: उपयोग किया जा सकता है।

हम एक common.cds मॉडल बना सकते हैं जहाँ सभी सामान्य परिभाषाएँ संग्रहीत की जा सकती हैं।

// सामान्य परिभाषाएँ

इकाई StandardEntity {कुंजी आईडी: UUID; } अब इन सामान्य परिभाषाओं को निम्नानुसार पुन: उपयोग किया जा सकता है: './common' से { StandardEntity } का उपयोग करना; इकाई कर्मचारी: StandardEntity {नाम: स्ट्रिंग; ... } इकाई प्रबंधक : StandardEntity { नाम : String; ...}

 

सामान्य फ़ाइल पहले से ही एक पूर्वनिर्धारित इकाई के साथ डिफ़ॉल्ट रूप से बनाई गई है क्यूइड.

UUIDs को OData में मैप करना

CDS सभी OData मॉडलों में डिफ़ॉल्ट रूप से, UUIDs को Edm.Guid में मैप करता है। हालाँकि, OData मानक Edm.Guid मानों के लिए प्रतिबंधात्मक नियम रखता है - उदाहरण के लिए, केवल हाइफ़नेटेड स्ट्रिंग्स की अनुमति है - जो मौजूदा डेटा के साथ विरोध कर सकती है। इसलिए, हम डिफ़ॉल्ट मैपिंग को निम्नानुसार ओवरराइड करने की अनुमति देते हैं:

इकाई पुस्तकें {

कुंजी आईडी: यूयूआईडी @ओडाटाटाइप: 'एडम.स्ट्रिंग';

...

}

यदि आवश्यक हो, तो आप संबंधित गुण को ओवरराइड करने के लिए एनोटेशन @odata.MaxLength भी जोड़ सकते हैं।

संघ

इसका उपयोग दो संस्थाओं के बीच संबंध को परिभाषित करने के लिए किया जाता है। ABAP CDS की तरह यहाँ भी हम शब्द का प्रयोग करते हैं एसोसिएशन। यहाँ, कीवर्ड बहुत इंगित करता है a 0..* कार्डिनैलिटी। कार्डिनैलिटी के लिए प्रतिबंधों को एक बाधा (जहां स्थिति) के रूप में जोड़ा जा सकता है - उदाहरण के लिए, का उपयोग करना अशक्त नहीं.

रचनाएं

एसोसिएशन के विपरीत जहां हम एक संपूर्ण इकाई की वस्तुओं के साथ इकाई के क्षेत्र को जोड़ते हैं, रचनाएं केवल किसी अन्य इकाई के विशिष्ट क्षेत्र को संदर्भित करती हैं। इसमें स्व-प्रबंधित डीप ऑपरेशंस (इन्सर्ट/अपडेट) और कैस्केड डिलीट (मल्टी डिपेंडेंट टेबल डिलीशन) का अतिरिक्त लाभ है।

// निहित ऑर्डर के साथ ऑर्डर को परिभाषित करेंइकाई आदेश {कुंजी आईडी: यूयूआईडी; आइटम : Items.parent=$self;}entity Order_Items पर कई ऑर्डर_आइटम की संरचना { // केवल आदेशों के माध्यम से पहुँचा जा सकता है  प्रमुख अभिभावक : आदेशों का संघ; मुख्य पुस्तक : एसोसिएशन टू बुक्स; मात्रा: पूर्णांक;}

सर्वोत्तम अभ्यास

  1. मॉडल में तकनीकी विवरण न जोड़ें, हम उपयोग करते हैं पहलुओंउस के लिए
  2. उपयोग संक्षिप्त नाम और सरल फ्लैट मॉडल
  3. मॉडल में संस्थाओं को सामान्यीकृत न करें
  4. यदि आप वास्तव में उच्च भार और मात्रा से निपटते हैं तो स्थानीय पूर्णांक अनुक्रमों का उपयोग करें। अन्यथा, यूयूआईडी को प्राथमिकता दें

अब तक हमने क्या सीखा: मॉडल का निर्माण और उसके ऊपर पहलू।

SAP CAP में डोमेन मॉडलिंग

एक टिप्पणी छोड़ें

यह साइट स्पैम को कम करने के लिए अकिस्मेट का उपयोग करती है। जानें कि आपका डेटा कैसे संसाधित किया जाता है.