الانتقال إلى المحتوى
← العودة إلى المدونة

الوحدة في هذا المقال: صندوق الأدوات

اختبر iFlow بمرسِل HTTPS في SAP CPI بمفتاح خدمة، ثم تتبّع الاستدعاء

استدعِ نقطة وصول HTTPS في SAP CPI بـ OAuth client credentials من مفتاح خدمة Process Integration Runtime، واعثر على الرسالة التي أنشأها الاستدعاء، وتتبّعها خطوة بخطوة.

اختبر iFlow بمرسِل HTTPS في SAP CPI بمفتاح خدمة، ثم تتبّع الاستدعاء

الـ iFlow الذي يملك مرسِل HTTPS سهل النشر ومزعج الاستدعاء على نحو مفاجئ: تحتاج إلى نقطة الوصول الصحيحة، ورمز (token) من مفتاح الخدمة الصحيح، وأحيانًا رمز CSRF، ثم عليك بعد ذلك أن تجد في شاشة المراقبة الرسالة التي أنشأها استدعاؤك.

يمرّ هذا المقال على الدورة كاملة في SAP Cloud Integration (SAP CPI): ما تحتاج إليه، وكيف تحصل على رمز وتستدعي نقطة الوصول، وكيف تجد الرسالة الناتجة، وكيف تتتبّعها.

ما تحتاج إليه

  • iFlow منشور بقناة مرسِل HTTPS. ويصبح عنوانها (Address)، مثل /orders/create، جزءًا من نقطة الوصول.
  • عنوان URL لنقطة الوصول: مضيف بيئة التشغيل متبوعًا بـ /http ثم العنوان. ويسرده Manage Integration Content في شاشة المراقبة للـ iFlow المنشور.
  • نسخة خدمة (service instance) من Process Integration Runtime بالخطة integration-flow ودور يسمح بإرسال الرسائل، ومفتاح خدمة لتلك النسخة يتضمن client ID وsecret.
  • حمولة اختبار يقبلها الـ iFlow.

احصل على رمز واستدعِ نقطة الوصول

يحمل مفتاح الخدمة ما يحتاجه الاستدعاء: client ID وsecret، وعنوان URL لخدمة الرموز، ومضيف بيئة التشغيل:

{
  "oauth": {
    "clientid": "<client id>",
    "clientsecret": "<secret>",
    "url": "https://<subaccount>.it-cpi<nn>-rt.cfapps.<region>.hana.ondemand.com",
    "tokenurl": "https://<subaccount>.authentication.<region>.hana.ondemand.com/oauth/token"
  }
}

تعامل مع client secret ككلمة مرور: أبقِ المفتاح خارج الملفات المشتركة والتذاكر والمحادثات.

استدعِ نقطة الوصول واقرأ الرد

يتطلب الاستدعاء طلبين: رمز بمنح client credentials، ثم الاستدعاء نفسه بذلك الرمز:

# 1. Get an access token with the client credentials of the service key
curl -X POST "<tokenurl>" \
     -u "<clientid>:<clientsecret>" \
     -d "grant_type=client_credentials"

# 2. Call the iFlow's HTTPS endpoint with the token
curl -i -X POST "<url>/http/orders/create" \
     -H "Authorization: Bearer <access_token>" \
     -H "Content-Type: application/json" \
     -d @order.json

# The response headers include SAP_MessageProcessingLogID: the Message ID of this call.
  • 401: الرمز مفقود، أو منتهي الصلاحية، أو من حساب فرعي (subaccount) آخر.
  • 403: دور مفتاح الخدمة لا يسمح بإرسال الرسائل، أو يتطلب مرسِل HTTPS رمز CSRF. ولنقطة وصول اختبارية يمكنك إيقاف حماية CSRF في القناة، أو جلب رمز أولًا.
  • 404: العنوان خاطئ، أو الـ iFlow غير منشور.
  • 500: فشل الـ iFlow؛ ويخبرك سجل معالجة الرسالة أين.

أيًّا كانت الحالة، تعطيك ترويسة الاستجابة SAP_MessageProcessingLogID معرّف Message ID للاستدعاء، وبه يمكنك فتح الرسالة: اطّلع على العثور على رسالة بـ Message ID.

نفّذ ذلك في المتصفح باستخدام HTTP Runner

يتضمن Toolbox في Kitegra أداة HTTP Runner لنقاط الوصول في iFlows لديك. افتحها من عرض "الأدوات" في النافذة المنبثقة للإضافة.

  • "مجموعة جديدة" و"طلب جديد" يبدآن مجموعة من الطلبات بطرق GET أو POST أو PUT أو PATCH أو DELETE أو HEAD، مع معاملات الاستعلام، والترويسات، وجسم JSON أو XML أو نص أو ملف.
  • {{variables}} والبيئات (dev وtest وprod): أضف بيئة بـ "بيئة جديدة"، أو أرسل بـ "بلا بيئة". والمتغير المعلَّم "سري" تبقى قيمته في هذا المتصفح.
  • المصادقة: "من المجموعة"، أو "لا يوجد"، أو "Basic"، أو "رمز Bearer"، أو "OAuth2 client credentials (مفتاح الخدمة)" وفيه تلصق JSON "مفتاح الخدمة (Process Integration Runtime)"؛ ويُجلب الرمز عنك. ويلزم مفتاح يتضمن client secret؛ ولا يُدعم المفتاح القائم على شهادة.
  • "الاختبارات" تفحص الاستجابة ("الحالة تساوي"، و"المحتوى يتضمن"، و"JSONPath يساوي"، و"XPath يساوي")، و"استخراج" يحفظ قيمًا منها في متغيرات، و"تشغيل المجموعة" يرسل المجموعة كلها بالترتيب.
  • "استيراد" ثم "مجموعة Postman" يجلب مجموعة Postman، كما في من Postman أو OpenAPI إلى مستقبِل HTTP، وفي تبويب "مجموعة البيانات" يرسل "إرسال كل رسالة" كل رسائل مجموعة بيانات من مولّد رسائل الاختبار.

لا يُرسل شيء حتى تنقر "إرسال"، ولا تُرسل ملفات تعريف الارتباط (cookies) الخاصة بـ SAP أبدًا. ولا يستدعي Runner إلا مضيفات تحت *.hana.ondemand.com. وبعد الاستدعاء، يفتح "فتح في المراقب" الرسالة من ترويسة SAP_MessageProcessingLogID في عارض السجلات؛ وإن تعذّر استنتاج مضيف المصمم من نقطة الوصول، فاضبط "المستأجر (مضيف المصمم) لـ فتح في المراقب" في البيئة.

تتبّع الاستدعاء

  1. افتح الـ iFlow في المصمم، وافتح "الرسائل" من زر "Kitegra"، وحوّل "Trace: متوقف" إلى التشغيل.
  2. انقر "إرسال" في Runner، أو استدعِ نقطة الوصول باستخدام curl.
  3. تظهر الرسالة في لوحة "الرسائل" بعلامة TRACE. اختر "على الرسم".
  4. انقر خطوة ملوّنة لترى الجسم والترويسات وخصائص التبادل قبلها.

ويغطي مقال تتبّع رسالة خطوة بخطوة لوحة التتبّع بالتفصيل.

كيف يساعدك Kitegra

في Kitegra يبقى مفتاح الخدمة وقيم المصادقة والمتغيرات السرية في متصفحك. وعند تسجيل الدخول، تُزامَن مجموعات Runner وبيئاته مع حساب Kitegra بعد إزالة كل قيم المصادقة والمتغيرات السرية منها. وRunner جزء من Toolbox المجاني؛ أما التتبّع وعارض السجلات فينتميان إلى Message Monitor.

تحتسب كلٌّ من Helper وMessage Monitor وiFlow Inspector وiFlow Docs عدد iFlows التي تستخدمها عليها: 5 لكل وحدة بلا حساب، و50 في خطة Free، و100 في خطة Starter، و300 في خطة Pro، أما خطة Business فبلا حد. ويأتي Toolbox وميزات مساحة العمل الإضافية مجانًا. قارن بين الخطط.

جرّبها في الـ iFlow التالي

تعرّف على ما يضيفه Kitegra حول مصمم SAP Integration Suite، أو اطّلع عليه مع بقية وحدات Kitegra.

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

كيف أستدعي نقطة وصول HTTPS في SAP CPI باستخدام OAuth؟

احصل على رمز من عنوان URL الخاص بالرموز في مفتاح الخدمة بمنح client credentials، ثم استدعِ نقطة الوصول بالترويسة Authorization: Bearer مع الرمز.

أي مفتاح خدمة أحتاج؟

مفتاح خدمة لنسخة من Process Integration Runtime بالخطة integration-flow ودور يسمح بإرسال الرسائل.

لماذا أحصل على 403 من iFlow بمرسِل HTTPS؟

في الغالب لأن دور المفتاح لا يسمح بإرسال الرسائل، أو لأن مرسِل HTTPS يتطلب رمز CSRF.

كيف أجد الرسالة التي أنشأها استدعائي؟

اقرأ ترويسة الاستجابة SAP_MessageProcessingLogID: فهي Message ID للاستدعاء.

أين يحتفظ HTTP Runner بمفتاح الخدمة الخاص بي؟

في متصفحك. والمجموعات المُزامَنة لا تتضمن أبدًا قيم المصادقة أو المتغيرات السرية.

هل HTTP Runner مجاني؟

نعم. فهو جزء من Toolbox، الذي لا يُحتسب ضمن iFlows خطتك.

اعمل على الـ iFlows دون مغادرة المصمم

أضِف Kitegra إلى Chrome أو Microsoft Edge. ابدأ مجانًا دون الحاجة إلى حساب.