Lenguaje AL – Sintaxis para la creación de tablas

por | 25 septiembre, 2017

Dynamics NAV 2018 nos trae importantes novedades en cuanto al entorno de desarrollo.

Aunque durante algunas versiones se va a mantener la posibilidad de seguir desarrollando desde el entorno C/SIDE, tenemos que empezar a acostumbrarnos a desarrollar extensiones usando el entorno de desarrollo Visual Studio Code (en adelante VSCode).

AL es el lenguage de programación que usaremos en VSCode, muy parecido al C/AL al que estamos acostumbrados.

Sin embargo va a haber pequeños cambios en la sintaxis.

Voy a publicar una serie de artículos en el blog, que puedan servir de referencia.

Vamos a empezar por la creación de tablas. Veremos cómo crear campos (todos los tipos), así como todas sus propiedades.

Lenguaje AL: Cómo crear tablas

Para crear una tabla necesitas tener instalado el entorno y crear un proyecto. Pues ver cómo en este artículo.

El entorno de desarrollo VSCode se basa en ficheros. Cuando creamos un nuevo proyecto, no estamos haciendo más que crear una carpeta nueva en un directorio.

Para crear un nuevo objeto (en este caso una tabla), tenemos que crear un fichero con la extensión .al dentro de la carpeta del proyecto.

Lo puedes hacer siguiendo éstos pasos:

  1. Sitúate sobre el explorador de archivos y haz clic en el botón derecho.
    Después selecciona Nuevo Archivo.
  2. Tienes que darle un nombre al fichero, y tiene que terminar con la extensión .al. En el ejemplo le vamos a llamar NuevaTabla_1.al
  3. En el área de trabajo se abre el nuevo fichero, que actualmente está vacío.
  4. Escribe el texto ttable. Se trata de un snippet que creará la estructura básica de una tabla.
  5. En id tienes que asignarle un identificar único al objeto. Puede ser un número en el rango del 50.000 al 99.999, o en el rango 70.000.000 a 74.999.999.
    En el ejemplo, le vamos a asignar el id 70 millones.
  6. En MyTable tienes que darle un nombre único al objeto. Es una buena práctica asignarle el mismo nombre que el del fichero .al que hemos creado.
    El código quedaría de la siguiente forma:
  7. Los campos se definen dentro del área fields { }. El snippet nos ha creado un primer campo de tipo Integer, con identificador 1 y nombre MyField.- Vamos a mantener el identidicador 1
    – Vamos a darle el nombre Entry No.
    –  Vamos a mantener el tipo como Integer,

    field(1;"Entry No.";Integer)
     {
     }
  8. En el área de Problemas de Visual Studio Code, el sistema nos va mostrando en tiempo real todos los errores que se va encontrando.
    Ahora mismo muestra el siguiente mensaje:

    VSCode nos advierte que tenemos definida una clave primaria, cuyo campo no existe.
    Es es así porque justamente le acabamos de cambiar el nombre al campo, por lo que también tendremos que ajustar la definición de la clave.

  9. Las claves se definen dentro del área keys {}. Vamos a indicar que la clave primaria de esta tabla es el campo «Entry No».
     keys
     {
       key(PK;"Entry No.")
       {
         Clustered = true;
       }
     }

Hasta aquí hemos creado una tabla de Dynamics NAV 2018, con un único campo, que además es clave primaria.

En el siguiente artículo puedes ver la sintaxis que tenemos que usar para crear campos de cualquier tipo de datos.

Salut!
Laura Nicolàs

Categoría: Sin categoría

Acerca de Laura Nicolàs

Soy Laura Nicolàs, una de las gemelas del Navision. Llevo más de 14 años trabajando con Business Central (antes conocido como Dynamics NAV o Navision). Hago consultoría, análisis, desarrollo, implantación, migraciones, actualizaciones de versión (upgrade), instalación, soporte y formación. La formación es una de mis pasiones, así que estoy siempre grabando cursos que tienes disponibles en ClipDynamics.com +40 cursos y +450 lecciones. Hay cursos para usuarios, para consultores y para programadores.

8 pensamientos en “Lenguaje AL – Sintaxis para la creación de tablas

  1. Pingback: Lenguaje AL – Sintaxis para la creación de campos - CLIP Dynamics

  2. Pingback: Lenguaje AL - Sintaxis de las propiedades de campos - Parte I – ClipDynamics

    1. Laura Nicolàs Autor

      Hola John,

      Que es lo que no te funciona? Qué error te sale?

      Ojo con la numeración. Cuando publiqué este artículo se podía usar numeración 70.000.000.
      Después cambió y ahora te dejan crear objetos en el rango 50.000 hasta 99.999, como se havía en C/SIDE.

      Salut!
      Laura Nicolàs

      Responder
      1. john campos

        Hola Laura,

        Gracias por responder. efectivamente el tema si es de los rangos, pero aun me queda duda sobre si esto aplica tanto para la versión local como para la que esta en nube.No se si me puedas enviar un link donde pueda mirar esta información, por supuesto estamos hablando de Business Central, ya he logrado alterar un campo y también publique un hello word.

        Responder
  3. Laura Nicolàs Autor

    Hola John,

    En este artículo colgado en el docs, tienes información sobre los rangos: https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-object-ranges

    Una vez tienes claro qué rango vas a usar, lo tienes que indidar en el fichero App.json.

    Si tienes más dudas, te recomiendo que uses el foro, ya que se pueden publicar imagenes, recibes notificaciones cuando hay respuestas, y en general es más fácil comunicarse.

    Salut!
    Laura Nicolàs

    Responder
    1. john jairo campos

      Hola Laura,

      Mil gracias por tu ayuda, he logrado avanzar bastante pero tengo un inconveniente todavía, ya que si he logrado publicar campos sobre un ambiente de producción y en el Sandbox extendiendo la tabla Customer y Productos alterando objetos existentes pero lo que no he logrado es crear una tabla desde cero con su PageList y PageCard correspondiente y no encuentro La razón, Aparentemente tengo la sintaxis correcta pero cuando la publico en Sandbox no la encuentro, y he utilizado los rangos correctos y se ha cambiando en el fichero App.jason.
      Tendré en cuenta lo del foro

      Gracias

      Responder
      1. Laura Nicolàs Autor

        John,

        En el cloud, para que puedas ver las páginas y campos que creas, tienes que informar la propiedad ApplicationArea en todos sitios.
        La tienes informada? Si no, ese es el motivo por el que no encuentras tus modificaciones.

        Salut!
        Laura Nicolàs

        Responder

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.