SAP CPI पेलोड टूल: ब्राउज़र में तुलना, रूपांतरण और test data बनाना
दो payloads की तुलना करें, SAP के converter नियमों से XML, JSON, YAML और CSV बदलें, faults वाले test payloads बनाएँ, और Groovy snippets डालें, iFlow डिज़ाइनर के बगल में offline।
SAP Cloud Integration (SAP CPI) के किसी iFlow पर आधा काम payload के आसपास होता है: दो messages जो एक जैसे होने चाहिए पर नहीं हैं, एक JSON body जिसे receiver XML में चाहता है, error handling के लिए test messages का एक सेट, और Groovy की वह लाइन जो आप हर हफ़्ते लिखते हैं और कभी याद नहीं रहती। ये काम आमतौर पर किसी text editor, किसी online converter और आपकी अपनी script पर जाकर ख़त्म होते हैं।
Kitegra का Toolbox इन्हें ब्राउज़र में, iFlow डिज़ाइनर के बगल में ले आता है: पेलोड तुलना, फ़ॉर्मेट कनवर्टर, टेस्ट पेलोड जनरेटर, चीट शीट के साथ Groovy snippets, और HTTP Runner। HTTP Runner से भेजी गई requests को छोड़कर, ये सब offline काम करते हैं। आप जो paste करते हैं वह पेज में ही रहता है, न कभी सेव होता है न कहीं भेजा जाता है।
Toolbox कहाँ मिलेगा
एक्सटेंशन का popup खोलें और "टूल्स" चुनें। Toolbox की सूची हर टूल को उसके अपने tab में खोलती है: पेलोड तुलना, फ़ॉर्मैट कन्वर्टर, टेस्ट पेलोड जनरेटर, स्निपेट और चीट शीट, HTTP Runner और iFlow Docs। किसी iFlow पर, diagram toolbar में Kitegra box का menu स्निपेट और नोट्स को भी पेज पर panels के रूप में खोलता है।
हर control के बगल में एक छोटा (i) होता है जो बताता है कि वह क्या करता है। Toolbox आपके प्लान में कोई iFlow नहीं गिनता।
पेलोड तुलना
दो payloads paste करें, उन्हें फ़ाइलों से load करें या पेज पर drop करें, और अंतर लाइन-दर-लाइन चिह्नित हो जाते हैं। "पिछला" और "अगला" एक अंतर से दूसरे पर ले जाते हैं, और साथ में बताते हैं कि कुल कितने अंतर हैं।
- व्हाइटस्पेस अनदेखा करें: जो लाइनें सिर्फ़ spaces, tabs या 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 को step-by-step 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 कर सकें। "कनवर्ट करें" के बगल में तीन और tabs हैं:
- जाँचें देखता है कि input सही ढाँचे का है, और हर समस्या उसकी लाइन और कॉलम के साथ दिखाता है। इसे XSD दें, तो XML के elements, उनका क्रम और गिनती, attributes और simple types भी जाँचे जाते हैं। यह हल्की जाँच है: namespaces, imports, includes, substitution groups और keys नहीं जाँचे जाते।
- खोजें और बदलें, JavaScript regular expressions और उनके groups के साथ।
- बैच कई फ़ाइलों को एक ही तरह convert करता है और नतीजे एक ZIP में download करता है। जो फ़ाइल fail हो, वह छोड़ दी जाती है और सूची में दिखाई जाती है।
टेस्ट पेलोड जनरेटर
Error handling किसी iFlow का सबसे कम test होने वाला हिस्सा है, क्योंकि ख़राब messages किसी के पास नहीं होते। जनरेटर उन्हें एक असली नमूने से बनाता है।
- एक असली message paste या upload करें: XML, JSON, या header row वाला CSV।
- fields की table देखें। हर field का type उसके मान से अनुमानित होता है: text, integer, decimal, boolean, तारीख, तारीख और समय, ई-मेल, currency, देश, UUID या null।
- हर field के लिए एक नियम चुनें: नमूने का मान "रखें", "उसी प्रकार का रैंडम", "क्रम", या मानों की "सूची से चुनें"।
- तय करें कि कितने payloads बनाने हैं (1000 तक) और उनमें से कितने हिस्से में fault हो।
- fault के प्रकार चुनें और "जनरेट करें" पर क्लिक करें।
faults वही हैं जिन्हें receivers अस्वीकार करते हैं: ज़रूरी field का न होना, ख़ाली field, ग़लत type, अमान्य तारीख, ई-मेल, currency या देश, ऋणात्मक मात्रा, ग़लत namespace, टूटा हुआ XML, JSON या CSV, duplicate ID, अतिरिक्त field और null मान। हर ख़राब payload में एक fault होता है।
एक ही नमूना, नियम और seed हमेशा वही payloads देते हैं, इसलिए test उसी data के साथ दोबारा चलाया जा सकता है। ZIP डाउनलोड करें हर payload की एक फ़ाइल देता है, साथ में एक manifest.json जो हर फ़ाइल का fault और उसका बदला हुआ field बताती है। एक फ़ाइल के रूप में डाउनलोड करें JSON Lines लिखता है, या XML और CSV जिनके बीच एक ख़ाली लाइन होती है। Runner के लिए डेटा सेट के रूप में सेव करें यह सेट HTTP Runner को सौंप देता है, जो हर payload आपके iFlow को भेजकर दिखा सकता है कि कौन-से जवाब उम्मीद के मुताबिक़ आए।
Groovy snippets और चीट शीट
स्निपेट tab में Cloud Integration scripts के लिए Groovy के 32 patterns हैं। हर एक 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 तक snippets रखता है, जो साइन इन होने पर आपके 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 iFlows गिनता है?
नहीं। सिर्फ़ Helper, Message Monitor, iFlow Inspector और iFlow Docs iFlows गिनते हैं।