Ir al contenido
Kitegra
← Volver al blog

Módulo de este artículo: Message Monitor

Nivel de log TRACE en SAP CPI: por qué se desactiva y cómo mantenerlo activo con seguridad

Por qué el nivel de log TRACE de SAP CPI se desactiva tras unos 10 minutos, qué guarda y durante cuánto tiempo, los riesgos en producción y cómo mantenerlo solo mientras trabajas.

Nivel de log TRACE en SAP CPI: por qué se desactiva y cómo mantenerlo activo con seguridad

Pones el nivel de log de un iFlow en Trace, pruebas otra cosa durante un cuarto de hora, envías el mensaje que importa y el trace está vacío. SAP Cloud Integration (SAP CPI) ha bajado el nivel sin avisar. Es intencionado y, una vez que sabes por qué, las reglas para usar TRACE salen solas.

Este artículo explica qué guarda cada nivel de log, por qué TRACE caduca, cómo usarlo con seguridad y cómo mantenerlo activo exactamente el tiempo que trabajas.

Los niveles de log y lo que añade TRACE

Nivel de logQué se guarda de cada mensaje
InfoEl estado general, los tiempos y el error, si lo hay
DebugUna entrada por cada paso que ejecutó el mensaje
TraceLo mismo que Debug, más el body, los headers y las exchange properties antes de cada paso

El nivel se define en el iFlow desplegado, así que se aplica a todos los mensajes que ese iFlow procesa mientras está activo.

Por qué TRACE se desactiva solo

TRACE escribe el payload, los headers y las propiedades de cada paso en la base de datos del tenant. En un iFlow con mucho tráfico son muchos datos, y pueden incluir contenido personal o confidencial. Por eso SAP lo limita en el tiempo: el nivel TRACE es válido durante unos 10 minutos, tras los cuales el iFlow vuelve a un nivel inferior, y el contenido del trace se guarda durante una hora aproximadamente.

Un tenant también puede configurarse para no permitir TRACE en absoluto. En ese caso activarlo falla, lo intente quien lo intente.

Activar TRACE a mano

  1. En el monitor, abre Manage Integration Content y selecciona el iFlow desplegado.
  2. En su configuración de log, pon el nivel de log en Trace.
  3. Envía tus mensajes de prueba en los 10 minutos siguientes y lee sus traces dentro de la hora.
  4. En una sesión más larga, vuelve a poner Trace cada 10 minutos.

Usar TRACE con seguridad

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
}
  • Prefiere datos de prueba. Un trace de un mensaje de producción guarda los datos de ese cliente en el tenant durante una hora.
  • En producción, traza durante el menor tiempo que responda a la pregunta y sigue las reglas de aprobación de tu empresa.
  • No dejes Debug ni Trace como nivel de log configurado de un iFlow: lo paga cada mensaje.
  • No escribas contraseñas ni tokens en headers o propiedades, donde un trace los mostraría.
  • Cuando necesites un payload en el log con regularidad, adjúntalo al log de procesamiento del mensaje desde un script, y solo mientras un interruptor esté activo:

Mantén TRACE activo solo mientras trabajas

En Kitegra, el panel «Mensajes» del iFlow abierto tiene un interruptor que dice «Trace: desactivado». Un clic pone el nivel de log en TRACE. Mientras el interruptor está activo y hay una pestaña del diseñador de ese iFlow abierta, la extensión vuelve a poner TRACE cada 9 minutos, antes de que SAP lo quite, y se detiene 20 minutos después de tu última actividad en el iFlow. Al desactivarlo se restaura el nivel que tenía el iFlow. El estado se conserva al recargar la página, y Alt+Shift+R lo activa o desactiva desde el teclado.

Se niega con un mensaje claro cuando el iFlow no está desplegado en el runtime elegido, cuando el tenant no permite TRACE o cuando «Permitir acciones que cambian el tenant» está desactivado en las opciones.

Para leer lo que registró el trace, consulta cómo trazar un mensaje paso a paso en el diagrama.

Cómo ayuda Kitegra

Trace es una de las cuatro acciones de Kitegra que cambian tu tenant, y solo se ejecuta cuando haces clic en ella. Antes de pasar a producción, la comprobación de diseño «Nivel de registro detallado» del iFlow Inspector señala un iFlow cuyo nivel de log configurado trazaría o depuraría cada mensaje; la lista de revisión de iFlows la cubre junto con las demás comprobaciones.

El Helper, Message Monitor, iFlow Inspector e iFlow Docs cuentan cada uno los iFlows en los que los usas: 5 por módulo sin una cuenta de Kitegra, 50 con el plan Free, 100 con Starter y 300 con Pro; Business no tiene límite. La Toolbox y los extras del espacio de trabajo son gratuitos. Compara los planes.

Pruébalo en tu próximo iFlow

Descubre lo que Kitegra añade alrededor del diseñador de SAP Integration Suite, o míralo junto a las demás extensiones de Chrome de Kitegra.

Preguntas frecuentes

¿Por qué TRACE se desactiva solo en SAP CPI?

TRACE guarda el payload de cada paso en el tenant. Para limitar los datos, SAP mantiene el nivel TRACE unos 10 minutos y el contenido del trace una hora aproximadamente.

¿Cuánto tiempo se guardan los datos del trace?

Una hora aproximadamente. Después queda el log del mensaje, pero su body, sus headers y sus propiedades trazados desaparecen.

¿Es seguro usar TRACE en producción?

Guarda payloads reales en el tenant, así que úsalo durante el menor tiempo que responda a tu pregunta, con datos de prueba siempre que puedas y según las normas de tu empresa.

¿Qué diferencia hay entre Debug y Trace?

Debug registra una entrada por cada paso. Trace añade el body, los headers y las exchange properties antes de cada paso.

¿Por qué falla la activación de TRACE en mi tenant?

Puede que el tenant no permita TRACE, que el iFlow no esté desplegado en ese runtime o que tu usuario no tenga el rol necesario. En la extensión, además, las acciones sobre el tenant pueden estar desactivadas en las opciones.

¿La extensión mantiene TRACE activo cuando dejo de trabajar?

No. Renueva TRACE solo mientras el interruptor está activo y trabajas en el iFlow, y se detiene 20 minutos después de tu última actividad.

Trabaja en iFlows sin salir del diseñador

Agrega Kitegra a Chrome o Microsoft Edge. Empieza gratis, sin necesidad de cuenta.