SAP شرح BAPI – كيفية إنشاء BAPI في ABAP

⚡ ملخص ذكي

BAPI في SAP لغة ABAP هي طريقة قياسية ومتوافقة مع بروتوكول RFC لإنشاء كائنات الأعمال، مما يسمح للتطبيقات الخارجية بالوصول إلى عمليات وبيانات نظام R/3. تشرح هذه الصفحة واجهات برمجة تطبيقات الأعمال (BAPIs) القياسية، وكيفية إنشاء واحدة في SWO1، واختبارها، وإصدارها، وكيفية استدعاء واجهة برمجة تطبيقات الأعمال من ABAP.

  • ؟؟؟؟ التعريف الأساسي: تُعد واجهة برمجة تطبيقات الأعمال طريقة مستقرة تمنح الأنظمة الخارجية وصولاً موحداً إلى SAP العمليات التجارية والبيانات.
  • 🗃️ مستودع كائنات الأعمال: يتم تعريف BAPIs في BOR كطرق لأنواع كائنات الأعمال ويتم تنفيذها كوحدات وظيفية ممكّنة لـ RFC.
  • 📚 واجهات برمجة التطبيقات الموحدة (BAPIs): توفر GetList و GetDetail و Create و Change و Delete والمتغيرات المتعددة طرقًا قابلة لإعادة الاستخدام للقراءة والكتابة والمعالجة الجماعية.
  • 🛠️ خلق: يتم إنشاء BAPI في المعاملة SWO1 عن طريق إضافة طريقة API تشير إلى وحدة وظائف ممكّنة لـ RFC.
  • ✅ الاختبار والإصدار: يتم اختبار الطريقة في أداة إنشاء كائنات الأعمال أو SWUD، ثم يتم إصدارها عن طريق تحرير وحدة الوظائف وتعيين حالة الطريقة.
  • 📞 استدعاء واجهة برمجة تطبيقات الأعمال (BAPI): يقوم برنامج ABAP باستدعاء وحدة الوظائف ثم يقوم بالتثبيت باستخدام BAPI_TRANSACTION_COMMIT، لأن BAPI لا يقوم بالتثبيت من تلقاء نفسه.

كيفية إنشاء BAPI في SAP ABAP

ما هو بابي؟

واجهة برمجة تطبيقات الأعمال (BAPI) هي واجهات (طرق) برمجة موحدة تمكن التطبيقات الخارجية من الوصول إلى العمليات التجارية والبيانات في نظام R/3.

هم توفير أساليب مستقرة وموحدة لتحقيق التكامل السلس بين نظام R/3 والتطبيقات الخارجية والأنظمة القديمة والوظائف الإضافية.

يتم تعريف BAPIs في BOR (مستودع كائنات الأعمال) كأساليب SAP أنواع كائنات الأعمال التي تؤدي وظائف أعمال محددة. يتم تنفيذها كـ وظيفة تمكين RFC الوحدات النمطية ويتم إنشاؤها في منشئ الوظائف الخاص بـ ABAP Workbench.

توفر بعض طرق وأساسيات BAPI وظائف أساسية ويمكن استخدامها في معظم الأحيان SAP كائنات الأعمال.وتسمى هذه BAPI القياسية.

قائمة BAPIs الموحدة:

  • معالجات BAPI لقراءة البيانات – GetList() و GetDetail() و GetStatus() و ExistenceCheck()
  • واجهات برمجة التطبيقات (BAPIs) لإنشاء البيانات أو تغييرها - Create() وChange() وDelete() وUndelete()،
  • معالجات BAPI للمعالجة الجماعية -ChangeMultiple() وCreateMultiple() وDeleteMultiple().

مزايا BAPI

