مواد پر جائیں
← بلاگ پر واپس جائیں

اس مضمون کا ماڈیول: Message Monitor

SAP CPI میں کوئی بھی message، Message ID یا Correlation ID سے تلاش کریں

SAP CPI کی Message ID، Correlation ID اور Application ID کہاں سے آتی ہیں، monitor اور API میں انہیں کیسے تلاش کریں، اور کوئی message اور اس سے متعلقہ پیغامات کیسے کھولیں۔

SAP CPI میں کوئی بھی message، Message ID یا Correlation ID سے تلاش کریں

کوئی partner بتاتا ہے کہ ایک order ناکام ہوا اور آپ کو ایک ID بھیجتا ہے۔ کیا یہ Message ID ہے، Correlation ID ہے یا ان کا اپنا order number؟ اور آپ کے کس iFlow نے اسے process کیا؟ SAP Cloud Integration (SAP CPI) میں ان میں سے ہر ID کا مطلب مختلف ہے، اور ہر ایک کو تلاش کرنے کا طریقہ بھی مختلف ہے۔

یہ مضمون تینوں IDs کی وضاحت کرتا ہے، بتاتا ہے کہ انہیں SAP کے monitor اور اس کی API میں کیسے تلاش کریں، اپنے پیغامات کو تلاش کے لیے آسان کیسے بنائیں، اور کسی بھی message کو، اس سے متعلقہ پیغامات سمیت، ایک قدم میں کیسے کھولیں۔

Message ID، Correlation ID اور Application ID

  • Message ID: ایک message processing log ‏(MPL) کی ID۔ iFlow کے اندر header ‏SAP_MessageProcessingLogID اسے رکھتا ہے، اور HTTPS sender اسے اسی نام کے response header میں caller کو واپس کرتا ہے۔
  • Correlation ID: ان پیغامات کے 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. وقت کی حد اتنی بڑھائیں کہ message کے چلنے کا وقت اس میں آ جائے: منتخب حد سے باہر کا message نظر نہیں آتا۔
  3. تلاش کے field میں ID درج کریں، یا فہرست مختصر کرنے کے لیے پہلے iFlow اور کوئی status چنیں۔
  4. Message کو اس کے log، اس کے error اور، اگر پچھلے ایک گھنٹے میں trace ہوا ہو تو، اس کے trace کے لیے کھولیں۔

API سے تلاش

Cloud Integration کی OData API وہی logs پڑھتی ہے۔ یہ scripts اور support tools میں کارآمد ہے، اور monitor کی وقت کی حد پر منحصر نہیں:

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 کے لیے ٹیننٹ پر monitoring rights والا user چاہیے۔

اپنے پیغامات کو تلاش کے لیے آسان بنائیں

نہ Message ID کا business کے لیے کوئی مطلب ہے نہ Correlation ID کا۔ 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 نئے ٹیب میں کھلتا ہے؛ ڈیزائنر کا ٹیب کھلا رکھیں، کیونکہ viewer اسی کے ذریعے SAP پڑھتا ہے۔
  2. ID کو "Message ID یا Correlation ID" والے خانے میں paste کریں اور "تلاش کریں" چنیں۔ ٹیننٹ کے کسی بھی iFlow کے پیغامات وہاں کھلتے ہیں۔
  3. Message کو اس کے ٹیبز میں پڑھیں: "خلاصہ"، "Body اور headers"، "Adapter"، "محفوظ شدہ" اور "منسلکات"۔
  4. "ٹائم لائن" ٹیب کھولیں: یہ ہر اس message کی فہرست دیتا ہے جس کی Correlation ID یہی ہو، اس کے iFlow، status، آغاز اور دورانیے کے ساتھ۔ اس کے لیے trace ضروری نہیں۔
  5. اس کے بجائے browse کرنے کے لیے iFlow (یا "تمام iFlows")، status، اور "سے" اور "تک" وقت کے مطابق filter کریں۔

کسی کھلے iFlow کے "پیغامات" panel میں "ID کاپی کریں" کسی message کی ID کاپی کرتا ہے، اور "SAP کے میسج مانیٹر میں کھولیں" اس کا SAP والا صفحہ کھولتا ہے۔ ملے ہوئے message کو trace کرنے کے لیے message کو مرحلہ وار trace کرنا دیکھیں؛ جان بوجھ کر message بنانے کے لیے service key کے ساتھ HTTPS iFlow ٹیسٹ کریں۔

Kitegra کیسے مدد کرتا ہے

Log viewer، Kitegra کے Message Monitor کا حصہ ہے۔ Message کا مواد صفحے میں دکھایا جاتا ہے، کبھی محفوظ نہیں ہوتا اور نہ 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 اور ورک اسپیس کی اضافی سہولتیں کوئی iFlow نہیں گنتیں۔ Kitegra کے لانچ کے دوران، سائن اِن کرنے والے ہر شخص کے لیے ہر ٹول کھلا ہے، Free پلان پر بھی۔ پلانز کا موازنہ کریں۔

اپنے اگلے iFlow میں آزمائیں

پڑھیں کہ Kitegra، SAP Integration Suite ڈیزائنر کے ارد گرد کیا اضافہ کرتا ہے، یا اسے Kitegra کی دوسری Chrome ایکسٹینشنز کے ساتھ دیکھیں۔

اکثر پوچھے جانے والے سوالات

SAP CPI میں Message ID اور Correlation ID میں کیا فرق ہے؟

Message ID ایک message processing log کی شناخت کرتی ہے۔ Correlation ID ان پیغامات کے logs میں مشترک ہوتی ہے جو ایک ساتھ تعلق رکھتے ہیں، مثلاً ProcessDirect یا JMS کے پار۔

HTTPS call کی Message ID کہاں ملتی ہے؟

Response headers میں: HTTPS sender، caller کو SAP_MessageProcessingLogID واپس کرتا ہے۔

Monitor میری Message ID کیوں نہیں ڈھونڈتا؟

عام طور پر وقت کی حد بہت تنگ ہوتی ہے۔ اسے اتنا بڑھائیں کہ message کے چلنے کا وقت شامل ہو جائے، یا API کے ذریعے log پڑھیں۔

کیا میں SAP CPI پیغامات اپنے order number سے تلاش کر سکتا ہوں؟

جی ہاں، اگر iFlow اسے log میں لکھے، مثلاً SAP_ApplicationID کے طور پر یا custom header property کے طور پر۔

کیا log viewer کو trace کی ضرورت ہے؟

نہیں۔ Message ڈھونڈنا، اس کا خلاصہ اور اس کی ٹائم لائن trace کے بغیر کام کرتے ہیں۔ ہر step سے پہلے کی bodies اور headers کے لیے ایسا message چاہیے جو پچھلے ایک گھنٹے میں TRACE کے ساتھ چلا ہو۔

کیا Kitegra وہ پیغامات دیکھتا ہے جو میں کھولتا ہوں؟

نہیں۔ Message کا مواد صفحے میں دکھایا جاتا ہے اور کبھی محفوظ نہیں ہوتا، نہ Kitegra کو بھیجا جاتا ہے۔

ڈیزائنر چھوڑے بغیر iFlows پر کام کریں

Kitegra کو Chrome یا Microsoft Edge میں شامل کریں۔ مفت شروع کریں، کسی اکاؤنٹ کی ضرورت نہیں۔