Conceptos clave para transformaciones en Jitterbit Integration Studio
Esta página explica los conceptos fundamentales que se deben entender al diseñar transformaciones y solucionar problemas.
Esquemas
Un esquema define la estructura y los tipos de datos de tus datos de entrada o salida. Los esquemas especifican qué campos están disponibles, sus tipos de datos y cómo están organizados los campos:
Esquemas de origen
El esquema de origen describe la estructura de los datos que ingresan a tu transformación. Los esquemas de origen pueden provenir de estas fuentes:
-
Esquemas generados por actividades: Creado automáticamente por actividades de conector como consultas a bases de datos o llamadas a API.
-
Esquemas definidos por el usuario: Esquemas personalizados que creas o subes.
Los esquemas de origen son opcionales. No necesitas un esquema de origen si solo estás utilizando variables, valores personalizados o lógica programada en tus mapeos.
Para más información, consulta Elegir fuentes de esquema.
Esquemas de destino
El esquema de destino describe la estructura de los datos que salen de tu transformación. Al igual que los esquemas de origen, los esquemas de destino pueden ser generados por actividades o definidos por el usuario.
Los esquemas de destino son siempre requeridos. Cada transformación debe tener un esquema de destino que defina la estructura de salida.
Para obtener orientación detallada sobre cómo crear y configurar esquemas, consulta Crear una transformación y configurar esquemas.
Estructuras de datos
Las estructuras de datos definen cómo se organiza la información dentro de los esquemas.
Estructuras planas
Las estructuras planas contienen campos en un solo nivel sin anidamiento. Ejemplos de estos formatos incluyen:
- Archivos CSV con columnas
- Tablas de bases de datos individuales
- Archivos XML simples sin elementos anidados
Example
<customer>
<id>10123</id>
<fullname>ABC Co.</fullname>
<street>1 Main St.</street>
<city>Anytown</city>
<state>NY</state>
<zip>12345</zip>
</customer>
Estructuras jerárquicas
Las estructuras jerárquicas contienen relaciones anidadas entre campos y registros. Ejemplos de estos formatos incluyen:
- Archivos XML complejos con elementos anidados
- Objetos JSON con propiedades anidadas
- Uniones de bases de datos a través de múltiples tablas
Example
<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>
Para obtener más información sobre cómo trabajar con estructuras de datos, consulte Mapear datos.
Para escenarios de datos jerárquicos complejos, consulte Trabajar con datos jerárquicos.
Nodos y campos
Los esquemas se muestran como estructuras de árbol que contienen nodos y campos. Los nodos son contenedores que organizan campos en estructuras jerárquicas. Los campos contienen los valores de datos reales.
Cada nodo y campo muestra estos indicadores visuales:
- Clave de cardinalidad: Muestra las reglas de ocurrencia entre corchetes.
- Nombre: El identificador del elemento del esquema
- Tipo de dato: Solo para campos (cadena, entero, booleano, etc.)
-
Indicadores de atributo/valor: Algunas estructuras XML o JSON incluyen símbolos adicionales:
Símbolo Significado Ejemplo @
Atributo XML/JSON @imagen
para datos de atributo#
Valor XML/JSON #
para el contenido de texto del elemento
Nodos
Los nodos son contenedores que organizan campos en estructuras jerárquicas:
- Triángulos de divulgación: Expandir y colapsar nodos.
- Nombres en negrita: Indican nodos que contienen mapeos cuando están colapsados.
- Expansión predeterminada: 8 niveles de profundidad para esquemas con menos de 750 nodos, 5 niveles de profundidad para esquemas más grandes.
No se puede mapear datos directamente a nodos. En su lugar, se mapean datos a los campos que contienen los nodos.
Campos
Los campos contienen los valores de datos reales y tienen estas propiedades:
- Nombre: El identificador del campo.
- Tipo de dato: El tipo de dato, como cadena, entero, booleano, fecha y otros.
- Formato: Formato opcional para fechas o moneda.
-
Valores predeterminados: Cuando un esquema XSD o WSDL especifica un valor predeterminado para un elemento o atributo, el valor aparece junto al nombre del campo en la interfaz de transformación:
Notación de cardinalidad
Las claves de cardinalidad indican reglas de ocurrencia utilizando notación estilo UML:
Clave de cardinalidad | Definición |
---|---|
[1] | Exactamente un elemento (requerido) |
[1+] | Uno o más elementos (requerido, repetible) |
[0,1] | Cero o un elemento (opcional) |
[0+] | Cero o más elementos (opcional, repetible) |
Mapeos
Un mapeo conecta datos de origen a campos de destino y define cómo se deben transformar los datos.
Tipos de mapeos
-
Mapeos de campo directos: Conectan campos de origen directamente a campos de destino. Ver Mapear campos manualmente.
-
Mapeos de valores personalizados: Asignan valores o expresiones estáticas. Ver Usar valores personalizados.
-
Mapeos de variables: Hacen referencia a variables de proyecto o globales. Ver Mapear variables.
-
Mapeos de scripts: Utilizan funciones y lógica para transformar datos. Ver Mapeo con scripts.
-
Mapeos condicionales: Aplican lógica diferente según condiciones. Ver Lógica condicional.
Scripts de mapeo
Todos los mapeos se implementan como scripts en los campos de destino. Incluso los mapeos visuales como arrastrar y soltar crean scripts subyacentes. Puedes editar estos scripts directamente para transformaciones complejas.
Para el mapeo automático de estructuras similares, ver Mapear estructuras idénticas.
Nodos de bucle
Los nodos de bucle manejan datos repetitivos, como múltiples registros o arreglos. Cuando mapeas campos dentro de nodos de bucle, la transformación procesa cada iteración de los datos.
Generación automática de bucles
Los nodos de bucle se generan automáticamente cuando mapeas campos de datos de origen repetidos a estructuras de destino repetidas. Aparece una línea de iterador que muestra cómo la transformación recorrerá los datos.
Definición manual de bucles
Puedes definir manualmente los nodos de bucle cuando la generación automática no coincide con tus necesidades de procesamiento de datos. Esto es útil cuando tienes múltiples niveles de datos repetidos y necesitas controlar qué nivel impulsa la iteración.
Para obtener orientación completa sobre el trabajo con datos repetidos, consulta Controlar bucles de datos.
Variables
Las variables están diseñadas para pasar valores, configuraciones y pequeñas cantidades de datos entre diferentes componentes en tu integración. Las variables son útiles cuando necesitas compartir información como IDs de sesión, parámetros de configuración o valores calculados a través de scripts, transformaciones y operaciones. Estos tipos de variables están disponibles para su uso:
Tipo | Alcance | Mejor para |
---|---|---|
Local | Script único | Cálculos y valores temporales |
Global | Cadena de operación | Pasar datos entre operaciones |
Project | Proyecto entero | Configuración y credenciales |
Jitterbit | Definido por el sistema | Información en tiempo de ejecución |
Para ejemplos e información detallada sobre cada tipo de variable, consulta sus páginas de documentación individuales.
Para ejemplos prácticos de uso de variables en transformaciones, consulta Mapear variables.
Notación de ruta de referencia
Las rutas de referencia especifican la ubicación de los objetos de origen dentro de la estructura de datos. Las siguientes rutas se generan automáticamente cuando mapeas campos de origen a destinos.
-
Rutas de nodo: Enclavadas entre corchetes
[nodeN]
-
Rutas de campo: Sin corchetes, solo el nombre del campo
-
Indicadores de bucle: Punto (
.
) después de los nombres de los nodos de bucle -
Acceso a arreglos: Símbolo de hash (
#
) para elementos de arreglos
Para referencia, la sintaxis utilizada para la ruta del objeto usa estos símbolos:
Categoría | Símbolo | Significado |
---|---|---|
Rutas | [ ] | Los corchetes cuadrados se utilizan para encerrar una ruta de nodo. |
Una ruta sin corchetes cuadrados es un campo de valor o atributo. | ||
Separadores | . | Un punto que sigue a un nombre de nodo indica que es un nodo de bucle. |
$ | Un signo de dólar que sigue a un nombre de nodo se utiliza para indicar un elemento Una sola vez o [E] . Este nodo no puede ser un nodo de bucle. | |
Nodos de Bucle | #. | Un signo de hash-punto que sigue a un nombre de nodo indica que se devolverá un arreglo para los campos de valor del registro. Esta notación solo se puede usar en nombres de nodos de bucle. |
#<n>. | Un signo de hash seguido de un entero devuelve el elemento de índice basado en uno de un arreglo. | |
Estructuras CSV Complejas | _ | Un guion bajo que precede a Root se utiliza para hacer referencia a la raíz en un CSV complejo. Esto no está presente para otras estructuras de datos. Un guion bajo también puede ser simplemente un guion bajo ya presente en un nombre de nodo o campo. |
Como ejemplo, la siguiente tabla tiene rutas de muestra para una estructura de datos CSV compleja. Las rutas para otras estructuras siguen el mismo formato, excepto que _Root
no está presente en otras estructuras de datos.
Las rutas de nodos se muestran con un fondo azul, mientras que el resto son rutas de campo. Una fuente puede ser mapeada a un atributo o campo de valor de un destino. Aunque a los nodos de destino se les pueden aplicar condiciones, las fuentes no pueden mapearse a ellos. Las rutas de nodos y campos de fuente pueden ser utilizadas en las condiciones de nodos de destino y en los mapeos de campos de destino.
Estructura de Datos | Ruta Calificada | Significado |
---|---|---|
_Root (Una Sola Vez) | [_Root$] | El _Root en una estructura de datos CSV es siempre un nodo, y por lo tanto aparece dentro de corchetes [ ] . El signo de dólar al final indica un elemento de Una Sola Vez . |
Header (Una Sola Vez) [E] | [_Root$Header$] | Los sub-nodos utilizan la referencia de cualquier nodo precedente, seguido del nombre del nodo. El signo de dólar al final indica un elemento de Una Sola Vez o [E] . |
Value [V] | _Root$Header$Value | Un campo de valor no está encerrado dentro de corchetes cuadrados, pero aún utiliza la referencia de cualquier nodo precedente, seguido del nombre del valor. |
Detail (Uno o Más) | [_Root$Header$Detail.] | Los sub-nodos utilizan la referencia de cualquier nodo precedente, seguido del nombre del nodo. El punto final indica un nodo de bucle. |
Attribute [A] | _Root$Header$Detail.Attribute | Un campo de atributo no está encerrado dentro de corchetes cuadrados, pero aún utiliza la referencia de cualquier nodo precedente, seguido del nombre del atributo. |
Value [V] | _Root$Header$Detail#.Value | Un campo de valor no está encerrado dentro de corchetes cuadrados, pero aún utiliza la referencia de cualquier nodo precedente, seguido del nombre del valor. Este ejemplo específico muestra un signo de hash precediendo el punto del nodo de bucle, indicando que se devolverá un arreglo de los valores del registro "Detail". |
Value [V] | _Root$Header$Detail#1.Value | Un campo de valor no está encerrado dentro de corchetes cuadrados, pero aún utiliza la referencia de cualquier nodo precedente, seguido del nombre del valor. Este ejemplo específico muestra un signo de hash indexado precediendo el punto del nodo de bucle, indicando que se devolverá el primer elemento de un arreglo de los valores del registro "Detail". |
Flujo de datos
Los datos fluyen a través de transformaciones en esta secuencia:
-
Entrada: Una actividad de origen proporciona datos que coinciden con el esquema de origen.
-
Procesamiento: Una transformación aplica mapeos, funciones y lógica empresarial.
-
Salida: Los datos transformados que coinciden con el esquema de destino van a la actividad de destino.
Entender este flujo ayuda a diseñar mapeos que manejen los datos correctamente y a solucionar problemas cuando los datos no se transforman como se esperaba.
Para orientación sobre validación y solución de problemas, consulte Probar y validar transformaciones y Resolver conflictos y errores de mapeo de transformaciones.