सामग्री पर जाएँ
← ब्लॉग पर वापस जाएँ

इस लेख का मॉड्यूल: Message Monitor

SAP CPI में Message ID या Correlation ID से कोई भी message खोजें

SAP CPI के Message ID, Correlation ID और Application ID कहाँ से आते हैं, उन्हें monitor और API में कैसे खोजें, और कोई message और उससे जुड़े messages कैसे खोलें।

SAP CPI में Message ID या Correlation ID से कोई भी message खोजें

एक partner कहता है कि कोई order fail हुआ और आपको एक ID भेजता है। क्या यह Message ID है, Correlation ID है या उनका अपना order number? और आपके किस iFlow ने इसे प्रोसेस किया? SAP Cloud Integration (SAP CPI) में इन IDs में से हर एक का मतलब अलग है, और हर एक को अलग तरीके से खोजा जाता है।

यह लेख तीनों IDs को समझाता है, बताता है कि उन्हें SAP के monitor और उसकी API में कैसे खोजें, अपने messages को खोजने में आसान कैसे बनाएँ, और किसी भी message को उससे जुड़े messages के साथ एक ही कदम में कैसे खोलें।

Message ID, Correlation ID और Application ID

  • Message ID: एक message processing log (MPL) की ID। iFlow के अंदर header SAP_MessageProcessingLogID इसे रखता है, और HTTPS sender इसे उसी नाम के response header में caller को लौटाता है।
  • Correlation ID: आपस में जुड़े messages के logs में साझा होती है, जैसे कोई message और वे messages जिन्हें वह ProcessDirect या JMS के ज़रिए आगे भेजता है। Header SAP_MplCorrelationId इसे रखता है।
  • Application ID: आपकी अपनी business key, जैसे order number, जो header SAP_ApplicationID में सेट होती है। Monitor इसे दिखाता है और इससे खोज सकता है।

जब कोई आपको ID भेजे: Message ID एक message ढूँढती है, Correlation ID पूरी chain ढूँढती है, और Application ID वह message ढूँढती है जिसकी बात वे अपनी भाषा में कर रहे हैं।

SAP के monitor में खोजना

  1. Monitor Message Processing खोलें।
  2. Time range को इतना बढ़ाएँ कि message चलने का समय उसमें आ जाए: चुनी गई range से बाहर का message नहीं दिखता।
  3. Search field में ID डालें, या सूची छोटी करने के लिए पहले iFlow और कोई status चुनें।
  4. Message को खोलें: उसका log, उसकी error और, अगर पिछले एक घंटे में trace हुआ हो, उसका trace देखने के लिए।

API से खोजना

Cloud Integration OData API वही logs पढ़ती है। यह scripts और support tools में काम आती है, और monitor की time range पर निर्भर नहीं करती:

GET https://<tenant>/api/v1/MessageProcessingLogs('<Message ID>')

GET https://<tenant>/api/v1/MessageProcessingLogs?$filter=CorrelationId eq '<Correlation ID>'&$orderby=LogStart

GET https://<tenant>/api/v1/MessageProcessingLogs?$filter=ApplicationMessageId eq '<your ID>'

इन calls के लिए tenant पर monitoring अधिकारों वाला user चाहिए।

अपने messages को खोजने में आसान बनाएँ

न Message ID का और न Correlation ID का business के लिए कोई मतलब है। Business key को ख़ुद log में लिखें: Application ID के रूप में, और एक custom header property के रूप में, जिसे monitor दिखाता है और जिससे खोज सकता है:

import com.sap.gateway.ip.core.customdev.util.Message

def Message processData(Message message) {
    def orderId = message.getProperty("orderId") as String
    // Shown and searchable in the monitor as a custom header property.
    messageLogFactory.getMessageLog(message)?.addCustomHeaderProperty("OrderId", orderId)
    // Shown in the monitor as the message's Application ID.
    message.setHeader("SAP_ApplicationID", orderId)
    return message
}

जिन values को iFlows के बीच जाना है, उनके लिए ProcessDirect और JMS headers वाला लेख बताता है कि हर link से क्या पार होता है।

