Uso de las propiedades de SourceExpr y DestExpr
En la última sección, hemos discutido cómo agregar instancias de tabla a un mapeo. En esta sección veremos cómo acceder a los datos de los campos de una tabla. Y cómo usar valores y filtros constantes.
El módulo le permite leer datos de campos de tablas, siempre que exista una propiedad SourceExpr (expresión de fuente). SourceExpr también se puede utilizar para especificar valores constantes o para llamar funciones. Encontrará esta propiedad en las líneas de datos de asignación de formato NAV y en las líneas de datos de asignación 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, que discutiremos un poco más adelante en esta sección.
Para escribir datos en los campos de la tabla hay otra propiedad llamada DestExpr (expresión de destino). Esta propiedad también le permite verificar los datos contra un filtro especificado, en lugar de almacenarlos. Entraremos en detalles en un momento. Es importante saber que puede escribir datos en cualquier campo de una instancia de tabla, incluso si el Mode tabla está configurado como Read. La escritura en una tabla en modo lectura llamará a la lógica de validación de NAV, pero no modificamos el registro. En nuestras tablas de búfer puede utilizar esta opción para almacenar un valor durante un tiempo determinado en la asignación. En otras tablas dependerá de la lógica de validación, si es seguro utilizar una tabla en modo de lectura para almacenar datos temporalmente.
La propiedad de SourceExpr
El tipo de fuente especifica qué tipo de datos desea leer. Los valores permitidos son:
Un valor constante que se introduce en la asignación.
Un campo de una instancia de tabla, que es una de las líneas de asignación de nivel superior de esta línea de asignación. En caso de que quieras leer un campo de suma tienes que estar fuera de la instancia de la tabla, pero debajo de ella.
Desea leer datos de una función incorporada o de una función personalizada.
Esta propiedad sólo está disponible si SrcType está configurado como Const. Representa el valor constante que se desea utilizar.
Esta propiedad sólo está disponible si SrcType está configurado en Function. Puede utilizar el AssistEdit para especificar el objeto y la función. Si la función requiere parámetros, estos serán SourceExpr también, pero no soportan el anidamiento de funciones.
Esta propiedad sólo está disponible si SrcType está establecido en Field. Seleccione la instancia de la tabla de la que desea leer los datos. La tabla debe ser uno de los padres de la línea de mapeo actual, para leer los datos de un registro. Si desea leer los campos de suma, tiene que estar debajo de la instancia de la tabla, pero no ser hijo de ella.
Esta propiedad sólo está disponible si SrcType está establecido en Field. Selecciona la columna / campo del que desea leer.
Puede especificar una conversión de valor para cambiar el valor seleccionado a un valor previsto diferente. Hay una sección sobre cómo configurar las traducciones de valores.
El código de la conversión de valor que se debe utilizar.
Qué debe suceder, si el valor no se encuentra en la conversión de valor.
El módulo no hace nada si falta la traducción. Utiliza el valor original sin traducción.
Dar salida a un valor vacío.
Añada una entrada de registro de información y utilice el valor original.
Añada una entrada de log de aviso y utilice el valor original.
Rompa el mapeo inmediatamente y registre un error.
Cree una entrada de registro de errores y no termine correctamente la asignación, pero continúe con el procesamiento para encontrar otros errores también.
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 suceder, si el valor fuente no está en la lista de valores permitidos.
No utilice la validación avanzada e ignore los valores de la lista.
Cree una entrada de registro de información.
Cree una entrada de log de aviso.
Rompa el mapeo inmediatamente con un mensaje de error.
Devuelve un error en la ejecución del mapeo, pero continúa procesando el mapeo, para encontrar otros errores también.
La propiedad de DestExpr
Seleccione el objetivo para un valor. Los siguientes valores son válidos:
Vacío significa que el valor es ignorado. Puede utilizarlo para omitir campos en importaciones o, por ejemplo, para ignorar un valor de retorno de función.
El valor debe ser verificado contra un filtro de Dinámica. Si el filtro no coincide, el valor no es aceptado. Dependiendo del convertidor, esto resultará en un mensaje de error o en saltarse una sección de la asignación. Aprenderá más 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 de esta asignación.
Esta propiedad sólo está disponible si el DestType está establecido en Filter. El filtro de dinámica 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» y «IV».
Esta propiedad sólo está disponible si el DestType está establecido en Field. Selecciona la instancia de la tabla en la que se debe escribir el valor. La instancia de la tabla tiene que ser uno de los padres de la línea de mapeo actual.
Esta propiedad sólo está disponible si el DestType está establecido en Field. El nombre de campo/nombre de columna del campo de destino en la tabla.
Esta propiedad sólo está disponible si el DestType está establecido en Field. Esta propiedad sólo está disponible como propiedad avanzada. Si se establece esta propiedad en False, se omitirá el desencadenante de la validación del Microsoft Dynamics NAV 2016 para ese campo.
Sea muy cauteloso al usar False. Sólo debe desactivar la validación después de consultar a un programador. No debería desactivarlo en ninguna de las tablas estándar de Dynamics, excepto que realmente sabe lo que está haciendo. Puede inutilizar el Microsoft Dynamics NAV 2016 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 de NAV. Puede encontrar más información en la página del convertidor.