Saltar al contenido

Solución de problemas de operaciones en Jitterbit Integration Studio

Introducción

Si experimenta problemas al ejecutar una operación, se recomiendan las siguientes acciones de solución de problemas.

Probar la conexión

Para cualquier operación que utilice conectores, en la conexión, haga clic en el botón Probar para asegurarse de que la conexión sea exitosa.

Para conectores basados en Connector SDK desplegados en operaciones que se ejecutan en agentes privados, hacer clic en el botón Probar asegura que la última versión del conector se descargue al agente (a menos que se esté utilizando la política de organización Deshabilitar actualización automática del conector).

Revisar los registros de la operación

Revise los registros de la operación para obtener información escrita durante la ejecución de la operación.

Dependiendo del tipo de agente, puede recuperar archivos de registro y datos adicionales:

Posibles errores en los registros de la operación

Las siguientes secciones cubren errores que pueden estar presentes en un registro de operación y su resolución.

No se encontró una dependencia de archivo

El error No se encontró una dependencia de archivo puede tener muchas causas. Una posible causa es que los agentes privados se desincronicen con la nube de Harmony, lo que resulta en que el agente privado no reciba archivos (como esquemas) que debería recibir. Este problema de sincronización puede causar que las operaciones fallen cuando el agente no puede acceder a las dependencias requeridas.

Si bien este problema generalmente se resuelve por sí solo, puede activar manualmente una re-sincronización del entorno para resolver el problema:

  1. Utiliza el programa utilitario JitterbitUtils del agente privado.
  2. Ejecuta la opción --resync-environment ENVIRONMENT en el servidor del agente (reemplaza ENVIRONMENT con el nombre de tu entorno).

Este proceso obliga al agente a re-sincronizarse con la nube de Harmony y descargar cualquier archivo o dependencia que falte.

Para más información sobre la sincronización de entornos, consulta Ajuste del rendimiento de la sincronización de entornos.

Advertencia de subelemento extra

Una advertencia de subelemento extra en los mensajes de registro generalmente se puede ignorar. Esta advertencia indica que la carga útil de la API de un conector devolvió más nodos o campos de datos de los definidos en el esquema de datos de respuesta.

Caracteres no permitidos en los mapeos de esquema XML

Dependiendo de la actividad del conector, estos caracteres son inválidos y resultarán en un error en tiempo de ejecución:

\x00 (NULL) \x0E (cambio de salida)
\x01 (inicio de encabezado) \x0F (cambio de entrada)
\x02 (inicio de texto) \x1A (carácter de sustitución)
\x03 (fin de texto) \x1B (escape)
\x04 (fin de transmisión) \x1C (separador de archivos, separador de información cuatro)
\x05 (consulta) \x1D (separador de archivos, separador de información tres)
\x06 (reconocimiento) \x1E (separador de archivos, separador de información dos)
\x07 (campana) \x1F (separador de archivos, separador de información uno)
\x08 (retroceso) \xD800 a \xDFFF (caracteres de sustitución alta UTF-16)
\x0B (tabulación vertical) \xFFFE
\x0C (avance de formulario) \xFFFF

Cuando los datos de entrada o salida que se suministran o se devuelven de una transformación adyacente a una actividad de conector basada en XML contienen uno de los caracteres mencionados anteriormente, se devuelve un error específico que hace referencia a ese carácter en tiempo de ejecución. Por ejemplo, cuando el \x1E carácter de control está presente en la transformación de respuesta para la actividad Obtener BAQ de Epicor Kinetic, se devuelve este error en tiempo de ejecución:

La excepción es un carácter de espacio en blanco no válido (0x1e) en el texto a output

Elementos XML no soportados cuando están incrustados en JSON

Las secciones de datos de carácter (CDATA) no son compatibles con XML incrustado en JSON destinado a ser enviado a través de una transformación. Incluir secciones CDATA puede causar que aparezca el siguiente error en un registro de operaciones en tiempo de ejecución:

La transformación falló. Error: La operación "Operación" falló.
Error: Falló al convertir el archivo XML a JSON.
org.jitterbit.integration.server.engine.EngineSessionException: org.xml.sax.SAXParseException ...

Para solucionar esto, utiliza un script de Jitterbit para Reemplazar los caracteres &, <, >, ' y " de toda la sección CDATA, incluida su definición (<![CDATA[ ... ]]>), por &amp, &lt, &gt, &apos, &quot respectivamente. Si es necesario, se puede reemplazar toda la cadena XML que contiene la sección CDATA si apuntar a la sección no se ajusta a tu caso de uso.

El siguiente ejemplo se considera inválido sin reemplazos:

{
  "name": "Jitterbit",
  "data": "<xml><content><![CDATA[<greeting>Hello, world!</greeting>]]></content></xml>"
}

Reprocesamiento de esquemas XML reflejados

Debido a los cambios realizados en las versiones de Harmony 10.25 y 10.27, es posible que observes un comportamiento diferente en los proyectos creados antes de estas versiones. Estos cambios afectan los esquemas XML que han sido reflejados y es más probable que impacten los mapeos que utilizan funciones XML que involucran espacios de nombres, como la función SelectNodes. En este caso, los mapeos que anteriormente eran válidos pueden ahora ser inválidos con un error relacionado con la sintaxis de la función XML.

Compara las diferencias entre este ejemplo de esquema XML reflejado antes de 10.25 con uno creado en 10.25 o posterior:

Esquema XML anotado

  • Ejemplo de Esquema XML Antes de 10.25: En proyectos creados antes de 10.25, los esquemas XML reflejados utilizan el prefijo de espacio de nombres predeterminado para documentos XML: xsi. Como se muestra resaltado en rojo arriba, xmlns:xsi declara el espacio de nombres y los campos no mapeados se muestran en el esquema con el atributo xsi:nil="true".
  • Ejemplo de Esquema XML en 10.25 y Posteriores: En proyectos creados en 10.25 y posteriores y resaltados en verde arriba, los esquemas XML reflejados utilizan el prefijo de espacio de nombres ns para declarar un espacio de nombres calificado. Los campos no mapeados no se muestran en el esquema.

En las versiones 10.25 y 10.26, si importaste un proyecto con un esquema XML reflejado que fue creado antes de 10.25, el esquema fue reprocesado y cambiado para usar el prefijo de espacio de nombres calificado.

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

Para forzar una actualización de un esquema XML anterior a la versión 10.25 para utilizar el prefijo de espacio de nombres actualizado, se puede regenerar el esquema al actualizarlo o reconfigurar la actividad que proporciona el esquema.

Caracteres especiales en esquemas JSON proporcionados por conectores

Cuando una transformación utiliza un esquema JSON heredado de una actividad de conector adyacente, cualquier carácter especial en un campo o nombre de nodo del esquema se reemplaza por guiones bajos (_).

Al utilizar el procesamiento JSON heredado (el predeterminado para proyectos creados antes de la versión 11.48 de Harmony), este comportamiento puede causar que se devuelvan errores desde el endpoint.

Por ejemplo, si la actividad proporciona un nombre de campo de location_ids[], se convierte en location_ids__, sin embargo, el endpoint aún espera el nombre de campo original de location_ids[] y devuelve un error, como "error_message": "{location_ids:expected String to be a Array}",}}.

Para resolver este problema, siga estos pasos:

  1. Confirme que se está utilizando un esquema JSON en la actividad afectada. Tales esquemas tendrán un nodo raíz llamado json:

    json schema

  2. Configure el proyecto para utilizar el Procesamiento de nombres JSON preservados activando la opción Preservar nombres JSON en la configuración del proyecto (se requiere la versión del agente 11.48 o posterior).

  3. Reconfigure, despliegue y ejecute la operación.

    Importante

    Cuando Preservar nombres JSON está activado en un proyecto donde actualmente está deshabilitado, tenga en cuenta que el Procesamiento de nombres JSON preservados se utilizará solo para operaciones y esquemas configurados después de que se habilite la configuración. Es decir, las operaciones y esquemas existentes seguirán utilizando el procesamiento JSON heredado. Se recomienda reconfigurar todas las operaciones y esquemas existentes en tales proyectos, ya que utilizar ambos métodos de procesamiento de esquemas en un solo proyecto puede causar inconsistencias en el proyecto.

Cuando se utiliza el procesamiento de Preservar nombres JSON, se puede verificar el nombre del campo o nodo que se está pasando al endpoint al ver el jsonPropertyName en los datos de entrada o salida de la actividad cuando se habilita el registro de depuración (para agentes en la nube o para agentes privados). El valor del jsonPropertyName es el valor que se envía en la solicitud:

jsonPropertyName