استدعاء الوظيفة عن بعد (RFC) في SAP البرنامج التعليمي ABAP
⚡ ملخص ذكي
استدعاء الوظائف عن بُعد (RFC) هو SAP آلية اتصال تسمح لبرنامج ABAP باستدعاء وحدة وظائف تعمل على جهاز آخر SAP أو نظام خارجي. إنه منفصلtracيقوم بفحص بنية الشبكة، وتحويل تنسيقات البيانات، وعرض حالات الفشل للمتصل بشكل واضح.

ما هو RFC؟ SAP?
RFC لتقف على مكالمة وظيفة عن بعدهي الآلية التي تسمح لتطبيقات الأعمال بالتواصل وتبادل المعلومات - بتنسيقات محددة مسبقًا - مع الأنظمة الأخرى. وتُعدّ RFC الطريقة الأكثر شيوعًا لذلك. SAP يتواصل النظام مع نظام آخر، وهو أيضاً الجسر الذي يربط بينهما. SAP الأنظمة إلى غير-SAP التطبيقات.
يوفر RFC واجهتين:
- واجهة اتصال لـ برامج ABAP.
- واجهة اتصال لغير-SAP البرامج.
يمكن لأي برنامج ABAP استدعاء دالة عن بعد باستخدام وظيفة الاتصال...الوجهة بيان. ال DESTINATION المعلمة تقول SAP النظام الذي تعمل عليه الدالة المستدعاة يعمل على نظام مختلف عن النظام الذي يستدعيها.
بناء الجملة
CALL FUNCTION 'remotefunction'
DESTINATION dest
EXPORTING f1 = ...
IMPORTING f2 = ...
TABLES t1 = ...
EXCEPTIONS ...
يتم تحديد الوجهات المنطقية عبر المعاملات SM59 وتم تخزينها في الجدول RFCDES.
وظائف واجهة RFC
تتولى وحدة تشغيل RFC مسؤولية ثلاثة أمور في كل مكالمة:
- تحويل جميع بيانات المعلمات إلى التمثيل الذي يتوقعه النظام البعيد.
- استدعاء إجراءات الاتصال اللازمة للتحدث إلى النظام البعيد.
- معالجة أخطاء الاتصال وإبلاغ المتصل بها من خلال
EXCEPTIONSمعلمةCALL FUNCTION.
RFC هو SAP بروتوكول يُعنى بالاتصال بين الأنظمة ويُبسط البرمجة ذات الصلة. وهو عملية استدعاء وحدة وظائف موجودة على جهاز مختلف عن جهاز البرنامج المُستدعي. من الناحية التقنية، يمكن استخدام طلبات التعليقات (RFCs) لاستدعاء وحدة وظائف على نفسه تُستخدم هذه الأنظمة غالبًا عندما تعمل البرامج المُستدعِية والمُستدعاة على أجهزة منفصلة. ويُستخدم نظام واجهة RFC لإنشاء اتصالات RFC بين أجهزة مختلفة. SAP نظم، وكذلك بين SAP وخارجي (غير-SAP) أنظمة.
معلومات أساسية حول RFC
- SAP يستخدم CPIC بروتوكول (واجهة برمجة التطبيقات المشتركة للاتصالات) لنقل البيانات بين الأنظمة. CPIC هو SAP-خاص. RFC هي واجهة اتصالات مبنية على CPI-C، ولكنها تحتوي على المزيد من الوظائف وواجهة أكثر سهولة لمبرمجي التطبيقات.
- تدعم وظائف مكتبة RFC لغة البرمجة سي و Visual Basic على Windows المنصات.
- تعمل اتصالات RFC عبر النظام بأكمله. يمكن استخدام اتصال RFC المُعرَّف في العميل 000 من العميل 100 دون أي فرق.
- بروتوكول RFC هو بروتوكول لاستدعاء إجراءات فرعية متخصصة (وحدات وظيفية) عبر الشبكة. تُشبه الوحدات الوظيفية دوال لغة C أو إجراءات باسكال: فهي تُوفر واجهة مُحددة يتم من خلالها تبادل البيانات والجداول ورموز الإرجاع. تُدار الوحدات الوظيفية داخل SAP النظام في مكتبة مخصصة، منشئ الوظائف.
- منشئ الوظائف (معاملة) SE37يوفر ) لمبرمجي التطبيقات بيئة لكتابة وتوثيق و تجريب وحدات وظيفية يمكن استدعاؤها محليًا وعن بُعد. يقوم النظام تلقائيًا بإنشاء التعليمات البرمجية الإضافية (الـ مسودة RFC) مطلوب لإجراء المكالمات عن بعد.
- يتم الحفاظ على اتصالات RFC باستخدام المعاملات SM59. SAP كما يقوم بشحن RFC-SDK (مجموعة تطوير البرمجيات) التي تستخدم مكتبات C واسعة النطاق حتى تتمكن البرامج الخارجية من الاتصال بها SAP نظام.
- الفرق الوحيد بين الاتصال عن بُعد بخادم آخر والاتصال المحلي هو
DESTINATIONالمعلمة التي تحدد الخادم المستهدف الذي يجب أن يتم تنفيذ البرنامج عليه.
مزايا RFC
تُقلل تقنية RFC من جهد البرمجة عن طريق إلغاء الحاجة إلى إعادة تنفيذ الوحدات والأساليب في الطرف البعيد. وتتولى طبقة RFC ما يلي:
- تحويل البيانات إلى تنسيق يمكن للنظام البعيد (الهدف) فهمه.
- استدعاء الإجراءات الروتينية اللازمة لإعداد الاتصال مع النظام البعيد.
- معالجة الأخطاء التي تنشأ أثناء التواصل.
- توفير دلالات معاملات موثوقة عند استخدام المتغيرات المعاملاتية أو المتغيرات الموجودة في قائمة الانتظار.
أنواع RFC
SAP يدعم أربعة متغيرات من RFC. يقدم كل منها مقايضة مختلفة بين زمن الاستجابة والموثوقية وضمانات الترتيب.
1. Syncطلب اتصال لاسلكي متزامن (sRFC)
Syncيتطلب طلب RFC المتزامن أن يكون كل من العميل والخادم متاحين وقت إجراء الطلب. وهو النوع الأكثر شيوعًا ويُستخدم عندما يحتاج المُستدعي إلى النتيجة فورًا بعد التنفيذ.
يُعدّ بروتوكول sRFC وسيلةً للتواصل بين الأنظمة حيث يُتوقع استلام إشعارات تأكيد. تنتظر موارد النظام المصدر وصول الرسالة إلى النظام الهدف، وتضمن وصول إشعار التأكيد. وتكون البيانات المتبادلة متسقة وموثوقة.
العيب هو أنه إذا كان النظام المستهدف غير متاح، فإن موارد النظام المصدر تنتظر حتى يعود، مما قد يدفع عمليات النظام المصدر إلى وضع السكون/RFC/CPIC في النظام المستهدف ويحظر الموارد.
يستعمل ل:
- التواصل الفوري بين الأنظمة.
- الاتصال بين SAP خادم تطبيقات الويب و SAP واجهة المستخدم الرسومية.
2. بروتوكول طلب التعليقات غير المتزامن (aRFC)
الاتصال غير المتزامن عبر بروتوكول RFC هو اتصال بين الأنظمة لا يتطلب تأكيدًا - وهو مشابه لتقنية الإسقاط.ping بطاقة بريدية في البريد. لا يشترط توفر كلا النظامين وقت التنفيذ، ولا يتم إرجاع النتيجة فورًا إلى النظام المُستدعي.
لا ينتظر مورد النظام المصدر النظام الهدف؛ بل يُسلّم البيانات وينتقل إلى النظام التالي. هذا ما يجعل بروتوكول aRFC سريعًا ولكنه غير موثوق به بمفرده، إذ قد تُفقد البيانات إذا كان النظام الهدف غير متاح.
يستعمل ل:
- اتصال بين الأنظمة يتم إطلاقه ونسيانه.
- المعالجة المتوازية عبر الأنظمة.
3. بروتوكول طلب التعليقات للمعاملات (tRFC)
يُعدّ بروتوكول RFC المعاملاتي شكلاً خاصاً من بروتوكول RFC غير المتزامن. وهو يضمن معالجة خطوات المعالجة التي كانت ستكون مستقلة لولا ذلك، بطريقة تشبه المعاملات.
ينفذ tRFC وحدة الوظائف المستدعاة على خادم RFC مرة واحدة فقط، حتى لو تم إرسال البيانات عدة مرات بسبب مشاكل في الشبكة. لا يشترط أن يكون النظام البعيد متاحًا لحظة تشغيل عميل RFC للاستدعاء. يخزن مكون tRFC الوظيفة المستدعاة وبياناتها في SAP قاعدة بيانات ضمن نطاق فريد معرّف المعاملة (TID)إذا كان النظام المستهدف غير متاح، تُكتب البيانات في جداول RFC (المرئية في المعاملة). SM58) ثم التقطها تقرير الجدولة لاحقًا RSARFCSE، والتي تعمل كل 60 ثانية.
يستعمل ل:
- توسيع نطاق طلبات التعليقات غير المتزامنة مع التسليم مرة واحدة على الأكثر.
- اتصال موثوق بين الأنظمة حيث يكون التنفيذ مرة واحدة بالضبط أمراً بالغ الأهمية.
4. طلب التعليقات المُرتّب (qRFC)
يُوسّع بروتوكول RFC المُرتّب (Queued RFC) نطاق بروتوكول tRFC بضمان معالجة كل خطوة على حدة بالتسلسل الذي يُحدّده التطبيق المُستدعي. ولضمان معالجة وحدات العمل المنطقية (LUWs) المتعددة (المعاملات) بالترتيب المطلوب، يُمكن تسلسل بروتوكول tRFC باستخدام قوائم انتظار واردة وصادرة، ومن هنا جاء اسم "بروتوكول RFC المُرتّب".
يستعمل ل:
- توسيع نطاق طلبات التعليقات التفاعلية (RFC) بترتيب صارم.
- سيناريوهات يكون فيها تسلسل المعالجة المحدد إلزاميًا.
- الحالات التي يجب فيها معالجة عدة معاملات بترتيب محدد مسبقاً.
مقارنة أنواع RFC
| النوع | المتصل ينتظر؟ | موثوق؟ | تم طلبه؟ | أفضل من أجل |
|---|---|---|---|---|
| sRFC | نعم | نعم | غير متاح (مكالمة واحدة) | عمليات بحث فورية |
| aRFC | لا | لا | لا | العمل المتوازي، الذي يُنفذ دون عناء. |
| tRFC | لا | نعم (مرة واحدة بالضبط) | لا | تحديثات غير متزامنة موثوقة |
| qRFC | لا | نعم (مرة واحدة بالضبط) | نعم | تحديثات مرتبة بدقة |
أنواع اتصالات RFC
يدعم جهاز SM59 عدة أنواع من الاتصالات. فيما يلي ملخص لأكثر ثلاثة أنواع ستصادفها في أغلب الأحيان.
النوع 3 — ABAP-to-ABAP
تحدد إدخالات النوع 3 العلاقة بين أنظمة أبابيُعد اسم المضيف أو عنوان IP إلزاميًا؛ ويمكن توفير معلومات تسجيل الدخول اختياريًا. ينطبق النوع 3 على كلٍ من طلبات RFC بين أنظمة ABAP والمكالمات الخارجية إلى أنظمة ABAP.
النوع الأول - نظير قاعدة البيانات نفسها
تُحدد إدخالات النوع الأول أنظمة ABAP التي تشترك في نفس قاعدة البيانات مع النظام الحالي. هذه الإدخالات مُعرّفة مسبقًا ولا يمكن تعديلها. يبدو اسم الإدخال النموذجي كالتالي: ws0015_K18_24:
- ws0015 — اسم المضيف
- كيه18 — اسم النظام (قاعدة البيانات)
- 24 — اسم خدمة TCP
النوع T — برنامج خارجي
تتصل الوجهات من النوع T ببرامج خارجية تستخدم واجهة برمجة تطبيقات RFC لاستقبال طلبات RFC. يمكن أن يكون نوع التنشيط إما بالبداية or التسجيل: إذا كان الخيار هو بدء التشغيل، فيجب توفير اسم المضيف ومسار البرنامج المراد تشغيله.
كيف Code RFC
تتألف عملية بناء طلب التعليقات (RFC) من خمس خطوات. الخطوات الثلاث الأولى عبارة عن نقرات ميكانيكية في SE37 وSM59؛ أما الخطوتان الأخيرتان فتتعلقان بالحصول على الموافقة.tracصحيح.
الخطوة 1 : في علامة تبويب سمات وحدة الوظائف الخاصة بالمعاملة SE37قم بتعيين نوع المعالجة إلى وحدة قابلة للتحكم عن بعد لتمييز وحدة الوظائف على أنها قادرة على استخدام RFC.
الخطوة 2 : اكتب الكود الخاص بوحدة الوظائف في محرر الكود المصدري.
الخطوة 3 : حدد وجهة خادم RFC في نظام عميل RFC الذي يستدعي الدالة البعيدة - يتم ذلك في معاملة SM59.
الخطوة 4 - تحديد المعلمات: يجب تعريف جميع حقول المعلمات لوحدة وظائف عن بُعد كحقول مرجعية، أي يتم تحديد نوعها بناءً على حقول قاموس ABAP. لا يُسمح باستخدام معلمات القيمة لوحدات الوظائف التي تدعم الاتصال عن بُعد.
الخطوة 5 - الاستثناءات: يرفع النظام فشل الاتصال و فشل النظام داخليًا عند حدوث أخطاء على مستوى النقل. يمكن إثارة استثناءات على مستوى التطبيق داخل دالة بعيدة تمامًا كما هو الحال في الدالة المحلية.
تصحيح أخطاء استدعاءات الوظائف عن بعد
- أنه ليس من الممكن التصحيح استدعاء دالة عن بعد في نظام غير ABAP بالطريقة الكلاسيكية - وقت التشغيل الأجنبي غير شفاف.
- ومع ذلك، بالنسبة لمكالمات RFC من ABAP إلى ABAP، يمكن استخدام مصحح أخطاء ABAP لمراقبة تنفيذ وظيفة RFC داخل النظام البعيد.
- في حالة الاستدعاءات عن بُعد، يعمل مصحح أخطاء ABAP (بما في ذلك واجهة المستخدم الخاصة به) على النظام المحلي. ويتم بث قيم البيانات ومعلومات وقت التشغيل الأخرى للوظيفة البعيدة من النظام البعيد.
القفل SAP معاملات RFC
تتلخص مجموعة أدوات RFC اليومية في عدد قليل من رموز T التي يجب أن يعرفها كل مطور ABAP ومسؤول Basis بشكل تلقائي.
| T- كود | الهدف |
|---|---|
| SM59 | الحفاظ على وجهات RFC - المضيف، تسجيل الدخول، النوع، الأمان. |
| SE37 | منشئ الوظائف — إنشاء أو تحرير وحدات الوظائف التي تدعم التحكم عن بعد. |
| SM58 | قم بمراقبة طلبات التعليقات (RFCs) الفاشلة للمعاملات وأعد معالجتها. |
| SMQ1 / SMQ2 | مراقبة قوائم انتظار qRFC الصادرة (SMQ1) والواردة (SMQ2). |
| الثقة | الحفاظ على شهادات SSL المستخدمة من قبل وجهات RFC المحمية ببروتوكول HTTPS. |
| ST22 | افحص ملفات التفريغ القصيرة الناتجة عن فشل المكالمات البعيدة. |
ممارسات لـ SAP RFC
تضمن طبقة RFC المصممة جيدًا سرعة التكاملات وإمكانية مراقبتها وسهولة تطويرها. ينبغي تضمين العادات التالية في كل مشروع.
- اختر الخيار المناسب للمؤتمرtract. استخدم sRFC لعمليات البحث المتزامنة، و tRFC للتحديثات غير المتزامنة التي تتم مرة واحدة على الأكثر، و qRFC عندما يكون الترتيب مهمًا.
- أعد استخدام وجهة واحدة لكل نظام مستهدف بدلاً من توزيع أسماء المضيفين على وجهات متعددة، فإنه يجعل عملية تدوير بيانات الاعتماد أسهل. tracالجدول.
- لا تقم بتضمين بيانات الاعتماد بشكل ثابت في التعليمات البرمجية في لغة ABAP. استخدم اتصالات النظام الموثوقة أو تذاكر تسجيل الدخول الآمنة كلما أمكن ذلك.
- قم بمراقبة SM58 و SMQ2 بشكل دوري. تؤدي إدخالات tRFC العالقة إلى تأخير عمليات الأعمال بصمت حتى تتم إعادة معالجتها.
- مرر فقط المعاملات من النوع المرجعي. تؤدي معلمات القيمة إلى تعطيل وحدات الوظائف التي تدعم التحكم عن بعد.
- استخدم STRUST لإدارة شهادات TLS بالنسبة لوجهات HTTPS — تعتبر الشهادات المنتهية الصلاحية سببًا رئيسيًا لظهور أخطاء COMMUNICATION_FAILURE الغامضة.







