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:
- Open the Command Palette (
Ctrl+Shift+P) - Run AL: Go! to create a new AL project
- Choose a name and folder for your project
- 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
| Field | Description |
|---|---|
dependencies | Must include the Aptean Mesh app with the exact id, name, and publisher shown above. The version is the minimum required version. |
application | Must be 26.0.0.0 or higher to satisfy Aptean Mesh requirements. |
runtime | Must be 14.1 or higher. |
idRanges | Your 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. |
resourceFolders | Set to ["resources"] so you can store JSON page definitions as AL resources. |
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.jsondependency block has the correctid,name, andpublisher - Your launch configuration points to the right environment
5. Recommended Project Structure
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
IBCRPC220FDWand 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.