মূল কনটেন্টে যান
← ব্লগে ফিরে যান

এই নিবন্ধের মডিউল: Integration Flow Helper

SAP CPI-তে Externalize Parameters, স্টেপ সেটিংস কপি এবং SAP Business Accelerator Hub থেকে API ইমপোর্ট

এক ধাপে নির্দিষ্ট ঠিকানাকে {{parameters}}-এ রূপান্তর করুন, একটি স্টেপের সেটিংস অন্য iFlow-এ কপি করুন, OData queries টেমপ্লেট হিসেবে সংরক্ষণ করুন, Hub থেকে API ইমপোর্ট করুন, sample-এর বিপরীতে XPath যাচাই করুন এবং mapping expressions সাজান।

SAP Cloud Integration (SAP CPI)-এর একটি iFlow-এ সবচেয়ে ধীর কাজগুলোর অনেকটাই logic নয়। বরং একই receiver ঠিকানা তিনটি tenant-এ টাইপ করা, দশটি Content Modifier সারি এক iFlow থেকে আরেকটিতে হাতে কপি করা, গত মাসে লেখা একটি OData query আবার বানানো, অথবা শুধু একটি entity set-এর fields জানতে একটি API specification ডাউনলোড করা।

Kitegra-এর Helper-এ এখন SAP Integration Suite ডিজাইনারের পাশেই এর প্রতিটির জন্য টুল আছে: Externalize Parameters, OData query টেমপ্লেটসহ স্টেপ সেটিংস কপি ও পেস্ট, SAP Business Accelerator Hub থেকে ইমপোর্ট, আপনার sample payload-এর বিপরীতে XPath যাচাই, এবং Message Mapping expressions সাজানো। এই লেখা ব্যাখ্যা করে প্রতিটি কী করে, কখন আপনার iFlow বদলায় এবং কী রেখে দেয়।

এক ধাপে Externalize Parameters

receiver channel-এ সরাসরি লেখা একটি ঠিকানা মানে, iFlow যখনই DEV থেকে QA হয়ে PROD-এ যায়, প্রতিবার iFlow নিজেই edit করতে হয়। SAP-এর সমাধান হলো externalized parameter: field-এ {{Receiver_OData_Address}}, আর এর মান প্রতিটি tenant-এ Configure-এ সেট করা। Externalize Parameters আপনার হয়ে এই টাইপ করার কাজটা করে দেয়।

একটি iFlow খুলুন, SAP-এ Edit চাপুন, এবং Kitegra menu-তে Externalize Parameters বেছে নিন। panel সেই নির্দিষ্ট মানগুলোর তালিকা দেখায় যা সাধারণত tenant ভেদে আলাদা হয়:

  • ঠিকানা: URLs, hosts, endpoints, paths, directories ও WSDLs। এগুলো আপনার জন্য আগে থেকেই টিক দেওয়া থাকে, proxy ঠিকানা এবং ProcessDirect বা JMS ঠিকানা ছাড়া।
  • অন্যান্য মান: queue ও Data Store-এর নাম, OData paths ও queries, timeouts, credential-এর নাম ও aliases, এবং ports।
  • Content Modifier ও Write Variables টেবিলের Constants।

প্রতিটি মানের জন্য participant ও field থেকে বানানো একটি প্রস্তাবিত নাম থাকে, যেমন Receiver_OData_Address, যা আপনি বদলাতে পারেন। যে মানগুলো আগেই {{…}} বা ${…}, সেগুলো সেভাবেই দেখানো হয়। Externalize ক্লিক করুন, আর টিক দেওয়া fields খোলা iFlow-এ parameters হয়ে যায়। SAP-এ iFlow সংরক্ষণ না করা পর্যন্ত কিছুই সংরক্ষিত হয় না।

চালানোর পরে পূর্বাবস্থায় ফেরান আগের মানগুলো ফিরিয়ে আনে, আর বর্তমান মান কপি করুন প্রতিটি parameter-কে তার প্রতিস্থাপিত মানসহ কপি করে: deploy করার পরে SAP Configure-এ প্রতিটি মান চায়, আর আপনি সেখানে সেগুলো paste করেন। Undo-র জন্য প্রতিটি iFlow-এর শেষ দশটি run রাখা হয়। কোনো receiver-এর ঠিকানা iFlow-এ লেখা থাকলে iFlow Inspector-এর design checks এই টুলের দিকে নির্দেশ করে।

একটি স্টেপের সেটিংস অন্য স্টেপ বা iFlow-এ কপি করুন

Kitegra menu-তে স্টেপ সেটিংস কপি ও পেস্ট বেছে নিন, diagram-এ একটি স্টেপ নির্বাচন করুন (অথবা panel-এ বেছে নিন), এবং সেটিংস কপি করুন ক্লিক করুন। কপিতে থাকে স্টেপের headers, exchange properties ও adapter fields। panel এই ব্রাউজারে প্রতিটি tenant ও iFlow-এর জন্য আপনার শেষ দশটি কপি রাখে, সবচেয়ে নতুনটি প্রথমে।

