ما هو BADI؟ SAP ABAP؟

⚡ ملخص ذكي

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

  • 🧩 التعريف الأساسي: إضافة الأعمال هي أداة تحسين، مثل مخرج العميل، تربط وظائف مخصصة بالوظائف القياسية SAP دون تعديله.
  • 🧱 البرمجة الكائنية التوجه: يُعرّف BADI واجهة، ويوجد التحسين في فئة تُنفذها، بدلاً من تضمين محجوز.
  • 🔁 تطبيقات متعددة: على عكس مخرج العميل، يمكن تنفيذ BADI عدة مرات، مما يناسب حلول الصناعة والإصدارات القطرية.
  • 🔓 Upgrade آمنة: لا يحتاج البادي إلى SAP تسجيل تغييرات البرامج ولا يتأثر بترقية الإصدار.
  • 🛠️ التعريف والتنفيذ: يتم إنشاء التعريف والواجهة في SE18، ويتم إنشاء التنفيذ مع فئته في SE19.
  • 🆕 كلاسيكي وجديد: يعتمد BADI الكلاسيكي على التحسينات، ويضيف BADI الجديد الخاص بالنواة الذي تم تقديمه في NetWeaver عوامل التصفية وفئات التراجع وأداءً أفضل.

ما هو BADI؟ SAP ABAP

ما هو بادي؟

بادي لتقف على 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.

تحديد وتنفيذ 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 للتحقق مما إذا كانت نقطة التحسين واجهة برمجة تطبيقات كلاسيكية أم جديدة قبل كتابة الاستدعاء.

⚠️ تحذير: تحتوي المعاملة SE18 على التعريف والواجهة، بينما تحتوي المعاملة SE19 على التنفيذ. يُعد إنشاء التنفيذ في SE18، أو التعريف في SE19، خطأً شائعًا يؤدي إلى تعطيل BADI.

BADI مقابل مخرج العميل مقابل مخرج المستخدم

تعمل التقنيات الثلاث جميعها على تحسين المستوى. SAPلكنها تختلف في التكنولوجيا والمرونة. يوضح الجدول أدناه وضع BADI بجانب الجهازين الأقدم. أساليب الخروج.

المعايير مخرج المستخدم مخرج العميل بادي
التكنولوجيا روتين فرعي (نموذج) وحدة الوظائف أو الشاشة أو القائمة واجهة وفئة كائنية التوجه
مجال وحدة بطاقة SD فقط جميع الوحدات جميع الوحدات
عدد التطبيقات واحد واحد متعدد، عند تعريفه على أنه استخدام متعدد
تمت صيانته بواسطة التحرير المباشر للتضمين SMOD و CMOD SE18 و SE19
Upgrade خزنة تم التحقق من ذلك مع SPAU نعم نعم

القاعدة العملية هي استخدام BADI كلما كان موجودًا، لأنه كائني التوجه، وآمن للتحديث، ويمكن تنفيذه أكثر من مرة.

الأسئلة الشائعة

SE18 هو مُنشئ BADI حيث يتم إنشاء التعريف وواجهته. أما SE19 فهو مُنشئ التنفيذ حيث يتم ربط فئة التنفيذ بهذا التعريف. يُحدد أحدهما الخطاف، بينما يقوم الآخر بتنفيذه.

يسمح BADI متعدد الاستخدامات بتشغيل أكثر من تطبيق واحد في الوقت نفسه، وتعمل جميعها عند استدعاء الدالة. أما BADI أحادي الاستخدام فيسمح بتشغيل تطبيق واحد فقط.

ضع نقطة توقف على CL_EXITHANDLER=>GET_INSTANCE، ثم شغّل العملية، واقرأ اسم BADI من مُعامل EXIT_NAME. بالنسبة لـ BADIs الجديدة، ابحث عن نقاط التحسين الخاصة بالبرنامج في نظام معلومات المستودع.

نعم. تقوم مساعدات الذكاء الاصطناعي في أدوات تطوير ABAP بصياغة فئة التنفيذ، وجسم الدالة، ومنطق التصفية بناءً على وصف المتطلبات. مع ذلك، يقوم المطور بتفعيل التنفيذ في SE19 واختباره.

يقوم مستشارو الذكاء الاصطناعي بفحص البرنامج القياسي وتقديم تقرير عن خيارات التحسين المتاحة، ثم يوصون باستخدام BADI الجديد في مكان التحسين للعمل الجديد، ويحتفظونping BADI الكلاسيكي حيث يتم تقديم هذا الخيار فقط.

تلخيص هذه التدوينة بـ: