الوحدة في هذا المقال: Integration Flow Helper
Externalize Parameters ونسخ إعدادات الخطوات واستيراد APIs من SAP Business Accelerator Hub في SAP CPI
حوّل العناوين الثابتة إلى {{parameters}} في خطوة واحدة، وانسخ إعدادات خطوة إلى iFlow آخر، واحفظ استعلامات OData كقوالب، واستورد APIs من Hub، وافحص XPath على نموذج حمولة، ورتّب تعبيرات الـ mapping.
ليس المنطق هو أبطأ ما في العمل على iFlow في SAP Cloud Integration (SAP CPI). بل كتابة عنوان المستقبِل نفسه في ثلاثة مستأجرين، ونسخ عشرة صفوف من Content Modifier يدويًا من iFlow إلى آخر، وإعادة بناء استعلام OData كتبته الشهر الماضي، وتنزيل مواصفات API لمجرد معرفة حقول إحدى مجموعات الكيانات.
يضم Helper في Kitegra الآن أداة لكل مهمة من هذه، بجوار مصمم SAP Integration Suite: Externalize Parameters، ونسخ إعدادات الخطوات ولصقها مع قوالب استعلامات OData، والاستيراد من SAP Business Accelerator Hub، وفحص XPath على نموذج الحمولة لديك، وترتيب تعبيرات Message Mapping. يشرح هذا المقال ما تفعله كل أداة، ومتى تغيّر الـ iFlow، وما الذي تحتفظ به.
Externalize Parameters في خطوة واحدة
العنوان المكتوب مباشرة في قناة المستقبِل يعني تعديل الـ iFlow نفسه في كل مرة ينتقل فيها من DEV إلى QA إلى PROD. وحلّ SAP لذلك هو المعامل الخارجي (externalized parameter): {{Receiver_OData_Address}} في الحقل، وتُضبط قيمته لكل مستأجر في Configure. وتتولى Externalize Parameters الكتابة عنك.
افتح iFlow، واضغط Edit في SAP، واختر Externalize Parameters من قائمة Kitegra. تسرد اللوحة القيم الثابتة التي تختلف عادةً بين المستأجرين:
- العناوين: روابط URL، والمضيفون، ونقاط الوصول، والمسارات، والمجلدات، وملفات WSDL. وتُحدَّد لك تلقائيًا، باستثناء عناوين الـ proxy وعناوين ProcessDirect أو JMS.
- قيم أخرى: أسماء الطوابير وData Stores، ومسارات OData واستعلاماتها، ومهل الانتظار (timeouts)، وأسماء بيانات الاعتماد والأسماء المستعارة (aliases)، والمنافذ.
- الثوابت في جداول Content Modifier وWrite Variables.
تحصل كل قيمة على اسم مقترح مثل Receiver_OData_Address، مكوَّن من المشارك والحقل، ويمكنك تغييره. أما القيم التي هي أصلًا {{…}} أو ${…} فتظهر على حالها. انقر Externalize، فتصبح الحقول المحدَّدة معاملات في الـ iFlow المفتوح. ولا يُحفظ شيء حتى تحفظ الـ iFlow في SAP.
بعد التنفيذ، يعيد تراجع القيم السابقة، وينسخ نسخ القيم الحالية كل معامل مع القيمة التي حلّ محلها: فبعد النشر يطلب SAP كل قيمة في Configure، فتلصقها هناك. ويُحتفظ بآخر عشر عمليات لكل iFlow من أجل التراجع. وتشير فحوص التصميم في iFlow Inspector إلى هذه الأداة عندما يكون عنوان أحد المستقبِلين مكتوبًا داخل الـ iFlow.
انسخ إعدادات خطوة إلى خطوة أخرى أو iFlow آخر
اختر نسخ ولصق إعدادات الخطوات من قائمة Kitegra، وحدّد خطوة على الرسم (أو اخترها في اللوحة)، وانقر نسخ الإعدادات. تضم النسخة ترويسات الخطوة (headers) وخصائص التبادل (exchange properties) وحقول المحوّل (adapter). وتحتفظ اللوحة بآخر عشر نسخ لك، الأحدث أولًا، لكل المستأجرين وiFlows في هذا المتصفح.
وللّصق، اضغط Edit في SAP، وحدّد الخطوة الهدف وانقر لصق في. وقبل الكتابة، تسرد اللوحة الحقول التي ستتغير. ولكل جدول تختار إبقاء أو إضافة الصفوف (تضيف فقط الصفوف المنسوخة غير الموجودة) أو استبدال الصفوف. ولا تُلصق النسخة إلا في خطوة من النوع نفسه، ويمكن لصقها في iFlow آخر، باستثناء مسار EDMX وحقول السكربتات، لأنها تشير إلى ملفات في الـ iFlow الذي جاءت منه. ويعيد التراجع ما غيّره آخر لصق.
قوالب استعلامات OData
تحتفظ اللوحة نفسها بـ قوالب استعلامات OData. حدّد قناة مستقبِل OData بنيتَ استعلامها، وانقر حفظ الاستعلام كقالب وأعطه اسمًا. يحتفظ القالب بالعملية، ومسار المورد، وخيارات الاستعلام مثل $select و$filter و$expand. ولاحقًا، في وضع التعديل، حدّد مستقبِل OData آخر وانقر تطبيق. والحفظ باسم موجود يستبدل ذلك القالب. أما الخيارات نفسها فاطّلع عليها في خيارات الاستعلام في مستقبِل OData.
تبقى النسخ والقوالب في مساحة تخزين الإضافة في هذا المتصفح. فلا تُزامَن مع حسابك في Kitegra، ولا تُرسل إلى أي مكان أبدًا.
استورد API من SAP Business Accelerator Hub
يقترح Helper مجموعات كيانات OData وحقولها من ملف EDMX، ومسارات HTTP من ملف OpenAPI. ومع الاستيراد من Hub لم تعد بحاجة إلى تنزيل ذلك الملف أولًا. في النافذة المنبثقة للإضافة، افتح صفحة الـ iFlow التي تضم نموذج الحمولة ومواصفات API، وستجد استيراد من SAP Business Accelerator Hub.
- في المرة الأولى، انقر السماح بالوصول: يطلب المتصفح مرة واحدة الوصول إلى api.sap.com. ولا يملك Kitegra هذا الوصول حتى توافق.
- ابحث عن API، مثل
API_PRODUCT_SRV. ولا يحتاج البحث إلى تسجيل دخول. - انقر استيراد. يحتاج تنزيل المواصفات إلى تسجيل دخولك إلى api.sap.com في هذا المتصفح؛ وإن لم تكن مسجّلًا، تخبرك اللوحة بذلك وتفتح Hub.
بعدها تُقترح مجموعات الكيانات والحقول لـ OData API في مستقبِلات OData في ذلك الـ iFlow التي ليس لها EDMX خاص بها. وتُقترح مسارات REST API في حقول HTTP، كما لو كنت حمّلت الملف، وهو ما يشرحه مقال OpenAPI وPostman. وتُحفظ المواصفات لكل iFlow، في هذا المتصفح وحده، بحد أقصى 8 MB، ويحذفها إزالة.
فحص XPath على نموذج الحمولة لديك
عندما يكون للـ iFlow نموذج حمولة محفوظ، فإن Helper يقترح منه مسارات XPath بالفعل. والآن يفحص أيضًا تعبير XPath الذي كتبته. فإن لم تطابقه أي عقدة في النموذج، يظهر تحت الحقل تحذير نصه "لا توجد عقدة في نموذج الحمولة تطابق تعبير XPath هذا." وإن طابقته عقدة، يعرض سطر معلومات القيمة التي وجدها.
يشمل الفحص صفوف XPath في ترويسات Content Modifier وخصائصه وفي Write Variables، وشروط XML Router، ومقسّمات XPath. ولا يعمل إلا حيث يكون النموذج المحفوظ هو فعلًا ما يصل إلى تلك الخطوة: نموذج XML لا تسبقه إلا خطوات تُبقي الجسم كما هو، أو نموذج JSON بعد JSON to XML Converter واحد. ويبقى صامتًا في Local Integration Processes وException Subprocesses، ومع تعبيرات XPath المبنية بـ ${…} أو {{…}}، فالتحذير يعني عدم تطابق حقيقيًا.
رتّب تعبير Message Mapping
سرعان ما يتحول تعبير Message Mapping يضم عشرات الدوال إلى عقدة من الخطوط المتقاطعة. وعلى لوحة التعبير، صار زر ترتيب بجوار أزرار SAP نفسها. فهو يرتّب العُقد من حقول المصدر إلى الهدف. وفي وضع التعديل، يثبّت الحفظ هذا الترتيب، ويعيده زر التراجع المجاور كما كان؛ أما في وضع العرض فهو يساعدك على القراءة فقط، ويزول الترتيب عندما يعيد SAP رسم التعبير. ولا يُحفظ شيء ولا يُرسل إلى SAP. ولرسم الـ iFlow أيضًا زر ترتيب خاص به، في وضع التعديل، مع إمكانية التراجع.
ما الذي يتغير في الـ iFlow لديك
تكتب Externalize Parameters واللصق وتطبيق القالب في الـ iFlow المفتوح في المصمم، في وضع التعديل فقط، ويُظهر المصمم الـ iFlow على أنه تغيّر. ولا تحفظ أيٌّ منها ولا تنشر أبدًا: فأنت من يحفظ في SAP، أو يختار Discard للتخلي عن التغيير. ويمكن إيقاف كل أداة من هذه الأدوات وحدها في صفحة الخيارات، تحت "الأدوات"؛ فتختفي من المصمم فورًا. وتنتمي Externalize ونسخ إعدادات الخطوات ولصقها والاستيراد من Hub إلى الخطط المدفوعة، مع عدد محدود من الاستخدامات في خطة Free؛ أما فحص XPath والترتيب فمجانيان. وطوال فترة إطلاق Kitegra، تتاح كل الأدوات لكل من سجّل الدخول. قارن بين الخطط.
جرّبها في الـ iFlow التالي
تعرّف على ما يضيفه Kitegra حول مصمم SAP Integration Suite، أو على ما يفعله بعد أن تضغط Deploy.
الأسئلة الشائعة
كيف أحوّل عنوان مستقبِل إلى معامل خارجي في SAP CPI؟
اضغط Edit في SAP، وافتح Externalize Parameters من قائمة Kitegra، وأبقِ العنوان محدَّدًا، وراجع اسمه وانقر Externalize. احفظ الـ iFlow، ثم اضبط القيمة لكل مستأجر في Configure؛ ويعطيك "نسخ القيم الحالية" القيم القديمة لتلصقها.
هل يمكنني نسخ صفوف Content Modifier إلى iFlow آخر؟
نعم. انسخ إعدادات الخطوة، وافتح الـ iFlow الآخر في وضع التعديل، وحدّد Content Modifier والصق. اختر "إضافة الصفوف" لإضافة الصفوف الناقصة فقط، أو "استبدال الصفوف".
هل أحتاج إلى حساب على api.sap.com للاستيراد من Hub؟
البحث يعمل بدونه. أما تنزيل المواصفات فيحتاج إلى تسجيل دخولك إلى api.sap.com في المتصفح نفسه.
هل تُزامَن نسخ الخطوات والقوالب لديّ؟
لا. تبقى في مساحة تخزين الإضافة في هذا المتصفح، ولا تُرسل إلى أي مكان أبدًا.
هل يحفظ أيٌّ من هذا الـ iFlow أو ينشره؟
لا. تكتب الأدوات في الـ iFlow المفتوح في وضع التعديل؛ وأنت من يحفظه في SAP، أو يتخلى عن التغيير.