AL ID Range Manager (VS Code extension)
This VS Code extension provides quick and centralized object id assignment using any API (for example Microsoft Dynamics 365 Business Central API). The corresponding Microsoft Dynamics 365 Business Central extension that support all processes is also on GitHub: https://github.com/TKapitan/ALRM-BusinessCentral.
Creates an extension record in connected Business Central instance. Id, name and brief from the app.json file in the currently selected workspace are stored in BC.
Based on setup (see Extension Setting) range code may be required during the initialization process. Different object ranges can be specified for range codes in BC. There is also an option to choose a prefix to check all object names before a new id is assigned.
Synchoronize is a command that scan all AL files in the project and register all of existing objects (and fields for table and enum extensions). The extension has to be initialized first, than it is possible to run this command (may taky up to 10 minutes based on number of existing AL objects.).
The project has to met all defined rules on corresponding Assignable Range (object ID range, field ID range, object name structure and object ID and name uniqueness). If there are any error, other objects are synchronized and all errors are showned to the user once the synchronization ends.
The project (all objects) is scanned each time the command is run. The scanning and registering are done synchronously. Deleting of object field/values or deleting of objects is not supported.
ALRM: New object
Creates object record of selected type and name in connected Business Central instance. New untitled file is created and initialized with corresponding standard AL language object snippet and object id assigned by BC.
Since v0.3.1 the command filter object types based on runtime version specified in app.json (users are not able to choose object type that is not available for project runtime).
ALRM: New object extension field or value
Creates an extension object line record in connected Business Central instance. Only usable in table extensions and enum extensions. Creates a new field or enum value at current cursor position with id provided by BC.
ALRM: Switch object IDs (BETA)
Allows to automatically switch IDs for all objects and table/enum extensions. The extension must have alternate assignable range assigned in ALRM for Business Central. Using this command, you can freely switch ID ranges between two different ranges (for example one for ONPREM range and another for CLOUDONLY range).
Available since v0.6.1 and works with ALRM Business Central extension version 0.1.7.0.
ALRM: Clear credentials (oauth)
Clears cached oauth credentials.
To use this VS Code extension, you must set API connection to the backend system that store, validate & manage all extension objects & fields details.
We prepared Microsoft Dynamics 365 Business Central Extension that met all requirements and is designed to work together with this VS Code extension. The source codes could be found on GitHub: https://github.com/TKapitan/ALRM-BusinessCentral
However, this VS Code extension could be used with your own backend side, created in the Business Central or using any other programming language.
Cloud API type and Oauth authentication were added to support connecting to cloud BC.
With Cloud API type you are no longer required to specify Base Url Without Version, url will now be created automatically using the specified Tenant, Environment, Version, and optionally Company Id.
Oauth is implemented using the Device Authorization Grant that should be familiar to everyone developing or debugging on cloud BC instances. You will be prompted to open your browser, enter a short code, and log in using your Microsoft account.
Currently, the app is using hard-coded app registration. To use it, you will most likely must first grant admin consent. You can do that using this link. Would you like to use your own app? Submit an issue (or a PR) to add it.
For list of minor issues and upcoming changes see https://github.com/TKapitan/ALRM-VSCode/blob/master/CHANGELOG.md#unreleased