Saltar al contenido

Trabajar con datos jerárquicos en Jitterbit Integration Studio

Introducción

Las estructuras de datos jerárquicas contienen una o más relaciones de padre-hijo o anidadas entre campos y registros. Ejemplos comunes incluyen clientes con múltiples direcciones, pedidos con artículos de línea o empresas con múltiples ubicaciones.

En Integration Studio, las estructuras jerárquicas también se llaman datos relacionales, multilevel, complejos o estructuras de árbol.

Para obtener información sobre la notación de nodos y campos, consulte Nodos y campos en Conceptos clave.

Identificar estructuras jerárquicas

Los datos jerárquicos aparecen como una estructura de árbol en las transformaciones:

<customer>
    <id>10123</id>
    <name>ABC Co.</name>
    <addresses>
        <address>
            <street>1 Main St.</street>
            <city>Anytown</city>
            <state>NY</state>
            <zip>12345</zip>
        </address>
        <address>
            <street>1 Time Square</street>
            <city>New York City</city>
            <state>NY</state>
            <zip>54321</zip>
        </address>
    </addresses>
</customer>

Mapear datos jerárquicos

Cuando se mapean estructuras jerárquicas, se debe mapear dentro del mismo nivel. Por ejemplo:

  • Los campos padre se mapean a campos padre.
  • Los campos hijo se mapean a los campos hijo correspondientes.
  • Los nodos de bucle se generan automáticamente para elementos repetidos.

Si el mapeo automático no funciona para su estructura, consulte Controlar bucles de datos.

Manejar desajustes de estructura

Cuando las estructuras de origen y destino difieren, puede manejarlas utilizando uno de estos métodos:

  1. Mapear múltiples instancias a una sola instancia: Cuando mapea arreglos a objetos únicos, verá este diálogo:

    Quote

    No se puede mapear una fuente de múltiples instancias a un destino de instancia única. ¿Desea cambiar el mapeo para usar la primera instancia de cada fuente?

    Hacer clic en mapea solo el primer registro agregando #1 a la ruta.

  2. Aplanar jerárquico a estructuras planas: Para crear un registro de salida por cada elemento hijo, siga estos pasos:

    1. Mapee campos desde el nodo repetido más profundo.
    2. Los datos padre se repiten automáticamente para cada hijo.
    3. La línea del iterador se mueve al nivel hijo.

Uso de la normalización de datos

Si se mapean datos de una estructura plana a una estructura jerárquica, es posible que los datos necesiten ser normalizados antes de la transformación.

Por defecto, Harmony utiliza un algoritmo de normalización para construir el árbol objetivo. Este proceso convierte la estructura plana de la fuente en una estructura jerárquica de la fuente que luego puede ser mapeada a la estructura jerárquica del objetivo.

En la estructura objetivo, el elemento raíz y todos los elementos de múltiples instancias bajo la raíz se utilizan para crear la estructura de los elementos secundarios de la fuente. Los atributos (o campos) de estos elementos secundarios de la fuente son elementos de datos planos que luego se utilizan en los mapeos del elemento objetivo correspondiente.

Con la estructura de la fuente correctamente definida, el proceso de normalización se simplifica a combinar nodos con los mismos padres.

Tienes tres opciones para la normalización:

  • Normalización Completa: Todos los elementos con el mismo padre y todos los campos se reducen a un solo elemento. Esta es la configuración predeterminada.
  • Normalización Parcial: Esto es lo mismo que la normalización completa, excepto que los hijos más bajos no se normalizan.
  • Sin Normalización: Cada registro plano crea una rama de elementos. No se realiza reducción de elementos al crear la estructura jerárquica de la fuente.

La estructura jerárquica puede contener un nodo de instancia única. En ese caso, solo se conserva el primer elemento para esta raíz, y se ignoran los registros planos que entran en conflicto con este nodo de datos raíz.

Para deshabilitar la normalización, establece la variable de Jitterbit jitterbit.transformation.disable_normalization en true. Para más información, consulta Variables de transformación de Jitterbit.

Manejar esquemas XML complejos

Cuando utilizas un esquema que contiene tipos derivados o grupos de sustitución, necesitas proporcionar alguna entrada antes de poder proceder con el mapeo de transformación.

Especificar el esquema

Los tipos derivados o grupos de sustitución son comunes en esquemas XSD y WSDL basados en XML. Puedes cargar estos tipos de esquemas en una actividad o en una transformación, o pueden ser recuperados directamente del endpoint por algunos conectores. Por ejemplo, los esquemas de respuesta devueltos por una búsqueda guardada en una actividad de búsqueda de NetSuite a menudo contienen tipos derivados.

Para más información, consulta Elegir fuentes de esquema.

Seleccionar tipos derivados o grupo de sustitución

Después de especificar el esquema, selecciona los tipos derivados o el grupo de sustitución dentro de la transformación. Puede haber nodos para los cuales puedes seleccionar tipos derivados tanto en el lado de origen como en el lado de destino de la transformación.

Un enlace a Seleccionar tipo(s) derivado(s) o Grupo de sustitución se muestra junto al nombre del nodo según corresponda:

derived types substitution group annotated pp

La interfaz de usuario es la misma tanto para seleccionar tipos derivados como para seleccionar un grupo de sustitución.

Haz clic en el enlace Seleccionar tipo(s) derivado(s) o Grupo de sustitución para abrir un diálogo donde puedes seleccionar entre los nodos disponibles:

add remove derived type nodes

Para filtrar la lista de nodos, ingresa cualquier parte del nombre del nodo en el cuadro de búsqueda. La búsqueda no distingue entre mayúsculas y minúsculas.

Selecciona los nodos que deseas utilizando las casillas de verificación junto a los nombres de los nodos. Los enlaces Seleccionar todo y Deseleccionar todo se pueden usar para seleccionar o desmarcar todos los nodos a la vez. Luego haz clic en Aceptar para usar los nodos de tipo derivado dentro del esquema.

Nota

Cuando seleccionas un gran número de nodos de tipo derivado a la vez (30 o más), el sistema puede responder lentamente al actualizar la transformación.

Los nodos seleccionados se muestran dentro del esquema. Puedes expandir o colapsar estos nodos para mostrar nodos e campos secundarios adicionales dentro de ellos:

tipos derivados de origen

Después de seleccionar nodos, puedes cambiar tus selecciones haciendo clic en el enlace Seleccionar tipo(s) derivado(s) o Grupo de sustitución nuevamente para regresar a la pantalla de selección y agregar o eliminar nodos según sea necesario.

Luego puedes continuar con el mapeo de transformación como de costumbre, mapeando los campos de origen dentro de esos nodos seleccionados a campos de destino, o mapeando a campos de destino dentro de nodos seleccionados.