SAP CPI পেলোড টুল: ব্রাউজারে তুলনা, রূপান্তর ও test data তৈরি
দুটি payload তুলনা করুন, SAP-এর converter নিয়মে XML, JSON, YAML ও CSV রূপান্তর করুন, fault-সহ test payload তৈরি করুন, এবং Groovy স্নিপেট ঢোকান, iFlow ডিজাইনারের পাশে offline।
SAP Cloud Integration (SAP CPI)-এর কোনো iFlow-এর অর্ধেক কাজ হয় payload ঘিরে: দুটি message যা একই হওয়ার কথা অথচ নয়, একটি JSON body যা receiver XML-এ চায়, error handling-এর জন্য এক সেট test message, আর Groovy-র সেই লাইন যা আপনি প্রতি সপ্তাহে লেখেন অথচ কখনো মনে থাকে না। এই কাজগুলো সাধারণত শেষ হয় কোনো text editor, কোনো online converter আর আপনার নিজের লেখা script-এ।
Kitegra-এর Toolbox এগুলোকে ব্রাউজারে, iFlow ডিজাইনারের পাশেই নিয়ে আসে: পেলোড তুলনা, ফরম্যাট কনভার্টার, টেস্ট পেলোড জেনারেটর, চিট শিটসহ Groovy স্নিপেট, এবং HTTP Runner। HTTP Runner দিয়ে পাঠানো requests ছাড়া এগুলো সবই offline কাজ করে। আপনি যা paste করেন তা পেজেই থাকে, কখনো সংরক্ষণ বা পাঠানো হয় না।
Toolbox কোথায় পাবেন
এক্সটেনশনের popup খুলে "টুলস" বেছে নিন। Toolbox-এর তালিকা প্রতিটি টুল তার নিজের tab-এ খোলে: পেলোড তুলনা, ফরম্যাট কনভার্টার, টেস্ট পেলোড জেনারেটর, স্নিপেট ও চিট শিট, HTTP Runner এবং iFlow Docs। কোনো iFlow-এ, diagram toolbar-এর Kitegra box-এর menu স্নিপেট ও নোটকেও পেজের ওপর panel হিসেবে খোলে।
প্রতিটি control-এর পাশে একটি ছোট (i) থাকে, যা বলে সেটি কী করে। Toolbox আপনার প্ল্যানে কোনো iFlow গোনে না।
পেলোড তুলনা
দুটি payload paste করুন, ফাইল থেকে load করুন বা পেজে drop করুন, আর পার্থক্যগুলো লাইন ধরে চিহ্নিত হয়ে যায়। "আগের" ও "পরের" এক পার্থক্য থেকে আরেকটিতে নিয়ে যায়, সঙ্গে মোট কতগুলো পার্থক্য আছে তার সংখ্যা দেখায়।
- হোয়াইটস্পেস উপেক্ষা করুন: যে লাইনগুলো শুধু space, tab বা indentation-এ আলাদা, সেগুলো সমান ধরা হয়।
- XML স্বাভাবিক করুন: attributes সাজায়, namespace prefixes উপেক্ষা করে এবং দুই পাশই indent করে, যাতে শুধু আসল পরিবর্তনগুলো থাকে।
- JSON স্বাভাবিক করুন: keys সাজায় এবং indent করে।
- শুধু পার্থক্য: একই লাইনগুলো লুকিয়ে রাখে, আর তাদের জায়গায় লুকানো লাইনের সংখ্যা দেখায়।
- A ও B অদলবদল করুন: যা added দেখাচ্ছিল তা removed দেখায়।
যে payload সঠিক গঠনের XML বা valid JSON নয়, সেটিরও তুলনা হয়, text হিসেবে। Message Monitor-এ, trace করা কোনো step-এর payload viewer-এ পরের ধাপের সাথে তুলনা আছে, যা সেই step-এর আগের ও পরের body নিয়ে এই পেজ খোলে। দেখুন একটি message ধাপে ধাপে trace করা।
ফরম্যাট কনভার্টার
XML, JSON, YAML, CSV বা যেকোনো text paste করুন, অথবা একটি ফাইল load করুন। content থেকে ফরম্যাট শনাক্ত হয়, আর শুধু সেই conversions দেখানো হয় যা এর সাথে মেলে:
- XML থেকে JSON ও JSON থেকে XML, SAP-এর নিজস্ব converters-এর নিয়ম মেনে:
@namemembers হলো attributes,$হলো একটি element-এর text, আর একটি array তার element-কে পুনরাবৃত্তি করে। options সেগুলোই যা আপনি iFlow-এ সেট করেন: Add XML Root Element, Suppress JSON Root Element এবং যে elements সবসময় arrays হিসেবে লেখা হয়। - CSV থেকে JSON বা XML এবং উল্টোটা, স্বয়ংক্রিয়ভাবে শনাক্ত বা আপনার বাছাই করা separator, header row এবং row element-এর নামসহ।
- YAML থেকে JSON ও JSON থেকে YAML।
- XML থেকে অনুমিত XSD, আর XSD থেকে নমুনা XML।
- XML ও JSON-এর জন্য pretty print ও minify।
- Base64 ও URL encode ও decode; XML, JSON ও Groovy strings-এর জন্য escape ও unescape।
ইনপুট হিসেবে ব্যবহার ফলাফলটি আবার input box-এ বসিয়ে দেয়, যাতে আপনি সেটি আবার convert করতে পারেন। "রূপান্তর"-এর পাশে আরও তিনটি tab আছে:
- যাচাই দেখে input সঠিক গঠনের কি না, এবং প্রতিটি সমস্যা তার লাইন ও কলামসহ তালিকা করে। একটি XSD দিলে XML-এর elements, তাদের ক্রম ও সংখ্যা, attributes এবং simple types-ও যাচাই হয়। এটি হালকা যাচাই: namespaces, imports, includes, substitution groups ও keys যাচাই হয় না।
- খুঁজুন ও বদলান, JavaScript regular expressions ও তাদের groups-সহ।
- ব্যাচ একাধিক ফাইল একইভাবে convert করে এবং ফলাফল একটি ZIP-এ download করে। যে ফাইল ব্যর্থ হয় সেটি বাদ পড়ে এবং তালিকায় দেখানো হয়।
টেস্ট পেলোড জেনারেটর
Error handling হলো iFlow-এর সবচেয়ে কম test করা অংশ, কারণ ভাঙা message কারও কাছে থাকে না। জেনারেটর একটি আসল নমুনা থেকে সেগুলো তৈরি করে।
- একটি আসল message paste বা upload করুন: XML, JSON, বা header row-সহ CSV।
- fields-এর table দেখে নিন। প্রতিটি field-এর ধরন তার মান থেকে অনুমান করা হয়: text, integer, decimal, boolean, তারিখ, তারিখ ও সময়, ই-মেইল, currency, দেশ, UUID বা null।
- প্রতিটি field-এর জন্য একটি নিয়ম বেছে নিন: নমুনার মান "রাখুন", "একই ধরনের র্যান্ডম", "ক্রম", অথবা মানের "তালিকা থেকে বাছাই"।
- কতগুলো payload বানাবেন (1000 পর্যন্ত) এবং তার কত অংশে fault থাকবে তা ঠিক করুন।
- fault-এর ধরনগুলো বেছে নিয়ে "জেনারেট"-এ ক্লিক করুন।
faults হলো সেগুলোই যা receivers প্রত্যাখ্যান করে: একটি বাধ্যতামূলক field অনুপস্থিত, খালি field, ভুল type, অবৈধ তারিখ, ই-মেইল, currency বা দেশ, ঋণাত্মক পরিমাণ, ভুল namespace, ভাঙা XML, JSON বা CSV, duplicate ID, বাড়তি field এবং null মান। প্রতিটি ত্রুটিপূর্ণ payload-এ একটি করে fault থাকে।
একই নমুনা, নিয়ম ও seed সবসময় একই payloads দেয়, তাই একই data দিয়ে test আবার চালানো যায়। ZIP ডাউনলোড প্রতিটি payload-এর জন্য একটি ফাইল দেয়, সঙ্গে একটি manifest.json যা প্রতিটি ফাইলের fault ও সেটি কোন field বদলেছে তা জানায়। একটি ফাইল হিসেবে ডাউনলোড JSON Lines লেখে, অথবা একটি ফাঁকা লাইন দিয়ে আলাদা করা XML ও CSV। Runner-এর ডেটা সেট হিসেবে সেভ সেটটি HTTP Runner-এর হাতে দেয়, যা প্রতিটি payload আপনার iFlow-এ পাঠিয়ে দেখাতে পারে কোন উত্তরগুলো প্রত্যাশামতো এসেছে।
Groovy স্নিপেট ও চিট শিট
স্নিপেট tab-এ Cloud Integration scripts-এর জন্য Groovy-র 32টি pattern আছে। প্রতিটি processData(Message message)-এর ভেতরে বসানোর জন্য লেখা, class names পুরো লেখা, তাই কোনো import লাগে না। এগুলোতে আছে body, headers ও exchange properties পড়া ও সেট করা, বড় body stream করা, XmlSlurper, XmlParser ও MarkupBuilder, XXE থেকে নিরাপদ XML parsing, JsonSlurper ও JsonBuilder, monitoring-এ খোঁজা যায় এমন মান, message log-এ attachments, স্পষ্ট error দিয়ে fail করা, exception subprocess-এ HTTP error, Secure Store credentials, এবং Value Mapping ও Partner Directory lookups।
নাম বা tag দিয়ে এগুলো খুঁজুন। ডিজাইনারে কোনো script edit mode-এ খোলা থাকলে ঢোকান snippet-টি cursor-এর জায়গায় লিখে দেয়; নইলে সেটি copy করুন। নিজের স্নিপেট যোগ করুন আপনার নিজের 20টি পর্যন্ত snippet রাখে, যা সাইন ইন থাকলে আপনার Kitegra অ্যাকাউন্টের সাথে sync হয়। এগুলোতে passwords বা keys রাখবেন না।
চিট শিট tab-এ আছে যা আপনি প্রতি সপ্তাহে খোঁজেন: Simple operators, উদাহরণসহ Java date patterns, নমুনা XML-এ চালানো XPath 1.0 functions, এবং SAP ও Apache Camel-এর documentation-এর links। যেকোনো উদাহরণে ক্লিক করে সেটি copy করুন। expressions-এর ব্যাখ্যা আছে SAP CPI-তে Camel Simple expressions-এ।
কোনো iFlow-এ আগে থেকে থাকা scripts পড়তে iFlow Docs-এ "স্ক্রিপ্ট ব্যাখ্যা" ব্যবহার করুন। এটি প্রতিটি script-এর উদ্দেশ্য, সেটি কী পড়ে, কী সেট করে বা বদলায়, তার মূল logic, সেটি যে SAP APIs ব্যবহার করে এবং তার ঝুঁকিগুলো তালিকা করে।
HTTP Runner
HTTP Runner আপনার iFlow-এর HTTPS endpoints-কে Process Integration Runtime service key থেকে OAuth দিয়ে call করে, requests-কে collections-এ রাখে, এবং উত্তরগুলো যাচাই করে। "iFlow তথ্য"-এ প্রতিটি endpoint cURL হিসেবে copy করা যায় বা Runner-এ খোলা যায়। পুরো ধাপগুলো আছে service key দিয়ে HTTPS iFlow test করা-এ।
এটি কী রাখে, আর আপনার প্ল্যানে কী আছে
তুলনা, কনভার্টার, জেনারেটর ও চিট শিট পেজের ভেতরেই চলে এবং কিছুই রাখে না। আপনার নিজের snippets, এবং auth values বা secret variables ছাড়া HTTP Runner-এর collections, সাইন ইন থাকলে আপনার Kitegra অ্যাকাউন্টের সাথে sync হয়।
offline টুলগুলো সব প্ল্যানে আছে। HTTP Runner Free ও Starter-এ সীমিতভাবে, আর Pro ও টিম প্ল্যানে পুরোপুরি ব্যবহার করা যায়। Kitegra লঞ্চের সময়টায়, সাইন ইন করা সবার জন্য প্রতিটি টুল খোলা, Free প্ল্যানেও। প্ল্যানগুলো তুলনা করুন।
আপনার পরবর্তী iFlow-এ চেষ্টা করুন
Kitegra, SAP Integration Suite ডিজাইনারের চারপাশে কী কী যোগ করে তা পড়ুন, অথবা Toolbox যা যা করে তা দেখুন।
সাধারণ জিজ্ঞাসা
আমার payloads কি কোথাও পাঠানো হয়?
না। তুলনা, কনভার্টার, জেনারেটর ও চিট শিট ব্রাউজারের পেজের ভেতরে চলে। আপনি যা paste বা load করেন তা সংরক্ষণ বা পাঠানো হয় না।
কনভার্টার কি SAP-এর converters-এর মতো একই ফলাফল দেয়?
এটি SAP-এর JSON to XML ও XML to JSON converters-এর একই নিয়ম ও options মেনে চলে: attributes, element text, arrays, যোগ করা root element এবং বাদ দেওয়া JSON root। ফলাফল হুবহু হতে হলে iFlow চালান।
তৈরি করা test set কি আবার পাওয়া যায়?
হ্যাঁ। একই নমুনা, নিয়ম ও seed সবসময় একই payloads দেয়। faults বদলালে মানগুলো আগের মতোই থাকে।
Groovy script-এ কীভাবে snippet ঢোকাব?
ডিজাইনারে script-টি edit mode-এ খুলুন, cursor যেখানে snippet বসবে সেখানে রাখুন, এবং snippet-এ "ঢোকান"-এ ক্লিক করুন। তারপর iFlow নিজে সেভ করুন।
Toolbox কি iFlow গোনে?
না। শুধু Helper, Message Monitor, iFlow Inspector ও iFlow Docs iFlow গোনে।