Bu makaledeki modül: Message Monitor
Herhangi Bir SAP CPI Mesajını Message ID veya Correlation ID ile Bulma
SAP CPI'da Message ID, Correlation ID ve Application ID'nin nereden geldiği, izleyicide ve API ile nasıl aranacağı ve bir mesajın ilgili mesajlarıyla birlikte nasıl açılacağı.

Bir iş ortağı bir siparişin başarısız olduğunu söyler ve size bir ID gönderir. Bu bir Message ID mi, bir Correlation ID mi, yoksa kendi sipariş numarası mı? Peki onu iFlow'larınızdan hangisi işledi? SAP Cloud Integration'da (SAP CPI) bu ID'lerin her biri farklı bir anlama gelir ve her biri farklı bir yolla bulunur.
Bu makale üç ID'yi, bunların SAP'nin izleyicisinde ve API'sinde nasıl aranacağını, kendi mesajlarınızı nasıl daha kolay bulunur hale getireceğinizi ve herhangi bir mesajı ilgili mesajlarıyla birlikte tek adımda nasıl açacağınızı açıklıyor.
Message ID, Correlation ID ve Application ID
- Message ID: tek bir message processing log'un (MPL) ID'si. iFlow içinde
SAP_MessageProcessingLogIDheader'ı onu tutar ve bir HTTPS sender onu çağırana aynı adlı bir yanıt header'ında döndürür. - Correlation ID: birbirine ait mesajların logları tarafından paylaşılır; örneğin bir mesaj ve onun ProcessDirect veya JMS üzerinden aktardığı mesajlar.
SAP_MplCorrelationIdheader'ı onu tutar. - Application ID: sipariş numarası gibi kendi iş anahtarınız;
SAP_ApplicationIDheader'ında ayarlanır. İzleyici onu gösterir ve onunla arama yapabilir.
Biri size bir ID gönderdiğinde Message ID tek bir mesajı, Correlation ID tüm zinciri, Application ID ise karşı tarafın kendi terimleriyle bahsettiği mesajı bulur.
SAP'nin izleyicisinde arama
- Monitor Message Processing'i açın.
- Zaman aralığını mesajın çalıştığı zamanı kapsayacak şekilde genişletin: seçilen aralığın dışındaki bir mesaj görünmez.
- ID'yi arama alanına girin veya listeyi daraltmak için önce iFlow'u ve bir durumu seçin.
- Log'u, hatası ve son bir saat içinde trace edildiyse trace'i için mesajı açın.
API ile arama
Cloud Integration OData API aynı logları okur. Betiklerde ve destek araçlarında kullanışlıdır ve izleyicinin zaman aralığına bağlı değildir:
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>'Çağrılar için tenant'ta izleme yetkisine sahip bir kullanıcı gerekir.
Mesajlarınızı kolay bulunur hale getirin
Ne Message ID ne de Correlation ID iş tarafı için bir şey ifade eder. İş anahtarını log'a kendiniz yazın: Application ID olarak ve izleyicinin gösterdiği ve arayabildiği bir custom header property olarak:
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
}iFlow'lar arasında taşınması gereken değerler için ProcessDirect ve JMS header'ları makalesi her bağlantıdan neyin geçtiğini açıklıyor.
Herhangi bir mesajı tasarımcıdan açın
- Tasarımcıda “Kitegra araçları” düğmesine tıklayın ve Mesaj logları'nı seçin. Log görüntüleyici yeni bir sekmede açılır; tasarımcı sekmesini açık tutun, çünkü görüntüleyici SAP'yi onun üzerinden okur.
- ID'yi “Message ID veya Correlation ID” etiketli kutuya yapıştırın ve Bul'u seçin. Tenant'ın herhangi bir iFlow'unun mesajları orada açılır.
- Mesajı sekmelerinde okuyun: Özet, Body ve header'lar, Adaptör, Kalıcı ve Ekler.
- Zaman çizelgesi sekmesini açın: Correlation ID'yi paylaşan her mesajı iFlow'u, durumu, başlangıcı ve süresiyle listeler. Trace gerektirmez.
- Bunun yerine göz atmak için iFlow'a (veya Tüm iFlow'lar), duruma ve bir Başlangıç ile Bitiş zamanına göre filtreleyin.
Açık bir iFlow'un Mesajlar panelinde “ID'yi kopyala” bir mesajın ID'sini kopyalar, “SAP mesaj izleyicisinde aç” ise SAP'nin o mesaja ait sayfasını açar. Bulduğunuz bir mesajı trace etmek için bir mesajı adım adım trace etme makalesine bakın; bilerek bir mesaj oluşturmak için bir HTTPS iFlow'u service key ile test edin.
Kitegra nasıl yardımcı olur
Log görüntüleyici, Kitegra uzantısındaki Message Monitor'ün bir parçasıdır. Mesaj içeriği sayfada gösterilir; asla saklanmaz veya Kitegra'e gönderilmez.
Helper, Message Monitor, iFlow Inspector ve iFlow Docs, kullandığınız iFlow'ları her biri ayrı sayar: Kitegra hesabı olmadan modül başına 5, Free planında 50, Starter'da 100 ve Pro'da 300; Startup Team her üyeye 300 verir, Growth Team ve Scale Team'de sınır yoktur. Toolbox ve çalışma alanı ekstraları iFlow saymaz. Kitegra'in lansman döneminde, oturum açan herkes Free planında bile tüm araçları kullanabilir. Planları karşılaştırın.
Bir sonraki iFlow'unuzda deneyin
Kitegra'ın SAP Integration Suite tasarımcısının çevresine neler eklediğini okuyun veya onu Kitegra'in diğer Chrome uzantılarıyla birlikte görün.
Sık sorulan sorular
SAP CPI'da Message ID ile Correlation ID arasındaki fark nedir?
Message ID tek bir message processing log'u tanımlar. Correlation ID ise birbirine ait mesajların logları tarafından paylaşılır; örneğin ProcessDirect veya JMS üzerinden.
Bir HTTPS çağrısının Message ID'sini nerede bulurum?
Yanıt header'larında: bir HTTPS sender çağırana SAP_MessageProcessingLogID döndürür.
İzleyici Message ID'mi neden bulamıyor?
Genellikle zaman aralığı çok dardır. Aralığı mesajın çalıştığı zamanı kapsayacak şekilde genişletin veya log'u API üzerinden okuyun.
SAP CPI mesajlarını kendi sipariş numaramla arayabilir miyim?
Evet, iFlow onu log'a yazıyorsa; örneğin SAP_ApplicationID olarak veya bir custom header property olarak.
Log görüntüleyici trace gerektirir mi?
Hayır. Bir mesajı bulmak, özeti ve zaman çizelgesi trace olmadan çalışır. Her adımdan önceki body ve header'lar için son bir saat içinde TRACE ile çalışmış bir mesaj gerekir.
Kitegra açtığım mesajları görür mü?
Hayır. Mesaj içeriği sayfada gösterilir; asla saklanmaz veya Kitegra'e gönderilmez.