paste করতে SAP-এ Edit চাপুন, লক্ষ্য স্টেপটি নির্বাচন করুন এবং পেস্ট করুন ক্লিক করুন। লেখার আগে panel সেই fields-এর তালিকা দেখায় যেগুলো বদলাবে। প্রতিটি টেবিলের জন্য আপনি বেছে নেন রাখুন, সারি যোগ করুন (কপি করা সারিগুলোর মধ্যে শুধু যেগুলো নেই সেগুলো যোগ করে) অথবা সারি প্রতিস্থাপন। একটি কপি শুধু একই ধরনের স্টেপে যায়, এবং অন্য iFlow-এও যেতে পারে, তবে EDMX path ও script fields ছাড়া, কারণ এগুলো যে iFlow থেকে এসেছে তার ফাইলের নাম বহন করে। Undo শেষ paste যা বদলেছে তা ফিরিয়ে আনে।

OData কোয়েরি টেমপ্লেট

একই panel OData কোয়েরি টেমপ্লেট রাখে। যে OData receiver channel-এর query আপনি বানিয়েছেন সেটি নির্বাচন করুন, কোয়েরি টেমপ্লেট হিসেবে সংরক্ষণ ক্লিক করুন এবং একটি নাম দিন। একটি টেমপ্লেট রাখে operation, resource path এবং query options, যেমন $select, $filter ও $expand। পরে edit mode-এ আরেকটি OData receiver নির্বাচন করে প্রয়োগ ক্লিক করুন। আগে থেকে থাকা নামে সংরক্ষণ করলে সেই টেমপ্লেট প্রতিস্থাপিত হয়। options সম্পর্কে জানতে দেখুন OData receiver query options।

কপি ও টেমপ্লেট এই ব্রাউজারের এক্সটেনশন storage-এ থাকে। এগুলো আপনার Kitegra অ্যাকাউন্টের সাথে sync হয় না এবং কখনো কোথাও পাঠানো হয় না।

SAP Business Accelerator Hub থেকে একটি API ইমপোর্ট করুন

Helper একটি EDMX থেকে OData entity sets ও fields, এবং একটি OpenAPI ফাইল থেকে HTTP paths সাজেস্ট করে। Hub ইমপোর্টের ফলে সেই ফাইল আগে ডাউনলোড করার আর দরকার নেই। এক্সটেনশনের popup-এ একটি iFlow-এর পেজ খুলুন, যেখানে তার Sample payload ও API specification আছে, এবং SAP Business Accelerator Hub থেকে ইমপোর্ট খুঁজে নিন।

  1. প্রথমবার অ্যাক্সেসের অনুমতি দিন ক্লিক করুন: ব্রাউজার একবার api.sap.com-এ অ্যাক্সেস চায়। আপনি রাজি না হওয়া পর্যন্ত Kitegra-এর সেই অ্যাক্সেস থাকে না।
  2. একটি API খুঁজুন, যেমন API_PRODUCT_SRV। খোঁজার জন্য সাইন ইন লাগে না।
  3. ইমপোর্ট ক্লিক করুন। specification ডাউনলোড করতে এই ব্রাউজারে api.sap.com-এ আপনার সাইন ইন থাকা দরকার; সাইন ইন না থাকলে panel তা জানায় এবং Hub খুলে দেয়।

এরপর একটি OData API-র entity sets ও fields সেই iFlow-এর এমন OData receivers-এ সাজেস্ট করা হয় যেগুলোর নিজস্ব EDMX নেই। একটি REST API-র paths HTTP fields-এ সাজেস্ট করা হয়, ঠিক যেন আপনি ফাইলটি load করেছেন, যা OpenAPI ও Postman নিয়ে লেখা বর্ণনা করে। specification প্রতিটি iFlow-এর জন্য আলাদাভাবে, শুধু এই ব্রাউজারে, 8 MB পর্যন্ত রাখা হয়, আর সরান এটি মুছে ফেলে।

আপনার sample payload-এর বিপরীতে XPath যাচাই

iFlow-এর জন্য একটি sample payload সংরক্ষিত থাকলে Helper আগে থেকেই তা থেকে XPath paths সাজেস্ট করে। এখন এটি আপনার টাইপ করা XPath-ও যাচাই করে। sample-এর কোনো node না মিললে field-এর নিচে একটি সতর্কবার্তা বলে "নমুনা পেলোডে কোনো নোড এই XPath-এর সাথে মেলে না।" মিললে একটি তথ্য-লাইন পাওয়া মানটি দেখায়।

