Uso de las propiedades SourceExpr y DestExpr
En la última sección hemos visto cómo añadir instancias de tabla a un mapping. En esta sección, veremos cómo acceder a los datos de los campos de una tabla. Y cómo utilizar valores constantes y filtros.
El módulo permite leer datos de campos de tablas, siempre que exista una propiedad SourceExpr (expresión fuente). El SourceExpr también puede utilizarse para especificar valores constantes o para llamar a funciones. Encontrará esta propiedad en las líneas de datos de mapping de tipo de formato NAV y en las líneas de datos de los mappings de exportación. Pero esta propiedad también está disponible para los parámetros de la función personalizada y para ampliar los mensajes de error. Hay más opciones, de las que hablaremos un poco más adelante en esta sección.
Para escribir datos en los campos de la tabla existe otra propiedad llamada DestExpr (expresión de destino). Esta propiedad también permite cotejar los datos con un filtro especificado, en lugar de almacenarlos. Enseguida entraremos en detalles. Es importante saber que se pueden escribir datos en cualquier campo de una instancia de tabla, incluso si el Mode tabla está establecido en Read. Al escribir en una tabla en modo lectura, se llamará a la lógica de validación de NAV, pero no modificaremos el registro. En nuestras tablas de buffer se puede utilizar para almacenar un valor para un tiempo determinado en el mapping. En otras tablas dependerá de la lógica de validación, si es seguro utilizar una tabla en modo lectura para almacenar datos temporalmente.
La propiedad SourceExpr
El tipo de fuente especifica qué tipo de datos desea leer. Los valores permitidos son:
Un valor constante que se introduce en el mapping.
Un campo de una instancia de tabla, que es una de las líneas mapping padre de esta línea mapping. En el caso de que quieras leer un campo suma tienes que estar fuera de la instancia de la tabla, pero debajo de ella.
Desea leer datos de una función incorporada o personalizada.
Esta propiedad se añadió en Anvaigo EDI Connect 4.00.
Esta propiedad sólo está disponible si SrcType es Const Esta propiedad especifica el tipo de datos del valor constante. Debe seleccionar el tipo de datos, para evitar errores debidos a las diferentes configuraciones regionales utilizadas durante la configuración y el tiempo de ejecución. En versiones anteriores había que asegurarse de que la configuración regional durante la configuración era la misma que durante la ejecución para evitar, por ejemplo, que los números se interpretaran de forma diferente.
Puede elegir entre los siguientes tipos de datos:
Un valor de texto constante.
Un texto que puede contener caracteres especiales, como un retorno de carro<CR>. Hay una lista de todos los caracteres especiales admitidos.
Un valor booleano, como True o False.
Un valor de opción. Debe utilizar el valor entero de la opción en la base de datos.
Un valor entero (32 bits).
Un valor decimal.
Un valor entero grande (64 bits).
El valor contiene una duración.
El valor es un valor de código Dynamics (sólo mayúsculas, no admite todos los caracteres).
Representa un valor de fecha.
Representa un valor temporal.
Representa un valor combinado de fecha y hora.
Una fórmula de fecha.
Un identificador único global (GUID).
Esta propiedad sólo está disponible si SrcType es Const Representa el valor constante que se desea utilizar.
Esta propiedad sólo está disponible si el SrcType es Function. Puede utilizar el AssistEdit para especificar el objeto y la función. Si la función requiere parámetros, éstos también serán SourceExpr, pero no admite el anidamiento de funciones.
Esta propiedad sólo está disponible si el SrcType es Field. Seleccione la instancia de tabla de la que desea leer los datos. La tabla tiene que ser una de las matrices de la línea mapping actual, para leer los datos de un registro. Si quiere leer campos de suma, tiene que estar bajo la instancia de la tabla, pero no ser hijo de ella.
Esta propiedad sólo está disponible si el SrcType es Field. Selecciona la columna / campo del que quieres leer.
Puede especificar una conversión de valor, para cambiar el valor seleccionado a un valor de destino diferente. Hay una sección sobre cómo configurar las conversiones de valores.
El código de la traducción de valores que debe utilizarse.
Qué debe ocurrir, si el valor no se encuentra en la traducción de valores.
El módulo no hace nada si falta la traducción. Utiliza el valor original sin traducción.
Emite un valor vacío.
Añade una entrada en el registro de información y utiliza el valor original.
Añade una entrada de registro de advertencia y utiliza el valor original.
Rompe el mapping inmediatamente y registra un error.
Cree una entrada en el registro de errores y no finalice con éxito el mapping, sino que continúe con el procesamiento para encontrar también otros errores.
Esta propiedad está oculta por defecto. Puede especificar una lista de valores permitidos y crear errores, si intenta exportar otro valor.
La lista de valores permitidos. Puede utilizar el AssistEdit o introducir los términos separados por comas.
Qué debe ocurrir si el valor de origen no está en la lista de valores permitidos.
No utilice la validación avanzada e ignore los valores de la lista.
Crear una entrada de registro de información.
Crear una entrada de registro de advertencia.
Interrumpe el mapping inmediatamente con un mensaje de error.
Devolver un error en la ejecución de mapping, pero continuar procesando el mapping, para encontrar también otros errores.
La propiedad DestExpr
Seleccione el objetivo de un valor. Son válidos los siguientes valores:
Vacío significa que el valor se ignora. Puede utilizarlo para omitir campos en las importaciones o, por ejemplo, para ignorar el valor de retorno de una función.
El valor debe comprobarse con un filtro Dynamics. Si el filtro no coincide, el valor no se acepta. Dependiendo del conversor, esto dará lugar a un mensaje de error o a la omisión de una sección del mapping. Encontrará más información sobre el uso de filtros para convertidores específicos en la documentación de cada convertidor.
El valor debe escribirse en un campo de una instancia de tabla en este mapping.
Esta propiedad sólo está disponible si DestType es Filter. El filtro Dynamics con el que se comprueba el valor. El valor se interpretará como un valor de texto para aplicar el filtro. Un ejemplo típico sería «BY|IV», para permitir los valores «BY» e «IV».
Esta propiedad sólo está disponible si el DestType es Field. Selecciona la instancia de la tabla en la que debe escribirse el valor. La instancia de la tabla tiene que ser uno de los padres de la línea mapping actual.
Esta propiedad sólo está disponible si el DestType es Field. El nombre de campo/nombre de columna del campo de destino en la tabla.
Esta propiedad sólo está disponible si el DestType es Field. Esta propiedad sólo está disponible como propiedad avanzada. Establecer esta propiedad a False omitirá el trigger de validación Microsoft Dynamics 365 Business Central para ese campo.
Tenga mucho cuidado al utilizar False. Sólo debe desactivar la validación tras consultar a un programador. No debería desactivarlo en ninguna de las tablas estándar de Dynamics, a menos que realmente sepa lo que está haciendo. Puede inutilizar Microsoft Dynamics 365 Business Central omitiendo el código de validación.
Esta propiedad sólo está disponible si el DestType está establecido en Field y está utilizando el convertidor CHECK / NAV / PREPARE / PROCESS. Encontrará más información en la página del conversor.