يُفضّل استخدام واجهة برمجة تطبيقات الأعمال (BAPI) على التقنيات القائمة على الشاشة لأنها واجهة موثقة ومعتمدة. SAP يحافظ على استقراره عبر الإصدارات. وهذا يوفر العديد من الفوائد العملية.

  • واجهة مستقرة: لا يتغير توقيع BAPI الذي تم إصداره عند الترقية، لذلك يستمر البرنامج الذي يستدعيه في العمل.
  • إعادة استخدام منطق الأعمال: يقوم برنامج BAPI بتشغيل نفس عمليات التحقق التي تقوم بها المعاملة، لذلك تظل البيانات المضافة من خلاله متسقة.
  • تم تفعيل التحكم عن بعد: لأن BAPI عبارة عن وحدة وظائف تدعم RFC، يمكن استدعاؤها من مكان آخر SAP النظام ، أ Java أو برنامج .NET، أو خدمة ويب.
  • لا يعتمد على الشاشة: على عكس تسجيل الإدخال المجمع، فإن BAPI لا يتعطل عند تغيير تخطيط الشاشة.

بعد توضيح المفهوم وفوائده، يقوم القسم التالي ببناء BAPI خطوة بخطوة.

كيفية إنشاء بابي

الخطوة 1) انتقل إلى المعاملة swo1 (الأدوات->Business Framework -> BAPI Development ->Business Object Builder). حدد كائن الأعمال، وفقًا للمتطلبات الوظيفية التي يتم إنشاء BAPI من أجلها.

إنشاء BAPI في ABAP

الخطوة 2) افتح كائن الأعمال في وضع التغيير. ثم حدد الأدوات المساعدة -> أساليب API -> إضافة طريقة. ثم أدخل اسم وحدة الوظيفة وحدد متابعة.

إنشاء BAPI في ABAP

الخطوة 3) في مربع الحوار التالي، يجب تحديد المعلومات التالية:

  • الطريقة: اقتراح اسم مناسب للطريقة،
  • النصوص: أدخل وصفًا لـ BAPI،
  • أزرار الاختيار: الحوار، Synchronous، مستقل عن المثيل. عادةً ما يتم تنفيذ BAPI بشكل متزامن.

إنشاء BAPI في ABAP

الخطوة 4) لإنشاء الطريقة، حدد "نعم" في مربع الحوار التالي.

إنشاء BAPI في ABAP

الخطوة 5) بعد إنشاء البرنامج وتنفيذه، قم بفحص البرنامج بالطريقة التي تم إنشاؤها للتو. وهكذا، يتم إنشاء BAPI.

إنشاء BAPI في ABAP

اختبار بابي

يمكنك اختبار BAPI عن طريق الاختبار الطريقة الفردية لكائن الأعمال في Business Object Builder. (أو يمكن للمرء استخدام المعاملة "SWUD" لاختبار الطريقة).

الافراج عن وتجميد BAPI

  • لتحرير BAPI، قم أولاً بتحرير الوحدة النمطية للوظيفة (باستخدام المعاملة se37).
  • قم بتعيين حالة الطريقة على "تم إصدارها" في Business Object Builder (باستخدام المعاملة SWo1 - تحرير-> تغيير الحالة-> تم إصدارها.)

يمكنك أيضًا استخدام BAPI Explorer (رمز المعاملة BAPI) لعرض 360 درجة على BAPI

كيفية استدعاء BAPI في ABAP

يتم استدعاء واجهة برمجة التطبيقات (BAPI) كما هو الحال مع أي وحدة وظائف تدعم بروتوكول RFC. القاعدة الأساسية هي أن واجهة برمجة التطبيقات لا تُصدر أمر COMMIT WORK خاص بها، لذا يجب على المُستدعي تأكيد التغيير باستخدام BAPI_TRANSACTION_COMMIT، أو تجاهله باستخدام BAPI_TRANSACTION_ROLLBACK. يُنشئ المثال أدناه طلب مبيعات باستخدام واجهة برمجة تطبيقات قياسية.

