BADI क्या है? SAP एबीएपी?
⚡ स्मार्ट सारांश
बड़ी में SAP ABAP का मतलब बिजनेस ऐड-इन है, जो एक ऑब्जेक्ट ओरिएंटेड एनहांसमेंट है जो कस्टम लॉजिक को स्टैंडर्ड सिस्टम से जोड़ता है। SAP कार्यक्षमता। यह पृष्ठ बताता है कि BADI क्या है, इसकी विशेषताएं, क्लासिक और नए प्रकार, SE18 और SE19 वर्कफ़्लो, और यह एग्जिट्स से कैसे अलग है।

BADI क्या है?
BADI का मतलब है Business Add Iकस्टमर एग्जिट्स की तरह ही, BADI कस्टम एन्हांसमेंट को जोड़ने में मदद करता है। SAP कार्यक्षमता। BADI का उदाहरण: ट्रांजैक्शन CAT2 – टाइम शीट एंट्री में, HR एक इंटरैक्टिव स्वीकृति शामिल करना चाहता है कि जानबूझकर गलत डेटा सबमिट करना बर्खास्तगी का आधार है। यह BADI का उपयोग करके प्राप्त किया जा सकता है
पारंपरिक एग्जिट से इसका अंतर तकनीकी है। BADI ABAP ऑब्जेक्ट्स पर आधारित होता है, इसलिए मानक प्रोग्राम एक इंटरफ़ेस विधि को कॉल करता है, और कस्टम कोड उस विधि को लागू करने वाली क्लास में रहता है। यही कारण है कि BADI को अक्सर ऑब्जेक्ट ओरिएंटेड एग्जिट का उत्तराधिकारी कहा जाता है। ग्राहक निकास.
विशेषताएं
- BADI ऑब्जेक्ट ओरिएंटेड हैं
- इन्हें कई बार क्रियान्वित किया जा सकता है
- इसकी आवश्यकता नहीं है SAP सॉफ्टवेयर पंजीकरण बदलें
- BADI के कामकाज पर रिलीज अपग्रेड का कोई प्रभाव नहीं
ये चार विशेषताएं बताती हैं कि क्यों SAP यह क्लासिक एग्जिट के बजाय BADI की अनुशंसा करता है। चूंकि यह एन्हांसमेंट एक अलग क्लास में है, इसलिए यह अपग्रेड के दौरान अपरिवर्तित रहता है, और चूंकि BADI को मल्टीपल यूज़ के रूप में परिभाषित किया जा सकता है, इसलिए कई टीमें एक-दूसरे को ओवरराइट किए बिना एक ही बिंदु को एन्हांस कर सकती हैं।
BADI के प्रकार
SAP यह दो पीढ़ियों के बिजनेस ऐड-इन्स प्रदान करता है। क्लासिक BADI ऊपर वर्णित संवर्द्धन-आधारित संस्करण है, और नया BADI, जिसे इसके साथ पेश किया गया है। SAP नेटवीवर, एन्हांसमेंट फ्रेमवर्क का हिस्सा है और यह तेज़ और अधिक लचीला है।
| मापदंड | क्लासिक बाडी | नया (कर्नेल) BADI |
|---|---|---|
| में बनाए रखा गया | SE18 और SE19 | एनहांसमेंट स्पॉट के अंदर एनहांसमेंट बिल्डर |
| फ़िल्टर | सरल फ़िल्टर मान | तार्किक अभिव्यक्तियों के साथ फ़िल्टर संयोजन |
| मैदान छोड़ना | अनुपलब्ध | जब कोई कार्यान्वयन सक्रिय नहीं होता है, तो एक डिफ़ॉल्ट फ़ॉलबैक क्लास चलती है। |
| प्रारंभ | CL_EXITHANDLER=>GET_INSTANCE | GET BADI और CALL BADI कथन |
| प्रदर्शन | धीमा, प्रत्येक कॉल पर ऑब्जेक्ट बनाया जाता है | कर्नेल द्वारा प्रबंधित, तेज़ गति से |
दोनों पीढ़ियों को एक समान तरीके से खोजा और कार्यान्वित किया जाता है, जिसका वर्णन आगे किया गया है।
BADI को कैसे परिभाषित और कार्यान्वित करें
इसमें तीन चरण शामिल थे
चरण 1) BADI परिभाषा और उसके इंटरफ़ेस का निर्माण: लेनदेन SE18.
चरण 2) BADI कार्यान्वयन बनाएं: लेनदेन SE19
चरण 3) इंटरफ़ेस को लागू करने वाली एक क्लास को परिभाषित करें: कार्यान्वयन निर्माण के दौरान, संवर्द्धन के इंटरफ़ेस को लागू करने के लिए एक क्लास भी बनाई जाती है।
कोड में, मानक प्रोग्राम एग्जिट हैंडलर के माध्यम से कार्यान्वयन तक पहुँचता है। क्लासिक पैटर्न BADI संदर्भ को इंस्टैंशिएट करता है और फिर इंटरफ़ेस विधि को कॉल करता है।
* Reference typed with the BADI interface DATA: lo_badi TYPE REF TO zif_ex_badi_demo. * Get the active implementation(s) CALL METHOD cl_exithandler=>get_instance CHANGING instance = lo_badi. * Call the interface method that carries the custom logic CALL METHOD lo_badi->check_data EXPORTING is_input = ls_input.
💡टिप: एक नए, कर्नेल BADI को GET BADI और CALL BADI कमांड का उपयोग करके आसानी से कॉल किया जा सकता है, जो फ़िल्टर मानों को भी स्वचालित रूप से संभालते हैं। कॉल लिखने से पहले यह जांचने के लिए SE18 का उपयोग करें कि एन्हांसमेंट पॉइंट एक क्लासिक BADI है या एक नया BADI।
⚠️ चेतावनी: ट्रांज़ैक्शन SE18 में परिभाषा और इंटरफ़ेस होते हैं, जबकि SE19 में कार्यान्वयन होता है। SE18 में कार्यान्वयन बनाना, या SE19 में परिभाषा बनाना एक आम गलती है जिसके कारण BADI निष्क्रिय हो जाता है।
BADI बनाम कस्टमर एग्जिट बनाम यूजर एग्जिट
तीनों तकनीकें मानक को बढ़ाती हैं। SAPलेकिन तकनीक और लचीलेपन के मामले में इनमें अंतर है। नीचे दी गई तालिका में BADI को दो पुराने मॉडलों के साथ दिखाया गया है। निकास तकनीकें.
| मापदंड | उपयोगकर्ता निकास | ग्राहक निकास | बाड़ी |
|---|---|---|---|
| टेक्नोलॉजी | सब रूटीन (फॉर्म) | फ़ंक्शन मॉड्यूल, स्क्रीन या मेनू | ऑब्जेक्ट ओरिएंटेड इंटरफ़ेस और क्लास |
| विस्तार | केवल एसडी मॉड्यूल | सभी मॉड्यूल | सभी मॉड्यूल |
| कार्यान्वयनों की संख्या | एक | एक | एकाधिक, जब इसे एकाधिक उपयोग के रूप में परिभाषित किया जाता है |
| के साथ बनाए रखा गया | शामिल का सीधा संपादन | SMOD और CMOD | SE18 और SE19 |
| Upgrade सुरक्षित | एसपीएयू से जाँच की गई | हाँ | हाँ |
व्यवहारिक नियम यह है कि जब भी कोई BADI मौजूद हो, उसका उपयोग किया जाए, क्योंकि यह ऑब्जेक्ट ओरिएंटेड है, अपग्रेड के लिए सुरक्षित है, और इसे एक से अधिक बार लागू किया जा सकता है।



