Modul in diesem Artikel: Message Monitor
Jede SAP CPI Nachricht per Message ID oder Correlation ID finden
Woher Message ID, Correlation ID und Application ID in SAP CPI stammen, wie Sie sie im Monitor und per API suchen und wie Sie eine Nachricht samt zugehöriger Nachrichten öffnen.

Ein Partner meldet, dass eine Bestellung fehlgeschlagen ist, und schickt Ihnen eine ID. Ist das eine Message ID, eine Correlation ID oder seine eigene Bestellnummer? Und welcher Ihrer iFlows hat sie verarbeitet? In SAP Cloud Integration (SAP CPI) bedeutet jede dieser IDs etwas anderes, und jede wird auf eigene Weise gefunden.
Dieser Artikel erklärt die drei IDs, wie Sie sie im Monitor von SAP und über seine API suchen, wie Sie Ihre eigenen Nachrichten leichter auffindbar machen und wie Sie jede Nachricht mitsamt ihren zugehörigen Nachrichten in einem Schritt öffnen.
Message ID, Correlation ID und Application ID
- Message ID: die ID eines Message Processing Logs (MPL). Im iFlow enthält sie der Header
SAP_MessageProcessingLogID, und ein HTTPS-Sender gibt sie dem Aufrufer in einem gleichnamigen Response-Header zurück. - Correlation ID: gemeinsam für die Protokolle zusammengehöriger Nachrichten, zum Beispiel einer Nachricht und derer, die sie über ProcessDirect oder JMS weitergibt. Der Header
SAP_MplCorrelationIdenthält sie. - Application ID: Ihr eigener fachlicher Schlüssel, etwa eine Bestellnummer, gesetzt im Header
SAP_ApplicationID. Der Monitor zeigt sie an und kann danach suchen.
Wenn Ihnen jemand eine ID schickt, findet die Message ID eine einzelne Nachricht, die Correlation ID die ganze Kette und die Application ID die Nachricht, von der Ihr Gegenüber in seinen eigenen Begriffen spricht.
Suchen im Monitor von SAP
- Öffnen Sie Monitor Message Processing.
- Erweitern Sie den Zeitraum so, dass er die Laufzeit der Nachricht abdeckt: Eine Nachricht außerhalb des gewählten Zeitraums erscheint nicht.
- Geben Sie die ID in das Suchfeld ein, oder wählen Sie zuerst den iFlow und einen Status, um die Liste einzugrenzen.
- Öffnen Sie die Nachricht für ihr Protokoll, ihren Fehler und, falls sie in der letzten Stunde getract wurde, ihren Trace.
Suchen mit der API
Die OData API von Cloud Integration liest dieselben Protokolle. Sie ist nützlich in Skripten und Support-Werkzeugen und hängt nicht vom Zeitraum des Monitors ab:
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>'Für die Aufrufe brauchen Sie einen Benutzer mit Monitoring-Rechten auf dem Tenant.
Machen Sie Ihre Nachrichten leicht auffindbar
Weder die Message ID noch die Correlation ID sagen dem Fachbereich etwas. Schreiben Sie den fachlichen Schlüssel selbst ins Protokoll: als Application ID und als Custom Header Property, die der Monitor anzeigt und durchsuchen kann:
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
}Für Werte, die zwischen iFlows reisen sollen, erklärt der Artikel über ProcessDirect- und JMS-Header, was über jede Verbindung ankommt.
Jede Nachricht aus dem Designer öffnen
- Klicken Sie im Designer auf „Kitegra-Werkzeuge“ und wählen Sie Nachrichtenprotokolle. Der Protokoll-Viewer öffnet sich in einem neuen Tab; lassen Sie den Designer-Tab offen, denn der Viewer liest SAP darüber.
- Fügen Sie die ID in das Feld „Message ID oder Correlation ID“ ein und wählen Sie Suchen. Dort öffnen sich Nachrichten jedes iFlows des Tenants.
- Lesen Sie die Nachricht in ihren Registerkarten: Übersicht, Body & Header, Adapter, Persistiert und Anhänge.
- Öffnen Sie die Registerkarte Zeitachse: Sie listet jede Nachricht mit derselben Correlation ID, mit iFlow, Status, Start und Dauer. Dafür ist kein Trace nötig.
- Um stattdessen zu stöbern, filtern Sie nach iFlow (oder Alle iFlows), nach Status und nach einer Zeit Von und Bis.
Im Panel Nachrichten eines geöffneten iFlows kopiert „ID kopieren“ die ID einer Nachricht, und „Im SAP-Nachrichtenmonitor öffnen“ öffnet die zugehörige Seite von SAP. Um eine gefundene Nachricht zu tracen, lesen Sie eine Nachricht Schritt für Schritt tracen; um gezielt eine zu erzeugen, testen Sie einen HTTPS-iFlow mit einem Service Key.
Wie der Kitegra hilft
Der Protokoll-Viewer gehört zum Message Monitor im Kitegra. Nachrichteninhalte werden auf der Seite angezeigt, aber nie gespeichert oder an Kitegra gesendet.
Helper, Message Monitor, iFlow Inspector und iFlow Docs zählen jeweils die iFlows, für die Sie sie nutzen: 5 je Modul ohne Kitegra-Konto, 50 im Tarif Free, 100 mit Starter und 300 mit Pro; Startup Team gibt jedem Mitglied 300, Growth Team und Scale Team haben kein Limit. Die Toolbox und die Extras für den Arbeitsbereich zählen keine iFlows. Während des Starts von Kitegra sind alle Werkzeuge für alle Angemeldeten offen, auch im Tarif Free. Tarife vergleichen.
Probieren Sie ihn im nächsten iFlow aus
Lesen Sie, was der Kitegra rund um den Designer der SAP Integration Suite ergänzt, oder sehen Sie ihn neben den anderen Chrome-Erweiterungen von Kitegra.
Häufige Fragen
Was ist der Unterschied zwischen Message ID und Correlation ID in SAP CPI?
Die Message ID kennzeichnet ein einzelnes Message Processing Log. Die Correlation ID teilen sich die Protokolle zusammengehöriger Nachrichten, zum Beispiel über ProcessDirect oder JMS hinweg.
Wo finde ich die Message ID eines HTTPS-Aufrufs?
In den Response-Headern: Ein HTTPS-Sender gibt SAP_MessageProcessingLogID an den Aufrufer zurück.
Warum findet der Monitor meine Message ID nicht?
Meist ist der Zeitraum zu eng. Erweitern Sie ihn auf die Laufzeit der Nachricht, oder lesen Sie das Protokoll über die API.
Kann ich SAP CPI Nachrichten nach meiner eigenen Bestellnummer durchsuchen?
Ja, wenn der iFlow sie ins Protokoll schreibt, zum Beispiel als SAP_ApplicationID oder als Custom Header Property.
Braucht der Protokoll-Viewer einen Trace?
Nein. Das Finden einer Nachricht, ihre Übersicht und ihre Zeitachse funktionieren ohne. Bodies und Header vor jedem Schritt erfordern eine Nachricht, die in der letzten Stunde mit TRACE lief.
Sieht Kitegra die Nachrichten, die ich öffne?
Nein. Nachrichteninhalte werden auf der Seite angezeigt und nie gespeichert oder an Kitegra gesendet.