Lenguaje AL: Sintaxis para la declaración de variables temporales

por | 4 enero, 2018

El nuevo lenguaje AL con el que podemos desarrollar extensiones para Dynamics NAV a través de Visual Studio Code, está sin duda basado en C/AL, el lenguaje de programación que ha utilizado siempre Navision.

El nuevo lenguaje AL utiliza una sintaxis muy parecida a la de su hermano C/AL. De hecho, para los que estamos especialmente acostumbrados a ver los desarrollos C/AL en formato txt, la estructura de AL nos resulta muy familiar.

Pero no se trata de clones. Algunas diferencias encontramos. Ayer estaba desarrollando una extensión para Dynamics NAV y me encontré con la necesidad de utilizar una variable temporal de una tabla. Y no había manera. No atinaba con la sintaxis concreta para la declaración de variables temporales en AL.

En el entorno de desarrollo clásico de Navision, una variable se define como temporal en las propiedades de la variable.
Cuando este desarrollo lo exportamos a txt, obtenemos lo siguiente:

 

De esta exportación podemos ver que la definición de una variable temporal, ya sea un parámetro de una función o una variable local o incluso global, la sintaxis es la siguiente:

<NombreDeLaVariable>@<Identificador> : TEMPORARY Record <IDTabla>;

 

Así que, inocente yo, al intentar declarar una variable temporal en Visual Studio Code intenté utilizar esta misma sintaxis, desprendiéndome sólo de @<Identificador>, puesto que el nuevo lenguaje AL no utiliza ya identidicadores de funciones ni de variables.

Intenté utilizar <NombreDeLaVariable> : TEMPORARY Record <IDTabla>;

Pero no funcionó. Como se ve en la imagen, el compilador me lo marcaba constantemente en rojo.

Las búsquedas en internet no me dieron ninguna respuesta. No encontré ninguna documentación que me diera la sintaxis exacta que debía utilizar.

Así que me decidí por el método de prueba y error, colocando la palabra clave TEMPORARY en todos los sitios posibles. Y acabé dando con la opción correcta, que es la siguiente:

<NombreDeLaVariable> : Record <IDTabla> TEMPORARY;

Esta sintaxis sirve tanto para la definición de variables, como para la definición de parámetros de una función.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.