Aller au contenu
Kitegra
← Retour au blog

Module de cet article: Message Monitor

Niveau de journalisation TRACE dans SAP CPI : pourquoi il se désactive et comment le garder en toute sécurité

Pourquoi le niveau TRACE de SAP CPI retombe après environ 10 minutes, ce qu'il stocke et combien de temps, les risques en production, et comment le garder actif seulement pendant votre travail.

Niveau de journalisation TRACE dans SAP CPI : pourquoi il se désactive et comment le garder en toute sécurité

Vous passez le niveau de journalisation d'un iFlow à Trace, vous testez autre chose pendant un quart d'heure, vous envoyez le message qui compte, et la trace est vide. SAP Cloud Integration (SAP CPI) a discrètement abaissé le niveau. C'est voulu, et une fois que vous savez pourquoi, les règles d'usage de TRACE en découlent.

Cet article explique ce que stocke chaque niveau de journalisation, pourquoi TRACE expire, comment l'utiliser en toute sécurité, et comment le garder actif exactement le temps de votre travail.

Les niveaux de journalisation et ce qu'ajoute TRACE

Niveau de journalisationCe qui est conservé pour chaque message
InfoLe statut global, les durées et l'erreur éventuelle
DebugUne entrée pour chaque étape exécutée par le message
TraceComme Debug, plus le body, les headers et les exchange properties avant chaque étape

Le niveau se définit sur l'iFlow déployé : il s'applique donc à tous les messages que cet iFlow traite tant qu'il est défini.

Pourquoi TRACE se désactive tout seul

TRACE écrit le payload, les headers et les propriétés de chaque étape dans la base de données du tenant. Sur un iFlow très sollicité, cela représente beaucoup de données, qui peuvent inclure des contenus personnels ou confidentiels. SAP le limite donc dans le temps : le niveau TRACE est valable environ 10 minutes, après quoi l'iFlow revient à un niveau inférieur, et le contenu de la trace lui-même est conservé environ une heure.

Un tenant peut aussi être configuré pour ne pas autoriser TRACE du tout. L'activation échoue alors, quelle que soit la personne qui essaie.

Activer TRACE à la main

  1. Dans le moniteur, ouvrez Manage Integration Content et sélectionnez l'iFlow déployé.
  2. Dans sa configuration de journalisation, passez le niveau de journalisation à Trace.
  3. Envoyez vos messages de test dans les 10 minutes qui suivent, et lisez leurs traces dans l'heure.
  4. Au cours d'une session plus longue, redéfinissez Trace toutes les 10 minutes.

Utiliser TRACE en toute sécurité

import com.sap.gateway.ip.core.customdev.util.Message

def Message processData(Message message) {
    // Set the exchange property logPayload to "true" (for example from an
    // externalized parameter) only while you investigate.
    if (message.getProperty("logPayload") == "true") {
        def log = messageLogFactory.getMessageLog(message)
        log?.addAttachmentAsString("Payload before mapping", message.getBody(String), "text/plain")
    }
    return message
}
  • Privilégiez les données de test. La trace d'un message de production stocke les données de ce client dans le tenant pendant une heure.
  • En production, tracez le moins longtemps possible pour répondre à la question, et suivez les règles d'approbation de votre entreprise.
  • Ne laissez pas Debug ou Trace comme niveau de journalisation configuré d'un iFlow : chaque message en paie le prix.
  • N'écrivez pas de mots de passe ni de jetons dans des headers ou des propriétés, où une trace les afficherait.
  • Si vous avez régulièrement besoin d'un payload dans le journal, joignez-le au journal de traitement du message depuis un script, et seulement tant qu'un interrupteur est activé :

Garder TRACE actif seulement pendant votre travail

Dans Kitegra, le panneau « Messages » de l'iFlow ouvert comporte un interrupteur qui indique « Trace : désactivé ». Un clic passe le niveau de journalisation à TRACE. Tant que l'interrupteur est activé et qu'un onglet du designer de cet iFlow est ouvert, l'extension redéfinit TRACE toutes les 9 minutes, avant que SAP ne le retire, et s'arrête 20 minutes après votre dernière activité dans l'iFlow. La désactivation rétablit le niveau que l'iFlow avait auparavant. L'état survit à un rechargement de la page, et Alt+Shift+R le bascule au clavier.

Elle refuse avec un message clair lorsque l'iFlow n'est pas déployé sur le runtime choisi, lorsque le tenant n'autorise pas TRACE, ou lorsque « Autoriser les actions qui modifient le tenant » est désactivé dans les options.

Pour lire ce que la trace a enregistré, voir tracer un message étape par étape sur le diagramme.

Comment Kitegra vous aide

Trace est l'une des quatre actions de Kitegra qui modifient votre tenant, et elle ne s'exécute que lorsque vous cliquez dessus. Avant la mise en production, le contrôle de conception « Niveau de journalisation détaillé » de l'iFlow Inspector signale un iFlow dont le niveau configuré tracerait ou déboguerait chaque message ; la checklist de revue d'iFlow le couvre avec les autres contrôles.

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 ; Business n'a pas de limite. La Toolbox et les extras de l'espace de travail sont gratuits. 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

Pourquoi TRACE se désactive-t-il tout seul dans SAP CPI ?

TRACE stocke le payload de chaque étape dans le tenant. Pour limiter les données, SAP garde le niveau TRACE environ 10 minutes et le contenu de la trace environ une heure.

Combien de temps les données de trace sont-elles conservées ?

Environ une heure. Ensuite, le journal du message reste, mais son body, ses headers et ses propriétés tracés disparaissent.

Est-il sûr d'utiliser TRACE en production ?

Il stocke de vrais payloads dans le tenant : utilisez-le le moins longtemps possible pour répondre à votre question, sur des données de test si possible, et selon les règles de votre entreprise.

Quelle est la différence entre Debug et Trace ?

Debug enregistre une entrée pour chaque étape. Trace y ajoute le body, les headers et les exchange properties avant chaque étape.

Pourquoi l'activation de TRACE échoue-t-elle sur mon tenant ?

Le tenant n'autorise peut-être pas TRACE, l'iFlow n'est peut-être pas déployé sur ce runtime, ou votre utilisateur n'a peut-être pas le rôle requis. Dans l'extension, les actions sur le tenant peuvent aussi être désactivées dans les options.

L'extension garde-t-elle TRACE actif quand j'arrête de travailler ?

Non. Elle ne renouvelle TRACE que tant que l'interrupteur est activé et que vous travaillez dans l'iFlow, et s'arrête 20 minutes après votre dernière activité.

Travaillez sur vos iFlows sans quitter le designer

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