DATA: ls_header  TYPE bapisdhd1,
      lt_items   TYPE STANDARD TABLE OF bapisditm,
      lt_return  TYPE STANDARD TABLE OF bapiret2,
      lv_order   TYPE vbeln.

* Fill the header and item structures, then call the BAPI
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
  EXPORTING
    order_header_in = ls_header
  IMPORTING
    salesdocument   = lv_order
  TABLES
    order_items_in  = lt_items
    return          = lt_return.

* A BAPI does not commit on its own - decide based on the return table
READ TABLE lt_return WITH KEY type = 'E' TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
ENDIF.

⚠️ تحذير: تحقق دائمًا من جدول الإرجاع بحثًا عن رسالة من النوع E أو A قبل إتمام العملية. يؤدي استدعاء BAPI_TRANSACTION_COMMIT بعد حدوث خطأ إلى حفظ مستند غير مكتمل، وهو أحد أكثر أخطاء BAPI شيوعًا.

BAPI مقابل BDC مقابل RFC

أ. BAPI، أ. BDC، و RFC عادي ينقل جميع البيانات إلى SAPلكنها تختلف في درجة استقرارها وفي المواد التي تعيد استخدامها. يقارن الجدول أدناه بينها.

المعايير BAPI BDC RFC (مخصص)
السطح البيني طريقة مُحرَّرة لكائن أعمال تسلسل شاشة المعاملة أي وحدة وظائف مخصصة
استقرار التحديث مضمونة لواجهات برمجة التطبيقات (BAPIs) المُصدرة يتوقف البرنامج عند تغيير الشاشة يعتمد ذلك على المطور
إمكانية التحكم عن بعد نعم لا نعم
التحقق من صحة الأعمال كامل، كما هو الحال في المعاملة يعرض الشاشة كاملةً ما يكتبه المطور فقط
أفضل ل تكامل وواجهات مستقرة التحميلات حيث لا يوجد BAPI خدمات مخصصة من نقطة إلى نقطة

القاعدة العامة هي استخدام BAPI المُصدر كلما كان موجودًا، والرجوع إلى BDC عندما لا يكون موجودًا، وحجز RFCs المخصصة للخدمات المصممة خصيصًا.

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

يقوم BAPI بتنفيذ التحديث ولكنه يترك أمر COMMIT WORK للمستدعي، لذا يمكن دمج عدة BAPIs في وحدة عمل منطقية واحدة. ثم يقوم BAPI_TRANSACTION_COMMIT بحفظها معًا، ويحتفظ بهاping البيانات متسقة.

يحتوي جدول الإرجاع من النوع BAPIRET2 على رسائل الاستدعاء. يُمثل كل صف من النوع S نجاحاً، وE خطأً، وW تحذيراً، وA إجهاضاً. يقرأ المستدعي هذا الجدول ليقرر ما إذا كان سيُنفذ العملية أم لا.

تفتح المعاملة BAPI مستكشف BAPI، الذي يسرد جميع كائنات الأعمال وطرقها مع التوثيق وأدوات الاختبار. كما يعرض SE37 أيضًا BAPI، لأن كل منها عبارة عن وحدة وظائف تدعم RFC.

نعم. تقترح مساعدات الذكاء الاصطناعي في أدوات تطوير ABAP واجهة برمجة التطبيقات القياسية (BAPI) لكائن الأعمال، وترسم خريطة المعلمات.pingثم أضف آلية الالتزام ومعالجة الأخطاء. يقوم المطور بتأكيد الحقول واختبار الاستدعاء.

نعم. تستخدم العديد من خدمات OData وتكاملات الذكاء الاصطناعي واجهة برمجة تطبيقات الأعمال (BAPI) في الخلفية، لأنها تتضمن بالفعل منطق الأعمال. وتضيف الطبقات الأحدث إمكانية الوصول عبر REST ودعم اللغة الطبيعية إلى واجهة BAPI الثابتة.

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