Módulo de este artículo: Caja de herramientas
Herramientas de payload para SAP CPI: compara, convierte y genera datos de prueba en el navegador
Compara dos payloads, convierte XML, JSON, YAML y CSV con las reglas de los conversores de SAP, genera payloads de prueba con errores e inserta fragmentos de Groovy, sin conexión y junto al diseñador de iFlows.
La mitad del trabajo en un iFlow de SAP Cloud Integration (SAP CPI) gira en torno al payload: dos mensajes que deberían ser iguales y no lo son, un cuerpo JSON que el receptor quiere en XML, un conjunto de mensajes de prueba para el manejo de errores, una línea de Groovy que escribes cada semana y nunca recuerdas. Estas tareas suelen terminar en un editor de texto, un conversor en línea y un script propio.
La Toolbox de Kitegra las reúne en el navegador, junto al diseñador de iFlows: comparación de payloads, un conversor de formatos, un generador de payloads de prueba, fragmentos de Groovy con una hoja de referencia y un HTTP Runner. Salvo las solicitudes que envías con el HTTP Runner, funcionan sin conexión. Lo que pegas se queda en la página y nunca se guarda ni se envía.
Dónde encontrar la Toolbox
Abre la ventana emergente de la extensión y elige Herramientas. La lista de la Toolbox abre cada herramienta en su propia pestaña: Comparar payloads, Conversor de formatos, Generador de payloads de prueba, Fragmentos y hoja de referencia, HTTP Runner e iFlow Docs. En un iFlow, el menú del cuadro de Kitegra en la barra de herramientas del diagrama también abre Fragmentos y Notas como paneles en la página.
Cada control tiene al lado una pequeña (i) que explica lo que hace. La Toolbox no cuenta iFlows para tu plan.
Comparar payloads
Pega dos payloads, cárgalos desde archivos o suéltalos en la página, y las diferencias se marcan línea por línea. Diferencia anterior y Diferencia siguiente pasan de una diferencia a otra, con un recuento de cuántas hay.
- Ignorar espacios en blanco: las líneas que solo difieren en espacios, tabulaciones o sangría cuentan como iguales.
- Normalizar XML: ordena los atributos, ignora los prefijos de espacio de nombres y aplica sangría a ambos lados, para que solo queden los cambios reales.
- Normalizar JSON: ordena las claves y aplica sangría.
- Solo diferencias: oculta las líneas iguales y muestra en su lugar cuántas se ocultaron.
- Intercambiar A y B: lo que aparecía como agregado aparece como eliminado.
Un payload que no es XML bien formado ni JSON válido se compara igualmente, como texto. En el Message Monitor, el visor de payload de un paso trazado tiene Comparar con el paso siguiente, que abre esta página con el cuerpo antes y después de ese paso. Consulta cómo trazar un mensaje paso a paso.
Conversor de formatos
Pega XML, JSON, YAML, CSV o cualquier texto, o carga un archivo. El formato se detecta a partir del contenido y solo se ofrecen las conversiones que le corresponden:
- XML a JSON y JSON a XML, con las reglas de los propios conversores de SAP: los miembros
@nameson atributos,$es el texto de un elemento y un array repite su elemento. Las opciones son las que configuras en el iFlow: Añadir elemento raíz XML, Suprimir elemento raíz JSON y los elementos que siempre se escriben como arrays. - CSV a JSON o XML y viceversa, con el separador detectado o elegido, una fila de encabezado y el nombre del elemento de fila.
- YAML a JSON y JSON a YAML.
- XML a un XSD inferido, y un XSD a un XML de ejemplo.
- Formatear y minificar XML y JSON.
- Codificar y decodificar Base64 y URL; escapar y desescapar cadenas de XML, JSON y Groovy.
Usar como entrada vuelve a poner el resultado en el cuadro de entrada, para que puedas convertirlo otra vez. Junto a Convertir hay tres pestañas más:
- Validar comprueba que la entrada esté bien formada y lista cada problema con su línea y columna. Si le das un XSD, también se comprueban los elementos del XML, su orden y cantidad, los atributos y los tipos simples. Es una comprobación ligera: los espacios de nombres, imports, includes, grupos de sustitución y claves no se comprueban.
- Buscar y reemplazar, con expresiones regulares de JavaScript y sus grupos.
- Lote convierte varios archivos de la misma forma y descarga los resultados en un solo ZIP. Un archivo que falla se deja fuera y aparece en la lista.
Generador de payloads de prueba
El manejo de errores es la parte de un iFlow que menos se prueba, porque nadie tiene los mensajes defectuosos. El generador los crea a partir de una muestra real.
- Pega o sube un mensaje real: XML, JSON o CSV con fila de encabezado.
- Revisa la tabla de campos. El tipo de cada campo se deduce de su valor: texto, entero, decimal, booleano, fecha, fecha y hora, e-mail, moneda, país, UUID o null.
- Elige una regla para cada campo: Mantener el valor de la muestra, Aleatorio del mismo tipo, Secuencia o Elegir de una lista de valores.
- Indica cuántos payloads crear (hasta 1000) y la proporción que lleva un error.
- Elige los tipos de error y haz clic en Generar.
Los errores son los que rechazan los receptores: un campo obligatorio que falta, un campo vacío, un tipo incorrecto, una fecha, un e-mail, una moneda o un país no válidos, una cantidad negativa, un espacio de nombres incorrecto, XML, JSON o CSV dañados, un ID duplicado, un campo de más y un valor null. Cada payload defectuoso recibe un solo error.
La misma muestra, las mismas reglas y la misma semilla dan siempre los mismos payloads, así que una prueba puede repetirse con los mismos datos. Descargar ZIP entrega un archivo por payload más un manifest.json que indica el error de cada archivo y el campo que cambió. Descargar en un solo archivo escribe JSON Lines, o XML y CSV separados por una línea en blanco. Guardar como conjunto de datos para el Runner pasa el conjunto al HTTP Runner, que puede enviar cada payload a tu iFlow y mostrar qué respuestas llegaron como se esperaba.
Fragmentos de Groovy y la hoja de referencia
La pestaña Fragmentos contiene 32 patrones de Groovy para scripts de Cloud Integration. Cada uno está escrito para ir dentro de processData(Message message), con los nombres de clase completos, así que no hace falta ningún import. Cubren leer y establecer el cuerpo, los headers y las propiedades del exchange, el streaming de un cuerpo grande, XmlSlurper, XmlParser y MarkupBuilder, el análisis seguro de XML contra XXE, JsonSlurper y JsonBuilder, valores que se pueden buscar en el monitoreo, adjuntos en el log del mensaje, fallar con un error claro, el error HTTP en un exception subprocess, credenciales del Secure Store y consultas a Value Mapping y Partner Directory.
Búscalos por nombre o etiqueta. Con un script abierto en modo de edición en el diseñador, Insertar escribe el fragmento en el cursor; si no, cópialo. Añadir los suyos guarda hasta 20 fragmentos tuyos, sincronizados con tu cuenta de Kitegra cuando has iniciado sesión. No pongas contraseñas ni claves en ellos.
La pestaña Hoja de referencia reúne lo que consultas cada semana: los operadores de Simple, los patrones de fecha de Java con ejemplos, las funciones de XPath 1.0 ejecutadas sobre un XML de ejemplo y enlaces a la documentación de SAP y de Apache Camel. Haz clic en cualquier ejemplo para copiarlo. Las expresiones en sí se explican en Expresiones Camel Simple en SAP CPI.
Para leer los scripts que ya tiene un iFlow, usa Explicar scripts en iFlow Docs. Para cada script indica su propósito, lo que lee, lo que establece o cambia, su lógica principal, las API de SAP que usa y sus riesgos.
HTTP Runner
El HTTP Runner llama a los endpoints HTTPS de tu iFlow con OAuth a partir de una service key de Process Integration Runtime, guarda las solicitudes en colecciones y comprueba las respuestas. En Información del iFlow, cada endpoint se copia como cURL o se abre en el Runner. El recorrido completo está en probar un iFlow HTTPS con una service key.
Qué guarda y qué incluye tu plan
La comparación, el conversor, el generador y la hoja de referencia se ejecutan en la página y no guardan nada. Tus propios fragmentos y las colecciones del HTTP Runner, sin valores de autenticación ni variables secretas, se sincronizan con tu cuenta de Kitegra cuando has iniciado sesión.
Las herramientas sin conexión están en todos los planes. El HTTP Runner tiene un uso limitado en Free y Starter, y completo en Pro y en los planes de equipo. Mientras Kitegra se lanza, todas las herramientas están abiertas para cualquiera que haya iniciado sesión, también en el plan Free. Compara los planes.
Pruébalo en tu próximo iFlow
Lee lo que Kitegra agrega alrededor del diseñador de SAP Integration Suite, o mira todo lo que hace la Toolbox.
Preguntas frecuentes
¿Se envían mis payloads a algún lugar?
No. La comparación, el conversor, el generador y la hoja de referencia se ejecutan en la página del navegador. Lo que pegas o cargas no se guarda ni se envía.
¿El conversor da el mismo resultado que los conversores de SAP?
Sigue las mismas reglas y opciones que los conversores JSON to XML y XML to JSON de SAP: atributos, texto de elementos, arrays, el elemento raíz añadido y la raíz JSON suprimida. Ejecuta el iFlow cuando el resultado tenga que ser exacto.
¿Puedo repetir un conjunto de prueba generado?
Sí. La misma muestra, las mismas reglas y la misma semilla dan siempre los mismos payloads. Cambiar los errores deja los valores como estaban.
¿Cómo inserto un fragmento en un script de Groovy?
Abre el script en modo de edición en el diseñador, coloca el cursor donde va y haz clic en Insertar en el fragmento. Después guarda el iFlow tú mismo.
¿La Toolbox cuenta iFlows?
No. Solo el Helper, Message Monitor, iFlow Inspector e iFlow Docs cuentan iFlows.