যাচাই চলে Content Modifier-এর headers ও properties এবং Write Variables-এর XPath সারিতে, XML Router conditions-এ এবং XPath splitters-এ। এটি শুধু সেখানেই চলে যেখানে সংরক্ষিত sample সত্যিই সেই স্টেপে পৌঁছায়: একটি XML sample, যার আগে শুধু body অপরিবর্তিত রাখা স্টেপ আছে, অথবা একটি JSON to XML Converter-এর পরে একটি JSON sample। Local Integration Processes, Exception Subprocesses এবং ${…} বা {{…}} দিয়ে বানানো XPaths-এ এটি চুপ থাকে, তাই একটি সতর্কবার্তা মানে সত্যিকারের অমিল।

একটি Message Mapping expression সাজান

এক ডজন functions-সহ একটি Message Mapping expression দ্রুতই একে অপরকে কাটা রেখার জট হয়ে যায়। expression canvas-এ এখন SAP-এর নিজস্ব বোতামগুলোর পাশে একটি সাজান বোতাম আছে। এটি nodes-কে source fields থেকে target পর্যন্ত সাজিয়ে দেয়। edit mode-এ Save লেআউটটি রাখে এবং তার পাশের undo বোতাম তা আগের মতো করে দেয়; view mode-এ এটি শুধু পড়তে সাহায্য করে, আর SAP expression আবার আঁকলে লেআউট চলে যায়। কিছুই সংরক্ষিত হয় না বা SAP-এ পাঠানো হয় না। iFlow diagram-এরও edit mode-এ নিজস্ব সাজানোর বোতাম আছে, Undo-সহ।

আপনার iFlow-এ কী বদলায়

Externalize Parameters, paste ও টেমপ্লেট প্রয়োগ ডিজাইনারে খোলা iFlow-এ লেখে, শুধু edit mode-এ, আর ডিজাইনার iFlow-টিকে পরিবর্তিত হিসেবে দেখায়। এগুলো কখনো সংরক্ষণ বা deploy করে না: আপনি SAP-এ সংরক্ষণ করেন, অথবা পরিবর্তন বাদ দিতে Discard করেন। এই প্রতিটি টুল options পেজে "টুল"-এর অধীনে আলাদাভাবে বন্ধ করা যায়; তখনই এটি ডিজাইনার থেকে সরে যায়। Externalize, স্টেপ কপি ও পেস্ট এবং Hub ইমপোর্ট paid প্ল্যানের অংশ, Free-তে কয়েকবার ব্যবহারসহ; XPath যাচাই ও সাজানো বিনামূল্যে। Kitegra লঞ্চের সময়টায় সাইন ইন করা সবার জন্য প্রতিটি টুল খোলা। প্ল্যানগুলো তুলনা করুন।

আপনার পরবর্তী iFlow-এ চেষ্টা করুন

Kitegra, SAP Integration Suite ডিজাইনারের চারপাশে কী কী যোগ করে তা পড়ুন, অথবা Deploy চাপার পরে এটি কী করে।

সাধারণ জিজ্ঞাসা

SAP CPI-তে একটি receiver ঠিকানা কীভাবে externalize করব?

SAP-এ Edit চাপুন, Kitegra menu-তে Externalize Parameters খুলুন, ঠিকানাটি টিক দেওয়া রাখুন, এর নাম দেখে নিন এবং Externalize ক্লিক করুন। iFlow সংরক্ষণ করুন, তারপর প্রতিটি tenant-এ Configure-এ মান সেট করুন; "বর্তমান মান কপি করুন" আপনাকে paste করার জন্য পুরোনো মানগুলো দেয়।

Content Modifier-এর সারি কি অন্য iFlow-এ কপি করা যায়?

হ্যাঁ। স্টেপের সেটিংস কপি করুন, অন্য iFlow-টি edit mode-এ খুলুন, একটি Content Modifier নির্বাচন করে paste করুন। শুধু অনুপস্থিত সারি যোগ করতে "সারি যোগ করুন" বেছে নিন, অথবা "সারি প্রতিস্থাপন"।

Hub ইমপোর্টের জন্য কি api.sap.com অ্যাকাউন্ট লাগে?

খোঁজা অ্যাকাউন্ট ছাড়াই চলে। একটি specification ডাউনলোড করতে একই ব্রাউজারে api.sap.com-এ আপনার সাইন ইন থাকা দরকার।

আমার স্টেপ কপি ও টেমপ্লেট কি sync হয়?

না। এগুলো এই ব্রাউজারের এক্সটেনশন storage-এ থাকে এবং কখনো কোথাও পাঠানো হয় না।

এর কোনোটি কি আমার iFlow সংরক্ষণ বা deploy করে?

না। টুলগুলো edit mode-এ খোলা iFlow-এ লেখে; আপনি SAP-এ সেটি সংরক্ষণ করেন, অথবা পরিবর্তন বাদ দেন।

ডিজাইনার না ছেড়েই iFlows-এ কাজ করুন

Kitegra Chrome বা Microsoft Edge-এ যোগ করুন। ফ্রিতে শুরু করুন, কোনো অ্যাকাউন্ট লাগবে না।