ما هو BADI؟ SAP ABAP؟
⚡ ملخص ذكي
بادي في SAP ABAP اختصار لـ Business Add-In، وهو تحسين موجه للكائنات يربط منطقًا مخصصًا بالمعيار القياسي SAP الوظائف. تشرح هذه الصفحة ماهية BADI، وميزاته، وأنواعه الكلاسيكية والجديدة، وسير العمل SE18 وSE19، وكيف تتم مقارنته بالمخارج.

ما هو بادي؟
بادي لتقف على Bوحدات التي Add Ins. تمامًا مثل مخارج العملاء، تساعد BADI في ربط التحسينات المخصصة بـ SAP وظائف. مثال على بادي: في معاملة CAT2 – إدخال جدول العمل، يرغب قسم الموارد البشرية في تضمين إقرار تفاعلي بأن تقديم بيانات غير صحيحة عن عمد يعد سببًا للفصل. ويمكن تحقيق ذلك باستخدام BADI
يكمن الاختلاف بين BADI والخروج التقليدي في الجانب التقني. يُبنى BADI على كائنات ABAP، لذا يستدعي البرنامج القياسي دالة واجهة، بينما يوجد الكود المخصص في فئة تُنفذ تلك الدالة. لهذا السبب، يُوصف BADI غالبًا بأنه الوريث الكائني التوجه لـ خروج العميل.
شرح المميزات:
- BADI موجهة نحو الكائنات
- ويمكن تنفيذها عدة مرات
- لا يتطلب ذلك SAP تطبيقات الكمبيوتر تغيير التسجيل
- لا يوجد تأثير على الإصدار الذي تمت ترقيته على عمل BADI
توضح هذه السمات الأربع السبب SAP يوصي باستخدام BADI بدلاً من مخرج تقليدي. ولأن التحسين يقع ضمن فئة منفصلة، فإنه يبقى دون تغيير بعد التحديث، ولأن BADI يمكن تعريفه على أنه متعدد الاستخدام، يمكن لعدة فرق تحسين نفس النقطة دون استبدال بعضها البعض.
أنواع BADI
SAP يُقدّم جيلين من إضافات الأعمال. الإضافة الكلاسيكية هي النسخة المحسّنة المذكورة أعلاه، والإضافة الجديدة هي التي تم طرحها مع SAP يُعد NetWeaver جزءًا من إطار عمل التحسين وهو أسرع وأكثر مرونة.
| المعايير | بادي الكلاسيكية | بادي جديد (نواة) |
|---|---|---|
| تم صيانتها في | 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 للتحقق مما إذا كانت نقطة التحسين واجهة برمجة تطبيقات كلاسيكية أم جديدة قبل كتابة الاستدعاء.
⚠️ تحذير: تحتوي المعاملة SE18 على التعريف والواجهة، بينما تحتوي المعاملة SE19 على التنفيذ. يُعد إنشاء التنفيذ في SE18، أو التعريف في SE19، خطأً شائعًا يؤدي إلى تعطيل BADI.
BADI مقابل مخرج العميل مقابل مخرج المستخدم
تعمل التقنيات الثلاث جميعها على تحسين المستوى. SAPلكنها تختلف في التكنولوجيا والمرونة. يوضح الجدول أدناه وضع BADI بجانب الجهازين الأقدم. أساليب الخروج.
| المعايير | مخرج المستخدم | مخرج العميل | بادي |
|---|---|---|---|
| التكنولوجيا | روتين فرعي (نموذج) | وحدة الوظائف أو الشاشة أو القائمة | واجهة وفئة كائنية التوجه |
| مجال | وحدة بطاقة SD فقط | جميع الوحدات | جميع الوحدات |
| عدد التطبيقات | واحد | واحد | متعدد، عند تعريفه على أنه استخدام متعدد |
| تمت صيانته بواسطة | التحرير المباشر للتضمين | SMOD و CMOD | SE18 و SE19 |
| Upgrade خزنة | تم التحقق من ذلك مع SPAU | نعم | نعم |
القاعدة العملية هي استخدام BADI كلما كان موجودًا، لأنه كائني التوجه، وآمن للتحديث، ويمكن تنفيذه أكثر من مرة.



