Primer Contacto

Inicio de un Proyecto AL

Dificultad: 1/10

Antes de escribir una sola línea de código AL necesitas preparar el entorno de desarrollo. En esta guía verás paso a paso cómo instalar las extensiones necesarias en VS Code y arrancar tu primer proyecto desde cero.

1

Instalar extensiones en VS Code

Abre VS Code y ve al panel de extensiones con Ctrl + Shift + X. Necesitarás instalar las siguientes dos extensiones oficiales de Microsoft:

Extensión Publicada por Para qué sirve
AL Language Microsoft Soporte completo del lenguaje AL: sintaxis, snippets, IntelliSense, compilación y debug
AL Language Extension Pack Microsoft Paquete adicional con herramientas extra para el desarrollo en Business Central

⚠️ Asegúrate de que el contenedor está arrancado

Antes de avanzar a los pasos siguientes, el contenedor de Business Central debe estar en ejecución. Si no lo está, ábrelo con PowerShell como administrador y ejecuta Start-BcContainer bccontainer.

2

Crear el proyecto: AL: Go

Con la extensión AL instalada, abre la Paleta de comandos con Ctrl + Shift + P y escribe:

Paleta de comandos — VS Code
AL: Go!

VS Code te pedirá:

  1. Una carpeta de destino donde se creará el proyecto.
  2. La versión del servidor (elige la que coincida con tu contenedor, normalmente 6.0 para BC22+ o Latest).

Esto genera automáticamente la estructura base del proyecto:

Explorador — Estructura del proyecto
📁 MiProyectoAL/
   ├── .vscode/
   │   └── launch.json        // configuración de conexión al servidor BC
   ├── app.json               // metadatos del proyecto (ID, nombre, versión, dependencias)
   └── HelloWorld.al          // fichero de ejemplo con una Page de prueba

El fichero app.json

Es el manifiesto del proyecto. Define su identidad y dependencias. Los campos más importantes:

app.json
{
    "id":                "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",  // GUID único del proyecto (no tocar)
    "name":              "MiProyecto",
    "publisher":         "TuNombre",
    "version":           "1.0.0.0",
    "idRanges": [{ "from": 50100, "to": 50999 }],   // rango de IDs que puedes usar
    "runtime":           "12.0",
    "platform":          "22.0.0.0",
    "application":       "22.0.0.0",
    "dependencies":      []
}

El fichero launch.json

Indica a VS Code cómo y dónde publicar la extensión. Debes configurarlo para que apunte a tu contenedor local:

.vscode/launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name":          "Publicar en contenedor local",
            "request":       "launch",
            "type":          "al",
            "environmentType": "OnPrem",
            "server":        "http://bccontainer",               // nombre del contenedor
            "serverInstance": "BC",
            "authentication": "UserPassword",
            "startupObjectId": 22,
            "startupObjectType": "Page"
        }
    ]
}
3

Descargar los símbolos: AL: Download Symbols

Los símbolos son los metadatos de todas las tablas, páginas y codeunits base de Business Central. Sin ellos, IntelliSense no puede sugerirte nombres de tabla ni propiedades. Es el paso más importante antes de empezar a escribir código.

Abre la Paleta de comandos con Ctrl + Shift + P y escribe:

Paleta de comandos — VS Code
AL: Download Symbols

VS Code se conectará al contenedor y descargará los símbolos en la carpeta .alpackages/ del proyecto. Cuando termine verás los ficheros .app de las librerías base de BC:

Explorador
📁 .alpackages/
   ├── Microsoft_Application_22.0.0.0.app
   ├── Microsoft_Base Application_22.0.0.0.app
   └── Microsoft_System_22.0.0.0.app

💡 ¿Qué pasa si falla la descarga?

  • Comprueba que el contenedor está corriendo: Start-BcContainer bccontainer.
  • Verifica que el server en launch.json coincide exactamente con el nombre de tu contenedor.
  • Si pide credenciales, usa las mismas que pusiste al crear el contenedor.
4

Usar snippets para crear objetos

La extensión AL incluye snippets (plantillas de código) que te generan la estructura completa de cualquier objeto con solo escribir su prefijo y pulsar Tab. Los más usados:

Escribe en el editor... Y obtiene...
ttable + Tab Plantilla completa de una tabla AL
tpage + Tab Plantilla de una page (card, list...)
tenum + Tab Plantilla de un enum AL
tcodeunit + Tab Plantilla de un codeunit
tfield + Tab Declaración de un campo dentro de una tabla
tprocedure + Tab Declaración de un procedimiento AL
5

Compilar y publicar: AL: Publish

Una vez tienes código escrito, puedes compilar y publicar la extensión en el contenedor con:

Acción Atajo Descripción
Publish (con debug) F5 Compila, publica y abre BC en el navegador con el debugger activo
Publish (sin debug) Ctrl + F5 Compila y publica sin abrir el debugger. Más rápido para pruebas rápidas
Build solo Ctrl + Shift + B Solo comprueba errores de compilación, no publica en el servidor
Paleta de comandos — alternativa
AL: Publish          // equivalente a F5
AL: Publish Without Debugging  // equivalente a Ctrl+F5

Flujo de trabajo típico

Este es el orden habitual al empezar o reanudar el trabajo en cualquier sesión:

  1. Arrancar el contenedor si no está corriendo:
    Administrador: PowerShell
    Start-BcContainer bccontainer
  2. Abrir la carpeta del proyecto en VS Code: Ctrl + K, Ctrl + O
  3. Descargar símbolos si es la primera vez o si BC se actualizó: Ctrl + Shift + PAL: Download Symbols
  4. Escribir código usando snippets (ttable, tpage…)
  5. Publicar y probar con F5
  6. Iterar: corregir errores → publicar de nuevo con Ctrl + F5

Resumen de comandos AL en la Paleta

Comando (Paleta) Atajo Para qué
AL: Go! Crear un proyecto AL desde cero
AL: Download Symbols Descargar los metadatos de BC para IntelliSense
AL: Publish F5 Compilar, publicar y abrir con debug
AL: Publish Without Debugging Ctrl + F5 Compilar y publicar sin debug
AL: Build Ctrl + Shift + B Solo compilar (sin publicar)
AL: Open Designer Abrir el diseñador visual de Pages/Reports
AL: Clear Credentials Cache Borrar las credenciales guardadas si cambiaron

💡 Tips

  • Si IntelliSense no funciona, lo primero es siempre AL: Download Symbols de nuevo.
  • Usa Ctrl + F5 para el 90% de las publicaciones: es más rápido que F5 porque no abre el debugger.
  • Si el nombre del contenedor en launch.json no coincide con el real, nada funcionará. Verifica con Get-BcContainers en PowerShell.
  • Guarda todos los ficheros antes de publicar: Ctrl + K + S.
  • El campo idRanges en app.json reserva los IDs que puedes usar. Para desarrollo propio, usa el rango 50100–50999.
← Volver a Teoría