Vai al contenuto
Kitegra
← Torna al blog

Modulo di questo articolo: Message Monitor

Trovare qualsiasi messaggio SAP CPI per Message ID o Correlation ID

Da dove vengono Message ID, Correlation ID e Application ID in SAP CPI, come cercarli nel monitor e con l'API, e come aprire un messaggio insieme a quelli correlati.

Trovare qualsiasi messaggio SAP CPI per Message ID o Correlation ID

Un partner segnala che un ordine non è andato a buon fine e ti manda un ID. È un Message ID, un Correlation ID o il suo numero d'ordine? E quale dei tuoi iFlow lo ha elaborato? In SAP Cloud Integration (SAP CPI) ognuno di questi ID significa qualcosa di diverso, e ognuno si trova in un modo diverso.

Questo articolo spiega i tre ID, come cercarli nel monitor di SAP e con la sua API, come rendere i tuoi messaggi più facili da trovare e come aprire qualsiasi messaggio, insieme ai messaggi correlati, in un solo passaggio.

Message ID, Correlation ID e Application ID

  • Message ID: l'ID di un message processing log (MPL). Dentro l'iFlow lo contiene l'header SAP_MessageProcessingLogID, e un sender HTTPS lo restituisce al chiamante in un header di risposta con lo stesso nome.
  • Correlation ID: condiviso dai log dei messaggi che vanno insieme, per esempio un messaggio e quelli che passa avanti tramite ProcessDirect o JMS. Lo contiene l'header SAP_MplCorrelationId.
  • Application ID: la tua chiave di business, come un numero d'ordine, impostata nell'header SAP_ApplicationID. Il monitor la mostra e permette di cercarla.

Quando qualcuno ti manda un ID, il Message ID trova un messaggio, il Correlation ID trova l'intera catena e l'Application ID trova il messaggio di cui l'altra persona parla nei propri termini.

Cercare nel monitor di SAP

  1. Apri Monitor Message Processing.
  2. Allarga l'intervallo di tempo fino a coprire il momento in cui il messaggio è stato eseguito: un messaggio fuori dall'intervallo selezionato non compare.
  3. Inserisci l'ID nel campo di ricerca, oppure scegli prima l'iFlow e uno stato per restringere l'elenco.
  4. Apri il messaggio per vederne il log, l'errore e, se è stato tracciato nell'ultima ora, il trace.

Cercare con l'API

L'API OData di Cloud Integration legge gli stessi log. È utile in script e strumenti di supporto, e non dipende dall'intervallo di tempo del 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>'

Le chiamate richiedono un utente con diritti di monitoraggio sul tenant.

Rendere i tuoi messaggi facili da trovare

Né il Message ID né il Correlation ID dicono qualcosa al business. Scrivi tu la chiave di business nel log: come Application ID e come custom header property, che il monitor mostra e permette di cercare:

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
}

Per i valori che devono viaggiare tra iFlow, l'articolo sugli header di ProcessDirect e JMS spiega cosa attraversa ogni collegamento.

Aprire qualsiasi messaggio dal designer

  1. Nel designer, fai clic sul pulsante «Strumenti Kitegra» e scegli Log dei messaggi. Il visualizzatore di log si apre in una nuova scheda; tieni aperta la scheda del designer, perché il visualizzatore legge SAP attraverso di essa.
  2. Incolla l'ID nella casella «Message ID o Correlation ID» e scegli Trova. Lì si aprono i messaggi di qualsiasi iFlow del tenant.
  3. Leggi il messaggio nelle sue schede: Riepilogo, Body e header, Adapter, Persistiti e Allegati.
  4. Apri la scheda Cronologia: elenca ogni messaggio che condivide il Correlation ID, con iFlow, stato, inizio e durata. Non richiede un trace.
  5. Per sfogliare invece, filtra per iFlow (o Tutti gli iFlow), per stato e per un intervallo Dal e Al.

Nel pannello Messaggi di un iFlow aperto, Copia ID copia l'ID di un messaggio, e «Apri nel monitor messaggi di SAP» apre la pagina di SAP corrispondente. Per tracciare un messaggio che hai trovato, vedi tracciare un messaggio step by step; per crearne uno apposta, testa un iFlow HTTPS con una service key.

Come aiuta Kitegra

Il visualizzatore di log fa parte del Message Monitor di Kitegra. Il contenuto dei messaggi viene mostrato nella pagina, mai salvato né inviato a Kitegra.

Helper, Message Monitor, iFlow Inspector e iFlow Docs contano ciascuno gli iFlow su cui li usi: 5 per modulo senza un account Kitegra, 50 con il piano Free, 100 con Starter e 300 con Pro; Startup Team dà 300 a ogni membro, Growth Team e Scale Team non hanno limiti. La Toolbox e gli extra dell'area di lavoro non contano iFlow. Durante il lancio di Kitegra, tutti gli strumenti sono aperti a chiunque abbia effettuato l'accesso, anche con il piano Free. Confronta i piani.

Provalo nel tuo prossimo iFlow

Scopri cosa aggiunge Kitegra attorno al designer di SAP Integration Suite, oppure guardalo accanto alle altre estensioni Chrome di Kitegra.

Domande frequenti

Qual è la differenza tra Message ID e Correlation ID in SAP CPI?

Il Message ID identifica un message processing log. Il Correlation ID è condiviso dai log dei messaggi che vanno insieme, per esempio attraverso ProcessDirect o JMS.

Dove trovo il Message ID di una chiamata HTTPS?

Negli header di risposta: un sender HTTPS restituisce SAP_MessageProcessingLogID al chiamante.

Perché il monitor non trova il mio Message ID?

Di solito l'intervallo di tempo è troppo stretto. Allargalo fino a coprire il momento in cui il messaggio è stato eseguito, oppure leggi il log tramite l'API.

Posso cercare i messaggi SAP CPI con il mio numero d'ordine?

Sì, se l'iFlow lo scrive nel log, per esempio come SAP_ApplicationID o come custom header property.

Il visualizzatore di log richiede un trace?

No. Trovare un messaggio, il suo riepilogo e la sua cronologia funziona senza. Body e header prima di ogni step richiedono un messaggio eseguito con TRACE nell'ultima ora.

Kitegra vede i messaggi che apro?

No. Il contenuto dei messaggi viene mostrato nella pagina e mai salvato né inviato a Kitegra.

Lavora sugli iFlow senza uscire dal designer

Aggiungi Kitegra a Chrome o Microsoft Edge. Inizia gratis, senza bisogno di un account.