Skip to main content

Create an AL Project

This guide walks you through creating a new AL extension project that depends on Aptean Mesh, so you can start building mobile pages and services.

1. Scaffold the Project

In Visual Studio Code:

  1. Open the Command Palette (Ctrl+Shift+P)
  2. Run AL: Go! to create a new AL project
  3. Choose a name and folder for your project
  4. Select your Business Central sandbox as the target server

VS Code generates a starter project with app.json, a .vscode/launch.json, and a sample HelloWorld.al file (which you can delete).

2. Add the Aptean Mesh Dependency

Open app.json and add the Aptean Mesh app to the dependencies array. Here is a complete example:

{
"id": "your-unique-app-guid-here",
"name": "MyMeshExtension",
"publisher": "Your Company",
"version": "1.0.0.0",
"application": "26.0.0.0",
"runtime": "14.1",
"platform": "26.0.0.0",
"target": "Cloud",
"dependencies": [
{
"id": "9af7715b-c3c3-44ad-9a3d-b953eab5f6c5",
"name": "Aptean Mesh",
"publisher": "Aptean",
"version": "2601.0.0.0"
}
],
"idRanges": [
{
"from": 50100,
"to": 50149
}
],
"features": [
"NoImplicitWith"
],
"resourceFolders": ["resources"]
}

Key Fields Explained

FieldDescription
dependenciesMust include the Aptean Mesh app with the exact id, name, and publisher shown above. The version is the minimum required version.
applicationMust be 26.0.0.0 or higher to satisfy Aptean Mesh requirements.
runtimeMust be 14.1 or higher.
idRangesYour own object ID range. Choose a range that does not conflict with other extensions in your environment. The example uses 50100..50149, but pick whatever your organization allocates.
resourceFoldersSet to ["resources"] so you can store JSON page definitions as AL resources.
caution

The dependency name is Aptean Mesh (the internal app name), not "Aptean Mesh". The id and publisher must match exactly, or symbol download will fail.

3. Configure the Launch Target

Open .vscode/launch.json and verify it points to your sandbox:

{
"version": "0.2.0",
"configurations": [
{
"name": "My Sandbox",
"request": "launch",
"type": "al",
"environmentType": "Sandbox",
"environmentName": "YourSandboxName",
"server": "https://businesscentral.dynamics.com",
"tenant": "your-tenant-id",
"startupObjectId": 22,
"startupObjectType": "Page",
"breakOnError": "All"
}
]
}

Replace YourSandboxName and your-tenant-id with your actual values.

4. Download Symbols

Run the AL: Download Symbols command (Ctrl+Shift+P -- then type "AL: Download Symbols"). This pulls the Aptean Mesh symbols into your project, giving you IntelliSense for all Aptean Mesh types -- including IBCRPC220FDW, MobileRPCState220FDW, MobileRPCRegistry220FDW, and others.

If the download fails, double-check that:

  • The Aptean Mesh app is installed on the target environment
  • Your app.json dependency block has the correct id, name, and publisher
  • Your launch configuration points to the right environment

Organize your project like this:

MyMeshExtension/
app.json
.vscode/
launch.json
src/
Services/
HelloWorldService.Codeunit.al
resources/
mobilepage/
hello-world.json
  • src/Services/ -- AL codeunits that implement IBCRPC220FDW and handle RPC calls from the mobile client
  • resources/mobilepage/ -- JSON page definitions that describe the UI rendered on the mobile device

Next Steps

Your project is ready. Continue to the Hello World tutorial to create your first service and mobile page.