Extending an Abakion App

Prev

Abakion apps are standard Microsoft AppSource apps built on Business Central. This means you extend them exactly the same way you would extend any other BC app or the base application — using AL extensions with a dependency declaration. This article walks you through the full setup in VS Code.

Prerequisites

Before you start, make sure you have the following in place:

  • VS Code with the AL Language extension installed

  • Access to a Business Central environment (sandbox or on-prem) with the Abakion app installed

  • An AL project initialized (AL: Go!)

Step 1 — Declare the Dependency

Open your project's app.json file and add the Abakion app to the dependencies array. You need the app's id, name, publisher, and minimum version.

"dependencies": [  
{
    "id": "<app-guid>",
    "name": "<Abakion App Name>",
    "publisher": "Abakion",
    "version": "1.0.0.0"
}

You can find the correct id, name, and publisher values in the app's documentation on docs.abakion.com, or by inspecting the installed extension in your BC environment under Extension Management.

Step 2 — Download the Symbols

With the dependency declared, you need to download the app symbols so the AL compiler can resolve the objects defined in the Abakion app.

  1. Open the Command Palette: Ctrl+Shift+P (or Cmd+Shift+P on Mac)

  2. Run AL: Download Symbols

  3. Select your environment when prompted

  4. VS Code will download the symbols for all declared dependencies, including the Abakion app

After the download completes, you should see a .alpackages folder in your project root containing a .app symbol file for each dependency. You are also able to look into the code - just as you are in the Microsoft Business central basic extensions such as System, Application and stuff like that.

Step 3 — Extend the App Objects

You can now reference and extend any extensible objects from the Abakion app — tables, pages, codeunits, reports, and enums — just like you would with base app objects.

Example: Adding a field to an Abakion table

tableextension 50100 MyAbakionTableExt extends "Abakion Table Name"
{
    fields
    {
        field(50100; MyCustomField; Text[100])
        {
            Caption = 'My Custom Field';
        }
   }
}

Example: Adding an action to an Abakion page

pageextension 50101 MyAbakionPageExt extends "Abakion Page Name"
{
     actions
     {
        addlast(processing)
        {

            action(MyCustomAction)
            {
                  Caption = 'My Action';

                    trigger OnAction()
                    begin
                    // your logic here
                    end;
            }
        }
     }
}

Step 4 — Build and Deploy

Build and publish your extension as normal:

  1. Press Ctrl+Shift+B to build

  2. Press F5 to publish and attach the debugger, or use Ctrl+F5 to publish without debugging

Licensing Considerations

Your extension depends on the Abakion app, which means the Abakion app must be installed and licensed in any environment where your extension runs. Keep the following in mind:

  • The end customer must hold a valid license for the Abakion app

  • Your extension does not inherit or transfer Abakion licensing rights

  • If the Abakion app is uninstalled, your extension will fail to install or run

  • For AppSource submissions, declare the dependency in your app's offer metadata as a prerequisite

Tips & Best Practices

  • Pin your minimum version carefully. Setting too low a version may expose you to breaking changes; too high may limit compatibility.

  • Use event subscribers where possible. Many Abakion apps publish integration events — subscribing to these is more upgrade-safe than direct code modifications.

  • Check the changelog. Before updating your dependency version, review the Abakion app release notes to catch any breaking changes early.

  • Test in a sandbox. Always validate your extension against the latest Abakion app version in a sandbox before deploying to production.

Missing an Event? Let Us Know

If you need to hook into a specific point in an Abakion app workflow but the integration event you need does not exist yet, do not work around it with direct code modifications — that will break on upgrades.

Instead, reach out to Abakion and request the event. We continuously extend our apps with new integration events based on partner and customer feedback, and a well-described request is the fastest way to get it into an upcoming version.

What to include in your request

  • Which app and version you are extending

  • Which codeunit, function, or process you need the event on

  • Whether you need a publisher or subscriber pattern — and whether you need to modify parameters or just react to them

  • Your use case — a brief description of what you are trying to achieve

Contact us at docs.abakion.com or reach out directly through your Abakion partner contact. Event requests with a clear use case are typically picked up for the next scheduled release.

Further Reading

If you are new to AL development or want to deepen your knowledge of the Business Central extension model, Microsoft Learn is the official reference. The following resources are the most relevant starting points:

  • Get started with AL — Step-by-step guide to setting up your development environment, creating your first project, and publishing your first extension.

  • Developing extensions in AL — Overview of the AL extension model, object types, and the development experience in VS Code.

  • AL Language reference — Complete reference for AL methods, data types, properties, triggers, and diagnostics.