Extension overview and analysis

Normally, it is not possible to get an overview of what is inside the extensions that are installed on Business Central. However, this is possible with AL Code Tracker.

In the AL Code Tracker page, you can click Extension Management:

 

A list of the extensions installed on Business Central displays:

 

In the list, if the extension is under source control on GitHub, the Status is Saved.

If the status is Unaccessible, this means that the source code is not available and the extension cannot be reconstructed unless there is an external copy of the code. If the installation is later upgraded to a new version of Business Central, this often means that the extension will be incompatible, therefore uninstalled, and users will no longer be able to access the data or functionality.

 

In the Extensions page, you can click one of the actions to:

  • Download the source
  • Download the app-file
  • Re-install or install the extension
  • Overwrite the current version of the extension with a previous version
  • View the source code on Git

 

You can also look at the version history and perform one of these actions on an earlier version of the extension by clicking Version History:

 

To get an overview of the code in a selected extension, click Analyze. Alternatively, you can click Analyze All, to get an overview of all extensions. This downloads an Excel file with statistics and information about the code stored in the extension(s).

 

In the Excel file, on the General tab, you can get an overview of:

  • The number of methods in the code and the complexity of the code.
  • Features in the code that are either marked as deprecated in a future version of Business Central or removed, meaning the code will not work if upgraded.
  • Code with write-access to posting tables. Sometimes it is necessary to update fields with extra information in these tables – but inserting new records, tampering with amounts, or deleting records can be against the law and/or used for fraud.

 

 

On the Objects tab, you can see a list of all the methods in the extension(s) and information about them:

  • Lines – a large number of lines often signals complexity.
  • Cyclomatic Complexity – measures the number of execution paths in the code in points. A Cyclomatic Complexity below ten is considered ok. A value above ten signals code that can be hard to read, test and maintain:
    • Assign one point to account for the start of the method
    • Add one point for each conditional construct, such as an “if” condition
    • Add one point for each iterative structure
    • Add one point for each case or default block in a switch statement
    • Add one point for any additional Boolean condition, such as the use of “and” or “or”
  • Hyperlink  – links to the code on Git.

     

 

On the Deprecated tab, you can see a list of the features in the extension(s) that are either removed in the latest version of Business Central or will be in a later version:

  • Construct – the feature
  • Line and Position – the place where the feature is used
  • State – Pending or Obsolete
  • Tag – the Business Central version where the feature was marked deprecated
  • Reason – the reason why the feature was deprecated and what to use instead
  • Hyperlink – a link to the code on Git

 

 

The Access Warning  tab gives you an overview of code with write-access to posting tables:

  • Line and Position – the place where the access is given
  • Table – the table being accessed
  • Access
    • r – read
    • i – insert
    • m – modify
    • d – delete
  • Hyperlink – a link to the code on Git