SOCITAS AL
This is an extension for VSCode which provide AL Extension Templates.
Available Commands
- SOCITAS AL: Create Extension!
- SOCITAS AL: Create CI/CD Files!
- SOCITAS AL: Reset Settings!
- SOCITAS AL: Copy Tooltip Translations (Page -> Table) for active Editor
- Before executing the codeaction (to add translations for the table tooltips) you first need to transfer the tooltips from the pages to the tables. This can be done via the code action: "Convert page tooltip to table field tooltip for..." (This can be accessed by putting the cursor on a current pages tooltip, a light bulb appears which offers those codeaction options)
- It is very important to NOT Sync the XLIFF files before executing the "Copy Tooltip Translations (Page -> Table)" Codeaction, since the page transunits which held the target translation will be lost in the process (copy tooltips won't work then). If you have synced your XLIFF by accident, simply revert the changes in the XLIFF.
- SOCITAS AL: Copy Tooltip Translations (Page -> Table) for Project
- SOCITAS AL: Add translation for current cursors Text
- SOCITAS AL: Download Copilot Instructions
- SOCITAS AL: Create Copilot Instructions
- SOCITAS AL: Get Latest Translations
- SOCITAS AL: Git Init
- currently only Azure DevOps supported
- Executes git init in current active editor and pushes the code to the remote (creating a stage and main branch). Branch Policies and Pipelines will also be added to Azure DevOps
- optionally sets up Weblate localization: turns the app's Translations folder into a submodule of a shared Translations repository, adds the Translations build pipeline, and creates the Weblate project/component
- SOCITAS AL: Add Default Pipelines and Policies to existing Repository
- currently only Azure DevOps supported
- SOCITAS AL: Add Weblate to existing Repository
- currently only Azure DevOps supported
- Applies the same Weblate localization setup (Translations submodule, Translations build pipeline, and Weblate project/component) to a repository that already exists
- SOCITAS AL: Sign In to Azure DevOps
- signs in interactively with your Microsoft account; no Personal Access Token needed
- SOCITAS AL: Sign Out of Azure DevOps
- forgets which account to use for a platform, so the next sign-in asks again
- SOCITAS AL: Install Dev Container Tools
- SOCITAS AL: Uninstall Dev Container Tools
- SOCITAS AL: Switch to own kubernetes namespace
- SOCITAS AL: Normalize LayoutFile paths in AL files
Object ID Management
- SOCITAS AL: Synchronize Object IDs with Azure Back End - Sync your object IDs with the back-end service
- SOCITAS AL: Automatically Synchronize Object IDs for Entire Workspace - Automatically sync all object IDs across the workspace
- SOCITAS AL: Store ID assignment - Store an object ID assignment to the back-end
- SOCITAS AL: Reclaim object ID - Reclaim an unused object ID
- SOCITAS AL: Copy ranges from app.json to .objidconfig - Copy object ID ranges from app.json to configuration
- SOCITAS AL: Consolidate logical ranges - Consolidate and optimize logical ranges
- SOCITAS AL: Expand all - Expand all items in the Range Explorer view
- SOCITAS AL: Collapse all - Collapse all items in the Range Explorer view
- SOCITAS AL: Validate object IDs against license - Check if object IDs are valid according to your BC license
- SOCITAS AL: Select default license for validation - Choose the default license file for validation
- SOCITAS AL: Report consumption - Generate a report of object ID consumption
- SOCITAS AL: Create an App Pool - Create a new application pool for shared object ID management
- SOCITAS AL: Show Release Notes - Display the release notes for the current version
- SOCITAS AL: Go to definition - Navigate to the definition of an object in the Range Explorer
Quickfixes
Add translation
It is now possible to add a translation directly from the opened AL file. Simply press Strg+. while placing the cursor on a tooltip, caption or label and the quickfix "Add translation for label/tooltip/caption" will be available.
Available Settings
| Setting |
Supported Scope |
Default value |
Description |
| socitasAl.extensionDirectory |
|
C:/Temp/ |
Defines the default folder for the created extension. |
| socitasAl.runOnSave |
|
{} |
Specifies the runOnSave settings for SOCITAS AL Extension. See the example below. |
| socitasAl.gitPlatformConnections |
resource |
[] |
List of Git Platform connections for repository management. Each connection requires: • baseUrl: The base URL of your Git platform (e.g., https://dev.azure.com/your-org) • gitPlatform: The platform type (currently supports "AzureDevops") Optional: • tenantId: Microsoft Entra tenant GUID, when the organization needs explicit tenant targeting • user: no longer used, kept for backwards compatibility |
socitasAl.weblateUrl |
string |
|
Base URL of your Weblate instance (e.g. https://weblate.example.com). Required for the Weblate setup in "Git Init" and "Add Weblate to existing Repository". If empty you are prompted on first use and the value is saved to your user settings. |
socitasAl.backEndUrl |
string |
|
URL of the back-end API for object ID management. The API must support the same functionality as https://github.com/vjekob/al-objid/tree/master/azure-function-app. Do not include https:// or leading/trailing slashes. The endpoint must use HTTPS protocol. Examples: my-al-objectid.azurewebsites.net, myids.contoso.com. |
socitasAl.backEndAPIKey |
string |
|
API key used to access the back-end. This key is passed as x-functions-key header to all API endpoints. When using Azure Functions, ensure this is the app key that can authorize access to all individual functions in the app. |
socitasAl.showEventLogNotifications |
boolean |
true |
Show notifications when other developers create objects in the app you are working on. |
socitasAl.useVerboseOutputLogging |
boolean |
false |
Enable very detailed messages in the AL Object ID Ninja output channel for troubleshooting. |
socitasAl.showReleaseNotes |
boolean |
true |
Show release notes when updating AL Object ID Ninja to a new version with important updates. Switch off if you prefer not being interrupted. |
socitasAl.showRangeWarnings |
boolean |
true |
Show notifications when the available range is about to run out. It's recommended to keep this option enabled! |
socitasAl.requestPerRange |
boolean |
false |
Requires that next IDs are retrieved per range. When an app declares multiple ranges, Ninja will suggest the next ID from each range where IDs are available. You can then choose the range from which the ID will be assigned. |
{
"socitasAl.gitPlatformConnections": [
{
"name": "My Azure DevOps",
"baseUrl": "https://dev.azure.com/my-organization",
"gitPlatform": "AzureDevops",
"tenantId": "00000000-0000-0000-0000-000000000000"
}
]
}
tenantId is optional. Set it only when the organization requires sign-in against a
specific Microsoft Entra tenant.
This configuration is used by the following commands:
- "SOCITAS AL: Git Init"
- "SOCITAS AL: Add Default Pipelines and Policies to existing Repository"
- "SOCITAS AL: Add Weblate to existing Repository"
- "SOCITAS AL: Sign In to Azure DevOps"
- "SOCITAS AL: Sign Out of Azure DevOps"
Azure DevOps requests authenticate with your Microsoft account. The first request opens a
browser sign-in; VS Code stores and refreshes the token. The organization must be connected to a Microsoft Entra tenant — organizations that
accept only Microsoft accounts are not supported.
The Weblate setup additionally requires socitasAl.weblateUrl; the Weblate API token is stored securely in VS Code's Secret Storage and prompted on first use.
Socitas AL OnSave Settings Example
"socitasAl.runOnSave": {
"layoutPaths": "Reorganize" // or "DoNothing"
},