डिज़ाइनर से कोई भी message खोलें

  1. डिज़ाइनर में "Kitegra टूल" बटन पर क्लिक करें और "मैसेज लॉग" चुनें। Log viewer नए tab में खुलता है; डिज़ाइनर वाला tab खुला रखें, क्योंकि viewer उसी के ज़रिए SAP को पढ़ता है।
  2. "Message ID या Correlation ID" वाले box में ID paste करें और "खोजें" चुनें। Tenant के किसी भी iFlow के messages वहाँ खुलते हैं।
  3. Message को उसके tabs में पढ़ें: "सारांश", "Body और headers", "Adapter", "सहेजे गए" और "अटैचमेंट"।
  4. "टाइमलाइन" tab खोलें: यह Correlation ID साझा करने वाले हर message की सूची देता है, उसके iFlow, status, शुरुआत और अवधि के साथ। इसके लिए trace की ज़रूरत नहीं है।
  5. इसके बजाय browse करने के लिए iFlow (या "सभी iFlows"), status, और "से" और "तक" समय से filter करें।

खुले iFlow के "मैसेज" panel में "ID कॉपी करें" किसी message की ID copy करता है, और "SAP के मैसेज मॉनिटर में खोलें" उसके लिए SAP का अपना पेज खोलता है। मिले हुए message को trace करने के लिए देखें message को step by step trace करना; जानबूझकर एक message बनाने के लिए service key से HTTPS iFlow टेस्ट करें।

Kitegra कैसे मदद करता है

Log viewer, Kitegra के Message Monitor का हिस्सा है। Message content पेज में दिखाया जाता है, कभी सहेजा या Kitegra को भेजा नहीं जाता।

Helper, Message Monitor, iFlow Inspector और iFlow Docs हर एक उन iFlows को गिनते हैं जिन पर आप उन्हें इस्तेमाल करते हैं: Kitegra खाते के बिना हर मॉड्यूल में 5, Free प्लान में 50, Starter में 100 और Pro में 300; Startup Team हर सदस्य को 300 देता है, Growth Team और Scale Team पर कोई सीमा नहीं। Toolbox और workspace की अतिरिक्त सुविधाएँ कोई iFlow नहीं गिनतीं। Kitegra के लॉन्च के दौरान, साइन इन किए हर व्यक्ति के लिए हर टूल खुला है, Free प्लान पर भी। प्लान की तुलना करें।

अपने अगले iFlow में आज़माएँ

पढ़ें कि Kitegra, SAP Integration Suite के डिज़ाइनर में क्या-क्या जोड़ता है, या इसे Kitegra के बाकी Chrome एक्सटेंशन के साथ देखें।

अक्सर पूछे जाने वाले प्रश्न

SAP CPI में Message ID और Correlation ID में क्या अंतर है?

Message ID एक message processing log की पहचान है। Correlation ID आपस में जुड़े messages के logs में साझा होती है, जैसे ProcessDirect या JMS के पार।

HTTPS call की Message ID कहाँ मिलती है?

Response headers में: HTTPS sender, SAP_MessageProcessingLogID को caller को लौटाता है।

Monitor मेरी Message ID क्यों नहीं ढूँढ पाता?

आमतौर पर time range बहुत छोटी होती है। इसे इतना बढ़ाएँ कि message चलने का समय उसमें आ जाए, या API से log पढ़ें।

क्या मैं SAP CPI messages को अपने order number से खोज सकता हूँ?

हाँ, अगर iFlow उसे log में लिखता है, जैसे SAP_ApplicationID के रूप में या custom header property के रूप में।

क्या log viewer को trace चाहिए?

नहीं। Message ढूँढना, उसका सारांश और उसकी timeline बिना trace के काम करते हैं। हर step से पहले की bodies और headers के लिए ऐसा message चाहिए जो पिछले एक घंटे में TRACE के साथ चला हो।

क्या Kitegra मेरे खोले गए messages देखता है?

नहीं। Message content पेज में दिखाया जाता है और कभी सहेजा या Kitegra को भेजा नहीं जाता।

डिज़ाइनर छोड़े बिना iFlows पर काम करें

Kitegra को Chrome या Microsoft Edge में जोड़ें। मुफ़्त में शुरू करें, किसी खाते की ज़रूरत नहीं।