Saltar al contenido

Procesamiento de Esquemas

Introducción

Cuando se utiliza un esquema definido por el usuario, en determinadas circunstancias, los datos pueden convertirse durante el procesamiento. Esta página describe cuándo y cómo se convierten los datos.

Nombres de Campos y Nodos

Los nombres de los campos y nodos se convierten en espacios de nombres válidos siguiendo el estándar XML. Para obtener una referencia, consulte NCNameChar para conocer los caracteres permitidos según lo definido por el W3C.

Nombres con Espacios

Los espacios incluidos como parte de un nombre de campo o nodo se reemplazan con un guión bajo (_).

Caracteres Especiales en Esquemas

Los caracteres especiales en los esquemas definidos por el usuario se procesan de forma diferente según el tipo de esquema. Estas conversiones se limitan únicamente a las estructuras del esquema y no afectan los datos reales.

El manejo de caracteres especiales depende del tipo de esquema, como se describe en la siguiente tabla. Los caracteres especiales incluyen, entre otros, estos caracteres no alfanuméricos:

. _ - $ # @ ?

La compatibilidad con caracteres especiales de Cloud Studio está limitada por la compatibilidad con caracteres especiales del propio tipo de esquema. Por ejemplo, incluyendo un $, #, @, o ? en un campo de esquema XML o nombre de nodo no se admite porque XML no admite esos caracteres especiales.

Al duplicar un esquema proporcionado por una base de datos, cualquier carácter especial en un campo de esquema o nombre de nodo se reemplaza por guiones bajos según sea necesario para crear un esquema XML válido.

Manejo de caracteres especiales en esquemas Personalizado Plano o Jerárquico Esquema Esquema CSV cargado Esquema JSON cargado Esquema XML cargado
Los caracteres especiales en el lado de origen o de destino de una transformación se conservan tal cual controlar comprobar
Los caracteres especiales en el lado de origen o de destino de una transformación se reemplazan por un signo de interrogación (?) comprobar
Los caracteres especiales en el lado de origen o de destino de una transformación se reemplazan por un guión bajo (_) comprobar
Los caracteres especiales en una secuencia de comandos en un campo de destino en una transformación se reemplazan por un signo de interrogación (?) comprobar comprobar comprobar

Archivos CSV con Encabezados

Si se proporciona un archivo CSV con una fila de encabezado como archivo de esquema de muestra, se aplican estas reglas para generar nombres de columnas:

  • Los caracteres especiales se reemplazan por un signo de interrogación (?).
  • Los espacios se reemplazan con un guión bajo (_).
  • Si el nombre de una columna está en blanco, se reemplaza con f1, f2, f3, y así sucesivamente.
  • Si el nombre de una columna comienza con un número, se le antepone un guión bajo (_).
  • Si se repite el nombre de una columna, se le añade 2, 3, 4, etcétera.

Tipos de Datos

Estas secciones describen el soporte de Jitterbit para ciertos tipos de datos. Para conocer todos los tipos de datos admitidos en Jitterbit Secuencias de Comandos, consulte Tipos de datos en Jitterbit Script.

Tipos de Datos de Precisión Ilimitada

Los tipos de datos de precisión ilimitada, como el decimal XML, se convierten en tipos de datos dobles y, por lo tanto, se les impone un límite de precisión que, como resultado, podría truncar los datos.

El límite de precisión está dentro del rango de los valores mínimo y máximo de un long con signo, que es de -2.147.483.648 a 2.147.483.647. Si está fuera de este rango, considere usar un tipo de datos de cadena en su lugar para evitar truncar los datos.

Tipos de Datos No Primitivos

Los tipos de datos primitivos boolean, date, double, float, integer, long, y string, y el tipo de datos no primitivo decimal son compatibles con todos los tipos de esquema. Al crear o editar un plano personalizado o jerárquico esquema o editar cualquier esquema cargado en una transformación, estos tipos de datos están disponibles para elegir en el menú desplegable Tipo. Para nuevos esquemas personalizados, otros tipos de datos no primitivos como datetime no son compatibles.

Sin embargo, se admiten otros tipos de datos no primitivos para esquemas que se generan automáticamente a partir de un esquema generado por conector o fueron reflejados a partir de dicho esquema. Una vez generados, dichos esquemas también se pueden editar manualmente en el editor de esquema personalizado. Si el esquema contiene tipos de datos no primitivos, estos también se enumeran en el menú desplegable Tipo al editar dicho esquema.

