Aller au contenu
Kitegra
← Retour au blog

Module de cet article: Message Monitor

Retrouver n'importe quel message SAP CPI par Message ID ou Correlation ID

D'où viennent le Message ID, le Correlation ID et l'Application ID de SAP CPI, comment les rechercher dans le moniteur et l'API, et comment ouvrir un message et ses messages liés.

Retrouver n'importe quel message SAP CPI par Message ID ou Correlation ID

Un partenaire vous signale qu'une commande a échoué et vous envoie un ID. Est-ce un Message ID, un Correlation ID ou son propre numéro de commande ? Et lequel de vos iFlows l'a traité ? Dans SAP Cloud Integration (SAP CPI), chacun de ces ID a un sens différent, et chacun se retrouve d'une manière différente.

Cet article explique les trois ID, comment les rechercher dans le moniteur de SAP et dans son API, comment rendre vos propres messages plus faciles à retrouver, et comment ouvrir n'importe quel message, avec ses messages liés, en une seule étape.

Message ID, Correlation ID et Application ID

  • Message ID : l'ID d'un journal de traitement des messages (MPL). Dans l'iFlow, le header SAP_MessageProcessingLogID le contient, et un émetteur HTTPS le renvoie à l'appelant dans un header de réponse du même nom.
  • Correlation ID : partagé par les journaux des messages qui vont ensemble, par exemple un message et ceux qu'il transmet via ProcessDirect ou JMS. Le header SAP_MplCorrelationId le contient.
  • Application ID : votre propre clé métier, comme un numéro de commande, définie dans le header SAP_ApplicationID. Le moniteur l'affiche et permet de la rechercher.

Quand quelqu'un vous envoie un ID, le Message ID retrouve un message, le Correlation ID retrouve toute la chaîne, et l'Application ID retrouve le message dont il parle, dans ses propres termes.

Rechercher dans le moniteur de SAP

  1. Ouvrez Monitor Message Processing.
  2. Élargissez la plage horaire pour couvrir le moment où le message s'est exécuté : un message hors de la plage sélectionnée n'apparaît pas.
  3. Saisissez l'ID dans le champ de recherche, ou choisissez d'abord l'iFlow et un statut pour restreindre la liste.
  4. Ouvrez le message pour voir son journal, son erreur et, s'il a été tracé au cours de la dernière heure, sa trace.

Rechercher avec l'API

L'API OData de Cloud Integration lit les mêmes journaux. Elle est utile dans les scripts et les outils de support, et ne dépend pas de la plage horaire du moniteur :

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>'

Les appels nécessitent un utilisateur disposant de droits de monitoring sur le tenant.

Rendre vos messages faciles à retrouver

Ni le Message ID ni le Correlation ID ne signifient quoi que ce soit pour le métier. Écrivez vous-même la clé métier dans le journal : comme Application ID, et comme custom header property, que le moniteur affiche et permet de rechercher :

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
}

Pour les valeurs qui doivent circuler entre iFlows, l'article sur les headers ProcessDirect et JMS explique ce qui traverse chaque liaison.

Ouvrir n'importe quel message depuis le designer

  1. Dans le designer, cliquez sur le bouton « Outils Kitegra » et choisissez « Journaux des messages ». La visionneuse de journaux s'ouvre dans un nouvel onglet ; gardez l'onglet du designer ouvert, car la visionneuse lit SAP à travers lui.
  2. Collez l'ID dans le champ « Message ID ou Correlation ID » et choisissez « Rechercher ». Les messages de n'importe quel iFlow du tenant s'y ouvrent.
  3. Lisez le message dans ses onglets : « Résumé », « Body et en-têtes », « Adaptateur », « Persistés » et « Pièces jointes ».
  4. Ouvrez l'onglet « Chronologie » : il liste tous les messages qui partagent le Correlation ID, avec leur iFlow, leur statut, leur début et leur durée. Aucune trace n'est nécessaire.
  5. Pour parcourir plutôt que rechercher, filtrez par iFlow (ou « Tous les iFlows »), par statut, et par une heure « Du » et « Au ».

Dans le panneau « Messages » d'un iFlow ouvert, « Copier l'ID » copie l'ID d'un message, et « Ouvrir dans le moniteur de messages SAP » ouvre la page de SAP pour ce message. Pour tracer un message que vous avez trouvé, voir tracer un message étape par étape ; pour en créer un exprès, testez un iFlow HTTPS avec une service key.

Comment Kitegra vous aide

La visionneuse de journaux fait partie du Message Monitor de Kitegra. Le contenu des messages s'affiche dans la page, sans jamais être stocké ni envoyé à Kitegra.

Le Helper, le Message Monitor, l'iFlow Inspector et iFlow Docs comptent chacun les iFlows sur lesquels vous les utilisez : 5 par module sans compte Kitegra, 50 avec le forfait Free, 100 avec Starter et 300 avec Pro ; Startup Team donne 300 à chaque membre, Growth Team et Scale Team sont sans limite. La Toolbox et les extras de l'espace de travail ne comptent aucun iFlow. Pendant le lancement d'Kitegra, tous les outils sont ouverts à toute personne connectée, y compris avec le forfait Free. Comparez les forfaits.

Essayez-le dans votre prochain iFlow

Découvrez ce que Kitegra ajoute autour du designer de SAP Integration Suite, ou voyez-le aux côtés des autres extensions Chrome de Kitegra.

Questions fréquentes

Quelle est la différence entre Message ID et Correlation ID dans SAP CPI ?

Le Message ID identifie un journal de traitement des messages. Le Correlation ID est partagé par les journaux des messages qui vont ensemble, par exemple via ProcessDirect ou JMS.

Où trouver le Message ID d'un appel HTTPS ?

Dans les headers de réponse : un émetteur HTTPS renvoie SAP_MessageProcessingLogID à l'appelant.

Pourquoi le moniteur ne trouve-t-il pas mon Message ID ?

Le plus souvent, la plage horaire est trop étroite. Élargissez-la pour couvrir le moment où le message s'est exécuté, ou lisez le journal via l'API.

Puis-je rechercher des messages SAP CPI par mon propre numéro de commande ?

Oui, si l'iFlow l'écrit dans le journal, par exemple comme SAP_ApplicationID ou comme custom header property.

La visionneuse de journaux a-t-elle besoin d'une trace ?

Non. Retrouver un message, son résumé et sa chronologie fonctionnent sans trace. Les bodies et headers avant chaque étape nécessitent un message exécuté avec TRACE au cours de la dernière heure.

Kitegra voit-il les messages que j'ouvre ?

Non. Le contenu des messages s'affiche dans la page et n'est jamais stocké ni envoyé à Kitegra.

Travaillez sur vos iFlows sans quitter le designer

Ajoutez Kitegra à Chrome ou Microsoft Edge. Commencez gratuitement, sans compte.