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

এই নিবন্ধের মডিউল: Message Monitor

Message ID বা Correlation ID দিয়ে যেকোনো SAP CPI message খুঁজুন

SAP CPI-এর Message ID, Correlation ID ও Application ID কোথা থেকে আসে, monitor ও API-তে কীভাবে খুঁজবেন, এবং একটি message ও তার সম্পর্কিত messages কীভাবে খুলবেন।

Message ID বা Correlation ID দিয়ে যেকোনো SAP CPI message খুঁজুন

একজন partner বলছেন একটি order ব্যর্থ হয়েছে এবং আপনাকে একটি ID পাঠালেন। এটি কি Message ID, Correlation ID, নাকি তাঁদের নিজের order number? আর আপনার কোন iFlow এটি প্রসেস করেছে? SAP Cloud Integration (SAP CPI)-তে এই ID-গুলোর প্রতিটির অর্থ আলাদা, এবং প্রতিটি আলাদা উপায়ে খুঁজতে হয়।

এই নিবন্ধে তিনটি ID ব্যাখ্যা করা হয়েছে, 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 এবং যেগুলো সে 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 টুলে কাজে লাগে, আর 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 iFlow-গুলোর মধ্যে যাতায়াত করবে, সেগুলোর জন্য 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 ও header", "Adapter", "সংরক্ষিত" ও "সংযুক্তি"।
  4. "টাইমলাইন" tab খুলুন: এটি একই Correlation ID থাকা প্রতিটি message-এর তালিকা দেয়, তার iFlow, status, শুরু ও স্থায়িত্বসহ। এর জন্য কোনো trace লাগে না।
  5. এর বদলে browse করতে iFlow (বা "সব iFlow"), status, এবং "থেকে" ও "পর্যন্ত" সময় দিয়ে filter করুন।

খোলা iFlow-এর "বার্তা" panel-এ "ID কপি" একটি message-এর ID কপি করে, আর "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 প্রত্যেকে সেই iFlow-গুলো গণনা করে যেগুলোতে আপনি এগুলো ব্যবহার করেন: 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 caller-কে SAP_MessageProcessingLogID ফেরত দেয়।

Monitor কেন আমার Message ID খুঁজে পায় না?

সাধারণত time range খুব সংকীর্ণ থাকে। Message চলার সময়টা ধরতে range বাড়ান, অথবা API দিয়ে log পড়ুন।

আমি কি নিজের order number দিয়ে SAP CPI messages খুঁজতে পারি?

হ্যাঁ, যদি iFlow সেটি log-এ লেখে, যেমন SAP_ApplicationID হিসেবে বা একটি custom header property হিসেবে।

Log viewer-এর কি trace দরকার?

না। Message খোঁজা, তার সারাংশ ও timeline trace ছাড়াই কাজ করে। প্রতিটি step-এর আগের bodies ও headers দেখতে এমন message লাগবে যা শেষ এক ঘণ্টার মধ্যে TRACE-এ চলেছে।

আমি যে messages খুলি Kitegra কি সেগুলো দেখে?

না। Message content পেজে দেখানো হয় এবং কখনো সংরক্ষণ করা বা Kitegra-এ পাঠানো হয় না।

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

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