Primer Contacto
Inicio de un Proyecto AL
Dificultad: 1/10Antes 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.
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.
Crear el proyecto: AL: Go
Con la extensión AL instalada, abre la Paleta de comandos con Ctrl + Shift + P y escribe:
AL: Go!
VS Code te pedirá:
- Una carpeta de destino donde se creará el proyecto.
- La versión del servidor (elige la que coincida con tu contenedor, normalmente
6.0para BC22+ oLatest).
Esto genera automáticamente la estructura base 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:
{
"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:
{
"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"
}
]
}
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:
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:
📁 .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
serverenlaunch.jsoncoincide exactamente con el nombre de tu contenedor. - Si pide credenciales, usa las mismas que pusiste al crear el contenedor.
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 |
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 |
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:
- Arrancar el contenedor si no está corriendo:
Administrador: PowerShell
Start-BcContainer bccontainer - Abrir la carpeta del proyecto en VS Code: Ctrl + K, Ctrl + O
- Descargar símbolos si es la primera vez o si BC se actualizó: Ctrl + Shift +
P →
AL: Download Symbols - Escribir código usando snippets (ttable, tpage…)
- Publicar y probar con F5
- 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 Symbolsde 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.jsonno coincide con el real, nada funcionará. Verifica conGet-BcContainersen PowerShell. - Guarda todos los ficheros antes de publicar: Ctrl + K + S.
- El campo
idRangesenapp.jsonreserva los IDs que puedes usar. Para desarrollo propio, usa el rango50100–50999.