Saltearse al contenido

XML to Data

El componente XML to Data actúa como un traductor inteligente dentro de tu sistema Nappai. Su propósito principal es tomar información en formato XML (una estructura de etiquetas muy común en intercambios de datos empresariales y APIs) y convertirla en un objeto de datos estructurado.

Básicamente, toma la “texto crudo” y lo organiza en una forma fácil de leer y usar para las siguientes etapas de tu flujo de automatización. Esto permite que otros componentes puedan acceder a la información específica (como nombres, fechas, identificadores, etc.) sin tener que procesar todo el texto nuevamente.

¿Cómo funciona?

Internamente, este componente utiliza un proceso llamado “parseo”. Imagina que tienes una receta escrita en un idioma extraño; el componente lee esa receta (el texto XML), entiende la jerarquía de las instrucciones (qué dato pertenece a qué grupo) y la reescribe en un formato organizado (como una lista o un diccionario).

Una característica clave de este componente es su Modo de Mapeo (Mapping Mode). Esto significa que está diseñado para ser flexible: puedes conectar datos desde otros nodos de tu flujo de trabajo (entrada de datos) o escribir el contenido XML directamente (entrada manual). El componente procesa esta entrada y produce una estructura de datos limpia que puedes vincular con otros elementos del sistema.

Entradas

Este componente cuenta con un modo especial llamado “Mapping Mode” (Modo de Mapeo). Cuando activas este modo, cada campo de entrada te ofrece tres formas diferentes de proporcionar datos, lo que hace que tus flujos de trabajo sean mucho más dinámicos:

  • Fixed (Fijo): Escribes el valor directamente en el campo.
  • Mapped (Mapeado): Conectas la salida de otro componente para usar su resultado como valor.
  • Javascript: Escribes código Javascript para calcular el valor dinámicamente.

Campos de Entrada

A continuación, se describen los campos disponibles para configurar este componente. Recuerda que los nombres se muestran en inglés para mantener la coherencia técnica:

  • XML Data: [REQUERIDO] [DataInput] Este campo se utiliza para ingresar un objeto de datos que contiene el texto XML que deseas parsear. Es ideal cuando el XML proviene de otra fuente (como una descarga de archivo o una respuesta de API previa) y ya está almacenado como un objeto en tu flujo.

    • Visible en: Todas las operaciones.
  • XML Text: [REQUERIDO] [MultilineInput] Este campo te permite escribir manualmente el contenido del código XML directamente en la caja de texto. Es útil para pruebas rápidas o cuando tienes un bloque pequeño de XML que quieres procesar de inmediato.

    • Visible en: Todas las operaciones.
  • Mode: [DropdownInput] Un menú desplegable que te permite elegir cómo deseas ingresar la información: conectando un objeto de datos previamente creado (Data Entry) o escribiendo el contenido manualmente (Manual Entry). Esto facilita la configuración dependiendo de tu flujo de trabajo.

    • Visible en: Todas las operaciones.

Salidas

Después de procesar la entrada, el componente produce una salida estructurada que puede ser utilizada por otros nodos.

  • Data: Este es el resultado principal del proceso. Es un objeto de datos (generalmente una estructura de tipo diccionario o árbol) que contiene toda la información extraída del XML.
    • Tipo de datos: Any (Objeto estructurado).
    • Uso: Puedes conectar esta salida a componentes que necesiten leer valores específicos, como “Enviar Correo”, “Guardar en Base de Datos” o “Calcular Valores”. Al mapear esta salida, podrás acceder a las etiquetas y atributos originales del XML de manera organizada.

Ejemplo de Respuesta JSON

Para entender mejor cómo se verá la información después de ser procesada por este componente, considera este ejemplo. Si tienes un XML simple, la salida Data podría representar una estructura similar a este objeto JSON (nota: la estructura exacta depende del XML original, pero esta es una representación común de datos parseados): json { “customer”: { “name”: “Juan Pérez”, “id”: “12345”, “address”: { “street”: “Av. Principal 123”, “city”: “Madrid” }, “orders”: [ { “order_id”: “ORD-001”, “item”: “Laptop”, “price”: 999.00 } ] } } En este ejemplo, si tu flujo anterior contenía ese XML, el componente ‘XML to Data’ te permite ahora acceder a valores como customer.name o orders[0].price en los siguientes pasos.

Conectividad

Este componente es un puente esencial en flujos de integración de datos.

  • Entradas: Suele conectarse a componentes que generan o almacenan datos en formato XML, como descargas de archivos (FTP, S3), respuestas de webservices antiguos, o sistemas legacy.
  • Salidas: Sus salidas Data están diseñadas para conectarse a cualquier componente que necesite leer información específica. Por ejemplo:
    • A componentes de Base de Datos para insertar registros.
    • A componentes de Lógica (como Condicionales) para tomar decisiones basadas en el contenido del XML.
    • A componentes de Notificaciones para enviar resúmenes extraídos del XML.

Ejemplo de Uso

Imagina que recibes un archivo de una factura en formato XML de un proveedor.

  1. Entrada: Usas un componente anterior para descargar el archivo y obtener su texto.
  2. Procesamiento: Conectas la salida de ese archivo al campo XML Data de este componente XML to Data.
  3. Salida: El componente devuelve el objeto Data.
  4. Acción: Conectas la salida Data a un componente “Enviar Correo”. En el cuerpo del correo, puedes mapear el valor Data.customer.name para personalizar el saludo, o Data.total_amount para mostrar el monto a pagar.

Componentes Relacionados

  • Data Parser / Text Splitter - Componentes útiles si necesitas manipular el texto XML antes de enviarlo a este nodo, o si necesitas extraer fragmentos específicos antes del parseo completo.
  • Send Email / Database Connector - Destinos típicos para la salida de este componente, donde los datos estructurados se utilizan para generar contenido personalizado o guardar información.

Notas Importantes

  • Soporte de Estructuras Complejas: El componente maneja jerarquías anidadas (etiquetas dentro de etiquetas), por lo que es ideal para XMLs complejos de facturas, reportes o APIs.
  • Manejo de Errores: Si el texto XML no es válido (está mal formado), el componente podría detenerse o arrojar un error en el flujo. Asegúrate de que el XML de entrada esté bien estructurado.
  • Formato de Salida: La salida es un objeto estructurado, no texto plano. Esto es crucial para poder mapear valores específicos en pasos posteriores.

Consejos y Mejores Prácticas

  • Valida tu XML: Antes de conectar el componente, asegúrate de que el XML que estás enviando sea válido. Un XML mal formado es la causa más común de errores en este tipo de procesos.
  • Usa el Modo Mapeo: Aprovecha el “Mapping Mode” para conectar dinámicamente diferentes fuentes de XML sin tener que reconfigurar manualmente el flujo cada vez.
  • Nombres Claros en XML: Si puedes controlar el XML de origen, utiliza nombres de etiquetas claros (ej: <price> en lugar de <p2>). Esto hará que los datos extraídos sean más fáciles de entender y usar después.

Consideraciones de Seguridad

  • Fuentes de Datos: Solo procesa XML de fuentes confiables. El análisis de XML malicioso puede potencialmente ser explotado en ataques de inyección o desbordamiento. Al estar dentro del entorno seguro de Nappai, los riesgos están mitigados, pero es buena práctica validar la procedencia de los datos.
  • Sensibilidad de Datos: El componente extraerá todo el texto presente en el XML. Ten cuidado al mapear las salidas si el XML contiene información sensible, asegurándote de que solo se envíe o guarde en los destinos adecuados.