Valores Nulos

Los campos que tienen un valor nulo se incluyen en el esquema de datos resultante a pesar de no tener datos. Como tampoco tienen un tipo de datos definido, estos campos se tratan como si tuvieran un tipo de datos de cadena.

Espacios de Nombres de Esquema XML

Se admiten espacios de nombres en esquemas XML. Si se utiliza más de un espacio de nombres en un esquema XML, el agente Harmony convierte el esquema XML en varios archivos XSD durante el procesamiento.

Solución de Problemas

Debido a cambios realizados en las versiones de Harmony 10.25 y 10.27, es posible que observe un comportamiento diferente en los proyectos creados antes de estas versiones. Estos cambios afectan a los esquemas XML que se han duplicado y es más probable que afecten las asignaciones que utilizan funciones XML que involucran espacios de nombres, como el SelectNodes función. En este caso, las asignaciones que antes eran válidas ahora pueden no serlo debido a un error relacionado con la sintaxis de la función XML.

Compare las diferencias entre este ejemplo de esquema XML reflejado anterior a 10.25 con uno creado en 10.25 o posterior:

esquema XML anotado

  • Ejemplo de esquema XML anterior a la versión 10.25: En los proyectos creados antes de la versión 10.25, los esquemas XML reflejados utilizan el prefijo de espacio de nombres predeterminado para los documentos XML: xsi como se muestra resaltado en rojo arriba, xmlns:xsi declara el espacio de nombres y los campos no asignados se muestran en el esquema con el atributo xsi:nil="true".
  • Ejemplo de esquema XML en 10.25 y versiones posteriores: En los proyectos creados en 10.25 y versiones posteriores y resaltados en verde arriba, los esquemas XML reflejados usan el prefijo de espacio de nombres ns para declarar un espacio de nombres calificado. Los campos no asignados no se muestran en el esquema.

En las versiones 10.25 y 10.26, si importó un proyecto con un esquema XML reflejado que se creó antes de la versión 10.25, el esquema se reprocesó y se cambió para usar el prefijo de espacio de nombres calificado.

A partir de la versión 10.27, los proyectos importados cuyos esquemas XML reflejados se crearon antes de la 10.25 conservan el prefijo de espacio de nombres del esquema XML predeterminado para que el esquema sea idéntico al que se creó. Este cambio significa que cualquier proyecto anterior a 10.25 que se importe a la versión actual debería funcionar como se diseñó originalmente.

Para forzar una actualización de un esquema XML anterior a 10.25 para usar el prefijo de espacio de nombres actualizado, puede regenerar el esquema actualizándolo o reconfigurando la actividad que proporciona el esquema.

Etiquetas de Cierre Automático del Esquema XML

Las etiquetas de cierre automático en elementos de esquemas XML se admiten con cierta manipulación del XML de muestra utilizado para generar el esquema. Para enviar el elemento XML en la carga útil sin un valor asignado, puede utilizar una función Jitterbit y una variable Jitterbit como se describe a continuación.

Manipular el XML de Muestra

Se requiere manipulación cuando un archivo de muestra XML utiliza notación abreviada para una etiqueta de apertura y cierre en un elemento como este:

<tag/>

Si dicha abreviatura se utiliza directamente en un esquema XML, no se podrá asignar el nodo cuando se utilice como esquema de destino de una transformación.

Para resolverlo, manipule el XML de muestra que se utiliza para generar el esquema para expandir las etiquetas de apertura y cierre que rodean el elemento y proporcione un valor de muestra para que se asigne un tipo de datos al elemento:

<tag>example</tag>

Luego, el elemento aparecerá como un campo en el esquema XML y, cuando se utilice como esquema de destino en una transformación, podrá asignarlo a ese campo.

Mapa del Campo XML

Si no tiene un objeto de origen o una variable para asignar al campo de destino, puede colocar la función Jitterbit Null en el secuencia de comandos de transformación para utilizarlo como valor asignado:

<trans>
Null()
</trans>

Antes de la transformación usando el esquema XML, configure una de estas variables Jitterbit (según cuál sea apropiada para su caso de uso) para controlar lo que se envía: