Saltar al contenido

Validez del Mapeo de Transformación

Introducción

Las asignaciones de Transformación deben ser válidas para que una transformación sea válida. Esta página cubre cómo identificar asignaciones no válidas y ver los errores de validación asociados con ellas, así como también cómo resolver errores de validación.

Errores de Validación

Las Transformaciones se tratan de la misma manera que otros componentes del proyecto al identificar la validez del componente a escala del proyecto. Es decir, puede identificar transformaciones no válidas en el tela de diseño y en el panel de proyecto como se describe en Validez del componente. Los errores de validación dentro de un mapeo se incluyen en la validación de transformaciones.

Para que una transformación sea válida, no debe tener ningún error de validación dentro de la propia transformación. Para que una transformación se considere válida, debe cumplir estas reglas:

  • Un mapeo no puede contener referencias a campos o variables inexistentes.
  • Una asignación no puede contener conflictos de tipos de datos.
  • Una asignación debe utilizar una sintaxis de secuencia de comandos válida.
  • Un nodo de bucle de destino no puede tener múltiples fuentes.
  • Se debe proporcionar un esquema para una actividad de origen o de destino adyacente.

Además, ciertos campos de destino pueden requerir una asignación o no permitirla. Por ejemplo, no se pueden asignar los campos unidos de una tabla secundaria. Se proporcionan detalles adicionales en Reglas de validación más adelante en esta página.

Para resolver esos errores, puede identificar errores dentro de la propia transformación y realizar los ajustes correspondientes. Las asignaciones no válidas se muestran para un bloque de campo de destino completo o para objetos asignados individuales dentro de un bloque de campo de destino.

Todo el Campo Objetivo

Cuando la asignación completa de un campo de destino no es válida, aparece una línea vertical roja a la izquierda del bloque del campo de destino, un icono de advertencia advertencia se muestra en la parte superior derecha del campo de destino. Al pasar el cursor sobre el ícono de advertencia, se enumera el motivo por el cual la asignación no es válida.

Este tipo de asignación no válida puede deberse a la asignación de campos que no se pueden asignar, por ejemplo, al intentar asignar un ID de objeto único en una actividad de inserción de Salesforce utilizado como objetivo.

campo de destino no válido

Cuando una asignación completa del campo de destino es potencialmente inválida, aparece una línea vertical naranja a lo largo de la izquierda del bloque del campo de destino. Al pasar el cursor sobre el campo, se enumera el motivo por el cual la asignación podría no ser válida.

Este tipo de asignación no válida puede deberse a la ausencia de una asignación que pueda ser necesaria, por ejemplo, debido a que una clave principal no está asignada en una actividad de inserción de base de datos utilizado como objetivo.

campo de destino potencialmente no válido

Las asignaciones no válidas o potencialmente no válidas también pueden resultar de múltiples objetos (como más de un objeto o variable de origen) que se asignan a un campo de destino sin ninguna lógica que especifique cómo procesar esos objetos.

Para resolver asignaciones no válidas, elimine la asignación o abra el campo en modo secuencia de comandos para agregar lógica de procesamiento. Las asignaciones potencialmente no válidas tienen como objetivo señalar un problema potencial, pero se pueden dejar "como están" si ha determinado que la asignación es válida.

Para eliminar una asignación, haga clic en el icono de eliminar eliminar 2 en el objeto mapeado.

Para abrir un campo con una asignación no válida en modo secuencia de comandos para agregar lógica de procesamiento, haga clic en el ícono de advertencia advertencia para mostrar el ícono de agregaradvertencia y opciones de menú. Para un campo con una asignación potencialmente no válida, el icono de agregar advertencia ya está presente. Haga clic en Agregar Secuencia de Comandos para ingresar al modo de secuencia de comandos.

campo de destino no válido agregar secuencia de comandos

Objeto Mapeado Individual

Cuando un objeto mapeado individual dentro de un campo de destino no es válido, el objeto mapeado aparece delineado en rojo con un ícono de advertencia advertencia mostrado a la derecha:

campo de destino objeto no válido

Haga clic en el icono de advertencia advertencia para mostrar el motivo por el cual la asignación no es válida. Para eliminar la asignación, haga clic en el icono de eliminar advertencia o Eliminar.

campo de destino objeto no válido flotante

Las asignaciones individuales pueden no ser válidas si un objeto de origen asignado ya no está presente después de editar un esquema, si hay una discrepancia requerida/opcional con la cardinalidad de un campo de destino o si los campos de origen y de destino tienen tipos de datos incompatibles.

La asignación de campos de origen y destino con tipos de datos potencialmente incompatibles se marca para todos los esquemas, independientemente de si tienen tipos de datos definidos, como los definidos a partir de una actividad de Salesforce o de base de datos, o si solo tienen etiquetas de tipo de datos, como las definidas. de un archivo de muestra o que se han definido manualmente (para estos tipos de esquemas, todos los campos se manejan como cadenas independientemente de si tienen etiquetas de tipo de datos).

Una discrepancia en el tipo de datos no indica necesariamente que haya un problema con la asignación. Por ejemplo, si un campo de origen con un tipo de datos entero se asigna a un campo de destino con un tipo de datos de cadena, los datos resultantes son una cadena que contiene un valor numérico. Los campos de origen con cualquier tipo de datos se pueden asignar a un campo de destino con un tipo de datos de cadena, por lo que estas asignaciones no se marcan de ninguna manera.

el tipo de datos del campo de destino no coincide

Sin embargo, si ocurre lo contrario y un campo de origen con una cadena u otro tipo de datos se asigna a un tipo de datos de destino que no coincide, dichas asignaciones pueden marcarse como potencialmente incompatibles. Los campos asignados con tipos de datos que son potencialmente incompatibles se muestran con un borde naranja:

incompatibilidad de discrepancia del tipo de datos del campo de destino

Al pasar el mouse, se enumera el motivo de la posible incompatibilidad. Para eliminar la asignación, haga clic en el icono de eliminar eliminar 2.

desplazamiento por incompatibilidad del tipo de datos del campo de destino

Tenga en cuenta que la indicación de una posible discrepancia en el tipo de datos aparece solo para asignaciones simples de un objeto de origen a un campo de destino y no se muestra si el campo de destino contiene lógica de secuencias de comandos.

Para los campos de destino que se asignan mediante lógica de secuencias de comandos, después de procesar la secuencia de comandos y evaluar el resultado resultante, el valor se convierte al tipo de datos del campo de destino al que se está asignando. Se espera que el usuario sepa, en función de la salida que se convierte al tipo de datos del campo de destino, si esta salida final es el resultado deseado.

Como ejemplo, digamos que el campo de destino es un double tipo de datos. Independientemente del tipo de datos del secuencia de comandos, una vez procesado el secuencia de comandos, el resultado final del mapeo se convierte en un double. Esto se ilustra con los ejemplos de secuencia de comandos de transformación que aparecen a continuación.

Transformation Script 1
<trans>
1 + "string"
</trans>

El secuencia de comandos anterior se evalúa como un valor de "1string" con un string tipo de datos. Luego, durante el procesamiento del mapeo de transformación, esta salida se convierte en un double tipo de datos. Debido a que la salida comienza con un dígito, cualquier dígito inicial se trasladará a la salida final del mapeo, ya que los números son válidos para un double. El resultado final del mapeo es un valor de 1 con un double tipo de datos.

Transformation Script 2
<trans>
"string" + 1
</trans>

El segundo secuencia de comandos, arriba, se evalúa como un valor de "string1" con un string tipo de datos. Durante el procesamiento del mapeo de transformación, esta salida se convierte en un double tipo de datos. En este caso, debido a que un valor que no es un dígito, que no es válido para un double, está al comienzo del valor devuelto, no se transfiere ningún valor. En cambio, el campo de destino toma el valor predeterminado para un número; es decir, el resultado final del mapeo es un valor de 0 con un double tipo de datos.

En algunos casos, es posible que desee anular el tipo de datos del campo de destino y transferir la salida utilizando un tipo de datos diferente. Para estos, puedes usar el Format o FormatDate funciones dentro del secuencia de comandos de asignación de campos de destino. Asegúrese de que la función esté en la última declaración del secuencia de comandos, ya que el valor devuelto del secuencia de comandos siempre proviene de la línea final.

Reglas de Validación

Para que una transformación sea válida, debe configurarse correctamente. Los mensajes de error que se tratan a continuación se muestran al ver los errores de validación asociados con la transformación como un componente desde el tela de diseño o panel de proyecto como se describe en Validez del componente.

Si una transformación no se ha configurado o está mal configurada, se devuelve este mensaje de error de validación:

Transformation is not configured properly.

Este mensaje aparece con mayor frecuencia cuando ha agregado una nueva transformación a una operación y aún no se ha configurado. Para resolverlo, abra la pantalla de configuración de la transformación y luego configure la transformación en consecuencia. No es necesario que una transformación contenga asignaciones si su esquema de destino consta únicamente de nodos sin campos. Si el esquema de destino contiene campos, debe haber al menos una asignación presente para que la transformación se configure correctamente.

Además, para que una transformación sea válida, no debe tener ningún error de validación dentro de la propia transformación. Para que una transformación se considere válida, debe cumplir estas reglas:

  • Un mapeo no puede contener referencias a campos o variables inexistentes.
  • Una asignación no puede contener conflictos de tipos de datos.
  • Una asignación debe utilizar una sintaxis de secuencia de comandos válida.
  • Un nodo de bucle de destino no puede tener múltiples fuentes.
  • Se debe proporcionar un esquema para una actividad de origen o de destino adyacente.

Además, ciertos campos de destino pueden requerir una asignación o no permitirla. Por ejemplo, no se pueden asignar los campos unidos de una tabla secundaria. Las asignaciones no válidas se indican visualmente en la pantalla de configuración de transformación, como se explica en Errores de validación anteriormente en esta página.

Dependiendo del error, se devuelve la variación apropiada de estos posibles mensajes de error si no se cumple esta regla:

Mapping refers to a non-existent [source / target / variable] field $[path].

Potential data type conflict in mapping.

Target field $[node.name] [must be mapped / cannot be mapped].

Target field $[node.name] is linked to [database joins] of its parent. You cannot map a value to this element.

records: Error on line [#]: [Script validation syntax error].

Mappings of a target loop node depend on more than one source loop node.

[Source / Target] schema must be provided.

Para resolverlo, pruebe estos consejos de solución de problemas:

  • Si tiene referencias a campos inexistentes, conflictos de tipos de datos u otras asignaciones no válidas, busque la asignación no válida y anule la asignación o verifique el esquema para asegurarse de que todos los campos estén contabilizados y tengan tipos de datos compatibles. Si tiene referencias a variables inexistentes, verifique que la variable existe.
  • Si tiene errores de validación del secuencia de comandos, verifique el mapeo y realice ajustes dentro del secuencia de comandos. Los mensajes de validación también se muestran debajo de cada secuencia de comandos informado línea por línea. Es decir, después de resolver un error en una línea, es posible que se informen errores de sintaxis adicionales para resolver en las líneas siguientes. Continúe realizando cambios hasta que el mensaje indique que el secuencia de comandos es válido.
  • Si tiene un nodo de bucle de destino que depende de más de un nodo de bucle de origen, siga las instrucciones proporcionadas en Asignar desde un origen de múltiples instancias a un destino de instancia única en Estructuras de datos.
  • Si tiene actividades de origen o de destino adyacentes a la transformación, asegúrese de proporcionar un esquema para cada una. Los esquemas se pueden proporcionar desde dentro de la actividad durante su configuración (consulte la documentación de cada conector), o definiendo un esquema desde directamente dentro de la transformación.

Además, si una transformación no es válida por algún otro motivo que no se puede determinar fácilmente, se devuelve este mensaje de error:

Transformation is invalid.