BADI क्या है? SAP एबीएपी?

⚡ स्मार्ट सारांश

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

  • 🧩 मूल परिभाषा: बिजनेस ऐड-इन एक एन्हांसमेंट हुक है, जैसे कि कस्टमर एग्जिट, जो मानक सुविधाओं में कस्टम कार्यक्षमता जोड़ता है। SAP बिना उसमें कोई बदलाव किए।
  • 🧱 वस्तु के उन्मुख: एक BADI एक इंटरफ़ेस को परिभाषित करता है, और संवर्द्धन एक आरक्षित इंक्लूड के बजाय, उस क्लास में रहता है जो इसे लागू करता है।
  • 🔁 एकाधिक कार्यान्वयन: कस्टमर एग्जिट के विपरीत, BADI को कई बार लागू किया जा सकता है, जो उद्योग समाधानों और देश-स्तरीय संस्करणों के लिए उपयुक्त है।
  • 🔓 Upgrade सुरक्षित: एक BADI को इसकी आवश्यकता नहीं है SAP सॉफ्टवेयर परिवर्तन पंजीकरण किसी रिलीज अपग्रेड से अप्रभावित रहता है।
  • परिभाषा एवं कार्यान्वयन: परिभाषा और इंटरफ़ेस SE18 में बनाए जाते हैं, और कार्यान्वयन और उसकी क्लास SE19 में बनाई जाती है।
  • 🆕 क्लासिक और नया: पारंपरिक BADI संवर्धन-आधारित है, और NetWeaver में पेश किया गया नया कर्नेल BADI फ़िल्टर, फ़ॉलबैक क्लास और बेहतर प्रदर्शन प्रदान करता है।

BADI क्या है? SAP ABAP

BADI क्या है?

BADI का मतलब है Business Add Iकस्टमर एग्जिट्स की तरह ही, BADI कस्टम एन्हांसमेंट को जोड़ने में मदद करता है। SAP कार्यक्षमता। BADI का उदाहरण: ट्रांजैक्शन CAT2 – टाइम शीट एंट्री में, HR एक इंटरैक्टिव स्वीकृति शामिल करना चाहता है कि जानबूझकर गलत डेटा सबमिट करना बर्खास्तगी का आधार है। यह BADI का उपयोग करके प्राप्त किया जा सकता है

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.

BADI को परिभाषित और कार्यान्वित करें

चरण 2) BADI कार्यान्वयन बनाएं: लेनदेन SE19

BADI को परिभाषित और कार्यान्वित करें

चरण 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 मौजूद हो, उसका उपयोग किया जाए, क्योंकि यह ऑब्जेक्ट ओरिएंटेड है, अपग्रेड के लिए सुरक्षित है, और इसे एक से अधिक बार लागू किया जा सकता है।

अक्सर पूछे जाने वाले प्रश्न

SE18 BADI बिल्डर है जहाँ परिभाषा और उसका इंटरफ़ेस बनाया जाता है। SE19 इम्प्लीमेंटेशन बिल्डर है जहाँ उस परिभाषा से एक इम्प्लीमेंटिंग क्लास को जोड़ा जाता है। एक हुक को परिभाषित करता है, दूसरा उसे पूरा करता है।

एक मल्टीपल यूज़ BADI एक ही समय में एक से अधिक सक्रिय कार्यान्वयन की अनुमति देता है, और विधि को कॉल किए जाने पर वे सभी चलते हैं। सिंगल यूज़ BADI केवल एक सक्रिय कार्यान्वयन की अनुमति देता है।

CL_EXITHANDLER=>GET_INSTANCE पर ब्रेकपॉइंट सेट करें, ट्रांज़ैक्शन चलाएँ और EXIT_NAME पैरामीटर से BADI नाम पढ़ें। नए BADI के लिए, रिपॉजिटरी सूचना प्रणाली में प्रोग्राम के एन्हांसमेंट स्पॉट खोजें।

जी हां। ABAP डेवलपमेंट टूल्स में AI असिस्टेंट, आवश्यकता के विवरण के आधार पर इम्प्लीमेंटिंग क्लास, मेथड बॉडी और फ़िल्टर लॉजिक तैयार करते हैं। डेवलपर फिर भी SE19 में इम्प्लीमेंटेशन को एक्टिवेट करके उसका परीक्षण करता है।

एआई सलाहकार मानक प्रोग्राम की जांच करते हैं और उपलब्ध संवर्द्धन विकल्पों की रिपोर्ट करते हैं, फिर नए कार्य के लिए संवर्द्धन क्षेत्र में नए बीएडीआई की अनुशंसा करते हैं।ping क्लासिक BADI जिसमें केवल वही विकल्प उपलब्ध है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: