Skip to content

Repository files navigation

Admin-Toolbox-OnPrem

Overview

The Admin-Toolbox is a comprehensive administrative tool for Microsoft Dynamics 365 Business Central OnPrem environments. It consolidates multiple powerful features from various community contributions into one cohesive application, providing administrators and consultants with essential tools for database management, license administration, backup/restore operations, audit logging, and system maintenance.

Features

This toolbox combines the following features and contributions:

  • Record Deletion Tool by Waldemar Brakowski - Delete transactional data from multiple tables with automatic backup
  • Table Editor by Yuri Mishin - Modify, rename, or delete specific records in any table with full audit logging
  • Table Backup & Restore System - Create, manage, and restore table backups with multiple backup types (JSON Export, Snapshot, Full Backup)
  • Comprehensive Audit Logging - Track all data modifications and deletions with field-level change history
  • Admin Toolbox Dashboard - Monitor recent operations, backups, and audit log activity at a glance
  • View License Information by Waldo - View current license details and permissions
  • Import Licenses by Neil Roberts - Import license files using PowerShell
  • Show Developer License Warning by Yuri Mishin - Alert users when a developer license is active
  • System Information Tables by Waldo - Quick access to useful system tables
  • External Deployment Support by Waldo - Enable app publishing in OnPrem environments
  • Used and Unused Objects by Roberto Stefanetti - Identify which licensed objects are actually used
  • Export Unlicensed Objects by Waldemar Brakowski - List all objects not covered by the current license

Note: This application is designed specifically for OnPrem environments because license information can only be accessed in OnPrem installations and the license import functionality requires DotNet. A SaaS version without the license management features could be created if there is sufficient demand.

⚠️ IMPORTANT WARNING

This app contains very powerful features that can modify or delete data in your database. Use these features with extreme caution!

  • The app includes automatic backup functionality that creates backups before deletion operations (configurable)
  • All operations are logged in the Audit Log with full field-level change tracking
  • Always verify the Admin Toolbox Setup before performing operations
  • Test operations in a development or test environment first
  • Understand the implications of each operation before proceeding
  • Incorrect use may result in data loss or system instability

Table of Contents

  1. Prerequisites and Requirements
  2. Installation
  3. How to Use the Toolbox
  4. How to Install the External Deployer
  5. Support and Contributions


Prerequisites and Requirements

System Requirements

  • Business Central OnPrem version 15.0 or higher
  • The app version in app.json must match your Business Central platform version
  • User must have SUPER permissions to access the Admin Toolbox

Technical Requirements

  • .NET Package: PowerShell Runner DLL matching your BC version (included in powershellrunners folder)
  • PowerShell: Required for license import functionality
  • Database Access: Full read/write permissions to the Business Central database

Supported Languages

The toolbox currently supports the following languages:

  • English (en-US)
  • German (de-DE)
  • Spanish (es-ES)

Note: The Spanish translation was generated using DeepL and may not be 100% accurate. Contributions to improve translations are welcome.


Installation

Follow these steps to install the Admin Toolbox in your Business Central OnPrem environment:

Step 1: Clone or Download the Repository

git clone https://github.com/wbrakowski/Admin-Toolbox-OnPrem.git

Step 2: Configure the App Version

  1. Open app.json in the root folder
  2. Verify that the platform and application versions match your Business Central installation
  3. Update the version numbers if necessary:
    "platform": "27.0.0.0",
    "application": "27.0.0.0"

Step 3: Install the Correct PowerShell Runner

  1. Navigate to the powershellrunners folder
  2. Identify the DLL that matches your Business Central major version:
    • 15_Microsoft.Dynamics.Nav.PowerShellRunner.dll for BC 15
    • 16_Microsoft.Dynamics.Nav.PowerShellRunner.dll for BC 16
    • 17_Microsoft.Dynamics.Nav.PowerShellRunner.dll for BC 17
    • 18_Microsoft.Dynamics.Nav.PowerShellRunner.dll for BC 18
    • 19_Microsoft.Dynamics.Nav.PowerShellRunner.dll for BC 19
    • 20_Microsoft.Dynamics.Nav.PowerShellRunner.dll for BC 20 and higher
  3. Create a folder named .netpackages in the app root directory (if it doesn't exist)
  4. Copy the appropriate DLL to the .netpackages folder
  5. Rename it to Microsoft.Dynamics.Nav.PowerShellRunner.dll (remove the version prefix)

Important: Only one PowerShell Runner DLL should be present in the .netpackages folder to avoid conflicts.

Step 4: Compile and Publish the App

  1. Compile the app using AL Language extension in VS Code or your preferred development tool
  2. Publish the app to your Business Central server:
    Publish-NAVApp -ServerInstance YourServerInstance -Path "path\to\app.app" -SkipVerification
  3. Install the app on your desired companies:
    Install-NAVApp -ServerInstance YourServerInstance -Name "Admin-Toolbox"

Step 5: Verify Installation

  1. Open Business Central Web Client
  2. Search for "Admin Toolbox" using the search function (Alt+Q or Tell Me)
  3. The Admin Toolbox page should appear in the search results

How to Use the Toolbox

Accessing the Admin Toolbox

After successful installation, you can access the toolbox through the search function in Business Central:

  1. Press Alt+Q or click the search icon (🔍) in the top menu
  2. Type "Admin Toolbox" in the search field
  3. Click on the Admin Toolbox page to open it

Search Toolbox

Security Note: Users without SUPER permissions will receive an error when attempting to open the Admin Toolbox page. This is a security measure to ensure only authorized administrators can access these powerful features.

Guided Tour

When opening the Admin Toolbox for the first time, a guided tour will automatically appear to help you understand the available functionalities.

Guided Tour

If you dismiss the guided tour and want to see it again later, simply click on the page caption "Admin Toolbox" to re-enable it.

Toolbox Structure

The Admin Toolbox is organized into four main areas:

  1. How To - Quick link to this documentation
  2. Tables - Record deletion tool and table editor for data management
  3. License Information - View license details, import licenses, and export object lists (OnPrem only)
  4. Information - Quick access to useful system tables and information

Admin Toolbox

The How To section provides a direct link to this README documentation for quick reference.

Howto


Admin Toolbox Dashboard

The Admin Toolbox Dashboard provides a comprehensive overview of recent system activity, backups, and audit logs. This centralized view helps administrators quickly assess system health and recent operations.

Dashboard Features

Activity Statistics:

  • Total Backups: Shows the total number of table backups created
    • Click to drill down to the full backup list
  • Recent Operations: Displays operations performed in the last 24 hours
    • Click to view recent audit log entries
    • Color-coded to highlight recent activity

Quick Information:

  • Last Backup: Shows when the most recent backup was created
    • Helps ensure regular backup practices are being followed
  • Audit Logging Status: Indicates if audit logging is enabled
    • Shows "Active" when audit log entries exist
    • Color-coded for quick status recognition

Direct Actions:

  • View All Backups: Opens the complete Table Backup List
  • View Audit Log: Opens the Audit Log Entries page

Using the Dashboard

The dashboard is designed to provide at-a-glance information about:

  • Backup frequency and coverage
  • Recent system modifications and deletions
  • Overall audit trail health

Use the dashboard as your starting point to:

  1. Verify backups are being created regularly before data operations
  2. Review recent activity for unexpected changes
  3. Monitor audit log activity for compliance purposes
  4. Quickly navigate to backup and audit log management pages

Tip: Keep the dashboard open in a separate tab during major data operations to monitor activity in real-time.


Admin Toolbox Setup

The Admin Toolbox Setup page allows you to configure global settings that control backup behavior, audit logging, and system warnings.

Opening the Setup

From the Admin Toolbox, click Setup to open the configuration page:

OpenSetup

Configuration Options

Backup Settings:

  1. Auto Backup Before Deletion (Default: Enabled)

    • When enabled, automatically creates a backup before deleting records
    • Provides safety net for recovery if deletion was unintended
    • Recommended to keep enabled for production environments
  2. Prompt for Backup (Default: Enabled)

    • When enabled, asks for confirmation before creating auto-backups
    • When disabled, backups are created silently without user interaction
    • Only applies if "Auto Backup Before Deletion" is enabled
  3. Auto Backup Type (Default: JSON Export)

    • Specifies which backup type to use for automatic backups
    • Options:
      • JSON Export: Exports table data as JSON (recommended for most cases)
      • Snapshot: Creates a physical copy of the table in the database
      • Full Backup: Complete backup including all metadata
  4. Backup Retention Days (Default: 30 days)

    • Specifies how long to keep backups before they can be deleted
    • Helps manage database size while maintaining recovery capability
    • Minimum value: 1 day

Audit Log Settings:

  1. Audit Log Retention Days (Default: 90 days)
    • Specifies how long to keep audit log entries
    • Set to 0 to keep audit logs indefinitely
    • Helps manage audit log table size for compliance requirements

Warning Settings:

  1. Developer License Warning (Default: Disabled)

    • When enabled, shows a warning message when opening a company with a developer license
    • Only users with SUPER permissions see the warning
    • Helps prevent accidental use of developer licenses in production
  2. Enable Inline Documentation (Default: Enabled)

    • When enabled, shows contextual help and guidance within pages
    • Provides tooltips, about texts, and usage hints
    • Recommended for new users learning the toolbox

Best Practice Recommendations

For Production Environments:

  • ✅ Enable "Auto Backup Before Deletion"
  • ✅ Enable "Prompt for Backup" (so users are aware backups are being created)
  • ✅ Set "Auto Backup Type" to "JSON Export" (best balance of speed and reliability)
  • ✅ Set "Backup Retention Days" to at least 30 days
  • ✅ Set "Audit Log Retention Days" to meet your compliance requirements (typically 90+ days)
  • ✅ Enable "Developer License Warning" to prevent accidental license issues

For Development/Test Environments:

  • Consider disabling "Prompt for Backup" for faster workflows
  • Lower "Backup Retention Days" to conserve space (e.g., 7-14 days)
  • Lower "Audit Log Retention Days" or disable (set to 0 to keep indefinitely but manually clean up)
  • Enable "Developer License Warning" to ensure correct license usage

Note: Changes to these settings take effect immediately and apply to all users in the system.


Table Backup Management

The Table Backup Management system provides comprehensive backup and restore capabilities for any table in Business Central. This feature is essential for data safety during administrative operations.

Overview

The backup system supports three backup types:

  1. JSON Export: Exports table data in JSON format (recommended for most scenarios)
  2. Snapshot: Creates a physical table copy in the database
  3. Full Backup: Complete backup including all metadata and relationships

All backups are tracked with:

  • Table ID and Name
  • Backup Type and Operation Type (Manual, Before Deletion, etc.)
  • Creation date/time and user
  • Number of records and backup size
  • Restore history

Creating a Backup

From the Table Backup List:

  1. Open Admin ToolboxTable Backups
  2. Click Create Backup
  3. Configure the backup options:
    • Table ID: Select the table to backup (or enter ID directly)
    • Table Name: Automatically filled after selecting Table ID
    • Backup Type: Choose JSON Export, Snapshot, or Full Backup (default: JSON Export)
    • Description: Optional description for this backup
    • Use Filter: Enable to backup only specific records
    • Filter View: Define filter criteria (only if "Use Filter" is enabled)
  4. Click OK to create the backup

The system will:

  • Show a progress dialog during backup creation
  • Count and store the number of records
  • Calculate the backup size
  • Display a success message with the backup Entry No.

Automatic Backups:

Backups are automatically created before deletion operations when:

  • "Auto Backup Before Deletion" is enabled in Admin Toolbox Setup
  • User confirms the backup prompt (if "Prompt for Backup" is enabled)
  • The backup type is determined by "Auto Backup Type" setting

Viewing Backups

The Table Backup List shows all backups with:

  • Entry No., Table ID, and Table Name
  • Backup Type and Operation Type
  • Creation date/time and user
  • Number of records and backup size (KB)
  • Restore status and date (if restored)

Filtering and Sorting:

  • Filter by Table ID to see all backups for a specific table
  • Sort by Backup Date Time to see most recent backups first
  • Filter by Operation Type to see manual vs. automatic backups
  • Filter by Restored status to identify which backups have been used

Restoring a Backup

To restore data from a backup:

  1. Select the backup in the Table Backup List
  2. Click Restore Backup
  3. Review the confirmation dialog showing:
    • Table ID and Name
    • Number of records to restore
    • Backup date/time
  4. Click Yes to confirm restoration

The system will:

  • Show a progress dialog with:
    • Processed count
    • Successfully inserted count
    • Failed count (e.g., due to duplicates or validation errors)
  • Handle errors gracefully (existing records are skipped)
  • Update the "Restored" flag and "Restore Date Time"
  • Display detailed results

Important Notes:

  • Restoration does not delete existing records
  • Records are inserted with RecordRef.Insert(true) to ensure SystemId is set
  • Duplicate records (same primary key) will fail to insert but won't stop the process
  • Partial restoration is possible if some records fail validation

Exporting and Importing Backups

Export to File:

  1. Select a backup in the Table Backup List
  2. Click Export to File
  3. Choose a location and filename (.json format)
  4. The backup data is exported for external storage or transfer

Import from File:

  1. Click Import from File in the Table Backup List
  2. Select the target table for the backup
  3. Choose the .json backup file
  4. The backup is imported and added to the backup list
  5. You can then restore it like any other backup

Use cases:

  • Archiving important backups outside the database
  • Transferring backups between environments
  • Long-term backup retention beyond database retention periods

Managing Old Backups

To clean up old backups:

  1. Click Delete Old Backups in the Table Backup List
  2. Review the count of backups older than the specified retention period (default: 30 days)
  3. Confirm deletion
  4. Old backups are removed to free up database space

Tip: The retention period is configured in Admin Toolbox Setup under "Backup Retention Days"

Backup Best Practices

Before Major Operations:

  • Always create a manual backup before bulk deletions or modifications
  • Use descriptive names in the Description field (e.g., "Before cleaning transactional data")
  • Verify the backup was created successfully (check record count)

Backup Type Selection:

  • JSON Export: Best for most scenarios - fast, compact, portable
  • Snapshot: Faster restore but requires more database space
  • Full Backup: Most comprehensive but slower and larger

Regular Maintenance:

  • Review backup list periodically
  • Export critical backups to file for long-term storage
  • Delete old backups that are no longer needed
  • Monitor backup sizes to manage database growth

Audit Log

The Audit Log system provides comprehensive tracking of all data modification and deletion operations performed through the Admin Toolbox. Every operation is logged with full field-level change history for compliance and auditing purposes.

Overview

The audit log captures:

  • Operations: Insert, Modify, Delete, Bulk Delete, Bulk Modify
  • Field Changes: Old value → New value for every modified field
  • Metadata: Date/time, user, table, status, duration
  • Related Backups: Links to backups created before operations
  • Results: Records affected, records failed, error messages

All Table Editor operations (Modify, Rename, Delete) automatically create audit log entries with field-level change tracking.

Viewing the Audit Log

Open the Audit Log from:

  • Admin Toolbox Dashboard → Recent Operations (drilldown)
  • Admin Toolbox → View Audit Log action
  • Direct search: "Audit Log Entries"

The Audit Log Entries page displays:

  • Entry No. and Date/Time (color-coded by recency)
  • Operation Type (color-coded)
  • Table ID and Table Name
  • User ID
  • Status (Success, Failed, In Progress) - color-coded
  • No. of Records Affected (color-coded by volume)
  • No. of Records Failed (color-coded if failures exist)
  • No. of Fields Changed
  • Backup Created indicator
  • Duration in milliseconds
  • Description and Triggered By information

Viewing Field Changes

To see detailed field-level changes for an operation:

  1. Select an audit log entry
  2. Click View Field Changes or use the FactBox
  3. The Field Change History shows:
    • Field No., Field Name, and Field Caption
    • Old Value and New Value
    • Date/Time and User ID
    • Record ID and Primary Key Value

Field Change History FactBox:

  • Automatically displayed on the right side of the Audit Log Entries page
  • Shows all field changes for the selected audit log entry
  • Drill down to see full details

Use Cases:

  • Track what changed when modifying records in bulk
  • Identify which fields were updated during a rename operation
  • Audit user actions for compliance requirements
  • Troubleshoot unexpected data changes

Viewing Related Backups

If a backup was created before an operation:

  1. The "Backup Created" field shows ✓ (checkmark)
  2. Click View Related Backup to open the backup card
  3. From there, you can restore the backup if needed

This linkage ensures you can always recover data if an operation had unintended consequences.

Audit Log Card

Double-click any audit log entry to open the Audit Log Entry Card with complete details:

General Information:

  • Entry No., Operation Type, Table ID/Name
  • Date/Time, User ID, Company Name
  • Triggered By (source of the operation, e.g., "Table Editor")

Results:

  • Status (Success/Failed/In Progress)
  • No. of Records Affected
  • No. of Records Failed
  • No. of Fields Changed
  • Duration (ms)
  • Error Message (if failed)

Related Records:

  • Backup Created indicator
  • Backup Entry No. (clickable to view backup)
  • Record ID and Primary Key Value (for single-record operations)

Description:

  • Detailed description of the operation (e.g., "Modified field Customer Name to value ABC Ltd")

Filtering and Analysis

Common Filters:

  • By Date/Time: Find operations in a specific timeframe
  • By User: See what a specific user has done
  • By Table: View all operations on a specific table
  • By Status: Find failed operations that need attention
  • By Operation Type: Focus on deletions or modifications

Drill-Down Analysis:

  • Click on "No. of Records Affected" to see field changes
  • Click on "No. of Fields Changed" to see what changed
  • Click on "Backup Entry No." to view the related backup

Exporting Audit Log to Excel

To create an Excel report of audit log entries:

  1. Filter the audit log entries as desired
  2. Click Export to Excel
  3. Choose a filename and location
  4. Excel file includes:
    • Entry No., Date/Time, Operation Type
    • Table ID, Table Name, User ID
    • Status, Records Affected, Records Failed
    • Fields Changed, Backup Created indicator
    • Duration, Description, Triggered By, Error Message

Use for:

  • Compliance reporting
  • Management summaries
  • Long-term archival
  • External audits

Deleting Old Audit Log Entries

To manage audit log table size:

  1. Click Delete Old Entries in the Audit Log Entries page
  2. Entries older than "Audit Log Retention Days" (from Admin Toolbox Setup) will be deleted
  3. Confirm deletion
  4. Old entries are removed

Important: Deleted audit log entries cannot be recovered. Export to Excel first if you need to archive them.

Retention Policy Recommendations:

  • Financial/Regulated Industries: 90+ days (or longer per compliance requirements)
  • Standard Operations: 30-90 days
  • Development/Test: 7-30 days (or set to 0 for indefinite retention with manual cleanup)

Audit Log Integration

The audit log integrates seamlessly with the Admin Toolbox:

Table Editor:

  • Modify Records: Creates "Bulk Modify" audit log with all field changes
  • Rename Records: Creates "Bulk Modify" audit log tracking primary key changes
  • Delete Records: Creates "Bulk Delete" audit log (future enhancement)

Table Backup:

  • Backups created before operations are linked in the audit log
  • Use "View Related Backup" to access the backup from the audit log

Admin Toolbox Dashboard:

  • Shows recent operations count (last 24 hours)
  • Provides quick drill-down to recent audit log entries

Audit Log Best Practices

For Compliance:

  • Set appropriate retention periods in Admin Toolbox Setup
  • Export audit logs to Excel regularly for external archival
  • Review audit logs after major operations
  • Monitor failed operations for system issues

For Operations:

  • Check audit log before restore to understand what changed
  • Use field change history to verify modifications were correct
  • Review audit log after bulk operations to confirm results
  • Monitor duration to identify performance issues

For Security:

  • Review audit log for unauthorized changes
  • Filter by user to audit specific user actions
  • Monitor operations performed outside business hours
  • Track who performed sensitive operations

Record Deletion Tool

The Tables area shows you all the tables in the system except the system tables.
It also contains functionalities to delete records from these tables.

Part of the following descriptions were copied from Olof Simren's original post for the Record Deletion Tool.
He created the original version for Microsoft Dynamics NAV.
I rebuilt the tool and added some new functions to it.

This data deletion tool is useful if you want to 'clean' a company from transactional data.
It could for example be that you have been testing transactions in a company that you want to use for a go-live.
It is also useful if you just want to have a clean company without transactions for a demo, training or testing session.

Use the PageAction "Insert/Update Tables". This will populate the list with all the tables that are in the database.
The "Insert/Update Tables" function will be automatically executed the first time you open the page.
System tables are excluded here. If you afterwards add new tables you can run this function again to have them added.

InsertTables

After you used the function, the tables are now available in the list.

TableList

Then you go through and select the tables you want to delete records from by checking the "Delete Records" field.
The PageActrion "Suggest Records to Delete" can suggest records for you to delete by providing you with these two options:

  • Suggest all transactional records to delete
  • Suggest unlicensed partner or custom records to delete

SuggestOptions

Use the first option to select the tables you typically want to delete records from when cleaning a company from transactional data.

Use the second option to suggest unlicensed partner or custom records to delete.
This may be useful if you used a developer license in the system at some point and created records with that license.
Now you want to switch back to the customer license and have errors in the system because of these still existing records. Note: This second option must be used with the customer license.
If the tool detects that you are currently using a developer license, it will ask you if you want to import a customer license instead.
DeveloperLicenseIsImported

After you have suggested the records, you need to import the developer license to delete the records.
ImportAnotherLicense

Note that the suggestion of tables may be incomplete or the logic faulty, but for my cases it worked.
You should always check the suggested records manually afterwards and select additional tables if necessary!

Also note that I am not responsible if this suggestion selects something you don’t want to delete or skips something that you do want to delete.

SuggestRecords

Use the "Clear Records to Delete" function to remove all the selections.

ClearRecords

When you are happy with the selection you press "Delete Records".
Business Central now goes through the tables and deletes all records from each of the selected tables.
It might make sense to do a backup of the data before you do this.

I typically just copy the company before this step, so at least you have a company that can easily be restored or copy/paste data from.

DeleteRecords

Note that you can delete records either by running the deletion trigger or not.
The default option is to delete records without using the deletion trigger.

DeleteOptions

Before the deletion is being executed, you get an information how many tables were marked for deletion.

TablesMarked

After pressing "Yes", you can watch the system do its work.

DeletingRecords

...and you get a success message after the operation has finished.

DeleteSuccess

Note that the field "No. of Records" is updated after the operation.

NoOfRecords

After the records have been deleted it is recommended to review the tables that still have data in them to make sure you have not missed anything.
The easiest way to do this is to just apply a filter on the "No. of Records" field to be <>0.

NoOfRecordsFilter

Use the "View Records" function to view the records in the tables.
When selecting "View Records" the table will be run to show all the records and all the fields, like below.

ViewRecords

ViewRecordsList

When looking at the records it is typically quite easy to see if they should have been deleted or not.
If the records has an entry number, document number, etc. it is most likely transactional data that should be deleted.
The number of records in the table could sometimes also give you a hint if it should be deleted or not.

The next option when reviewing the remaining data is to use the "Check Table Relations" function.
This function runs through all records and uses the field relations defined in the table "Field" in Business Central to validate the table relations.
It does so by just looking if the related record is in the database or not.

Note that this only checks the very basic relations where a field has a table relation to a field in another table.
This is similar to the table relations you find in the FactBox in the configuration worksheet.
It does not check table relations that involve multiple fields or conditional table relations.
It is still a good check I think.

CheckTableRelations

As this is a time consuming operation, you need to confirm before the table relations are being checked.

CheckTableRelationsConfirm

Watch the system work.

CheckingRelations

After the check on the table relations has run you can set a filter on the "No. of Table Relations Errors" to be <> 0.
You should then see if there are any basic table relation errors.

NoOfErrorsFilter

If there are any errors you can make a drilldown on the number to see the errors.

ErrorsDrilldown

These are the table relation errors in my example:

DrilldownExample

As mentioned above, the table relation check is only doing a basic check, so don’t rely too much on it.
If you have a large amount of master data it might also take a while to run.

Table Editor

The Table Editor is a powerful tool that allows you to modify, rename, or delete specific records in any table. This is useful for data corrections, testing, and troubleshooting scenarios. All operations are automatically logged in the Audit Log with full field-level change tracking.

Credit: Special thanks to Yuri Mishin, who programmed the main functionality of this table editor.

Opening the Table Editor

Select any table in the table overview and click the Edit Table action.

SelectRecordsAndEditTable

Table Editor Interface

The table editor provides the following configuration options:

TableEditorFields

  1. ID: The table you want to edit (pre-selected from the table overview)
  2. Use Trigger: When enabled, OnModify/OnDelete triggers will fire during operations
  3. View: Opens a filter dialog to select which records to modify or delete
  4. No.: Select the field you want to modify in the filtered records
  5. Value: The new value to assign to the selected field
  6. Validate: When enabled, the OnValidate trigger of the field will fire during modification

Using the Table Editor

To Delete Records:

  1. Set the ID field to your target table
  2. Click View to filter the records you want to delete
  3. Decide whether to enable Use Trigger (recommended for referential integrity)
  4. Click Delete Table Records
  5. Confirm the operation

DeleteModifyRecords

TableEditorDeleteRecords

Note: Delete operations create an audit log entry. A backup can be automatically created before deletion if configured in Admin Toolbox Setup.

To Modify Records:

  1. Set the ID field to your target table
  2. Click View to filter the records you want to modify
  3. Select the field No. you want to change
  4. Enter the new Value
  5. Decide whether to enable Validate (recommended to maintain business logic)
  6. Decide whether to enable Use Trigger
  7. Click Modify Table Records
  8. Confirm the operation

TableEditorModifyRecords

New: Modify operations automatically create an audit log entry showing:

  • Which field was modified
  • Old value and new value for every modified record
  • Total number of records modified
  • User and timestamp

View these changes in the Audit Log Entries page.

To Rename Records (Change Primary Key):

The Table Editor also supports renaming records, which means modifying primary key fields:

  1. Set the ID field to your target table
  2. Click View to filter the records you want to rename
  3. Select the primary key field in the No. field
  4. Enter the new primary key Value
  5. Click Rename Table Records (this action appears when editing a primary key field)
  6. Confirm the operation

New: Rename operations automatically create an audit log entry showing:

  • Which primary key field was renamed
  • Old value and new value for each renamed record
  • Total number of records renamed
  • User and timestamp

Audit Log Integration

Every Table Editor operation is automatically tracked:

Modify Table Records:

  • Operation Type: "Bulk Modify"
  • Logs all field changes across all modified records
  • Shows old value → new value for each field that changed
  • Includes validation errors if any occur

Rename Table Records:

  • Operation Type: "Bulk Modify"
  • Logs primary key field changes
  • Shows old key → new key for each renamed record
  • Tracks any additional field changes that occur during rename

Delete Table Records:

  • Operation Type: "Bulk Delete"
  • Logs number of records deleted
  • Links to backup if auto-backup was enabled
  • Records table, user, timestamp, and description

Best Practices

Before Modifying:

  • Enable Use Trigger when deleting to respect referential integrity
  • Enable Validate when modifying to ensure business rules are applied
  • Use specific filters to avoid affecting unintended records
  • Test complex modifications on a single record first
  • Review the audit log after modifications to verify changes

After Operations:

  • Check the Audit Log to verify the operation completed successfully
  • Review field changes to ensure modifications were as intended
  • Export audit log to Excel for documentation if needed
  • Use "View Related Backup" if you need to restore data

Safety Measures:

  • Always test in a non-production environment first
  • Ensure backups exist (manual or automatic) before major operations
  • Use filters carefully to target only the intended records
  • Review record count before confirming operations
  • Monitor the audit log for unexpected changes

⚠️ Warning: The Table Editor directly manipulates database records. Combined with the Audit Log, you have full traceability, but prevention is always better than recovery. Use with caution!


Publishing & Installing Apps

The Admin Toolbox enables app publishing in OnPrem environments through integration with the External Deployer. This functionality is disabled by default in Business Central OnPrem installations but can be activated following the setup process.

Prerequisites

Before you can publish apps, you must install the ALOps External Deployer. See the How to Install the External Deployer section at the end of this documentation for detailed instructions.

Publishing an App

  1. Click the Publish and Install App action in the Admin Toolbox
  2. A dialog will appear with two options:

PublishApp

PublishAppDialog

Option 1: Learn how to install the external deployer

  • Opens the installation guide in a new tab
  • Follow this option if you haven't installed the deployer yet
  • Installing the deployer is a one-time setup process

Option 2: Continue publishing app

  • Proceeds directly to the app publish dialog
  • Only use this if you've already installed the External Deployer
  • Without the deployer installed, publishing will fail with an error

Upload and Deploy

Once the External Deployer is installed, selecting "Continue publishing app" opens the standard Business Central app upload dialog:

UploadAndDeploy

From here you can:

  1. Select your .app file
  2. Choose whether to install the app immediately
  3. Select target companies (if applicable)
  4. Complete the deployment

Note: The External Deployer must be properly configured and the NST service restarted before app publishing will work. See the installation guide below for details.


License Overview and Import

The License Information section provides visibility into your current Business Central license and allows you to import new license files.

Viewing License Information

The license area displays detailed information about your active license using data from the system table "License Information".

License

The display includes:

  • License holder information
  • Licensed database name
  • Expiration dates
  • Granule information
  • Object range permissions

Developer License Indicator

A dedicated field shows whether your current license is a developer license:

DeveloperLicense

This indicator is useful for:

  • Verifying you're using the correct license type
  • Avoiding accidental development in production environments
  • License compliance checks

Importing a New License

To import a new license file:

  1. Click ManageImport License in the License Information section

ImportLicense

  1. Select your license file (.flf format) from the file browser

SelectLicense

  1. The license will be imported and the NST service will be restarted automatically
  2. The license information will update to reflect the new license

Important: Importing a license requires PowerShell integration and the appropriate PowerShell Runner DLL. License imports will restart the Business Central service, temporarily disconnecting all users.

Best Practices:

  • Always backup your current license file before importing a new one
  • Import licenses during scheduled maintenance windows to minimize user impact
  • Verify the new license information after import to ensure it loaded correctly
  • Keep a copy of all license files in a secure location

Export License Object Information

The Admin Toolbox provides powerful reporting capabilities to analyze your license and identify which objects are used or missing in your license.

Export Used and Unused Objects in License

This report helps you identify which objects in your license are actively used and which are free/available for use. This is particularly useful for:

  • License optimization and planning
  • Identifying free object IDs for custom development
  • Understanding license utilization

To run the report:

  1. Go to the License Information section in the Admin Toolbox
  2. Click on ManageExport Used and Unused Objects in License
  3. Configure the report options:
    • Object Type: Filter by specific object types (Table, Page, Codeunit, etc.) or leave blank for all types
    • Object ID Filter: Specify a range of object IDs (e.g., "50000..59999") or leave blank for all objects
    • Only Free Objects: Check this to export only unused/free objects in your license
    • Used: Select whether to include used objects, unused objects, or both

The report generates a list showing:

  • Object Type
  • Object ID
  • Object Name
  • Used status (Yes/No)

This information can help you identify which license granules are being utilized and which object ranges are available for customization.

Export Unlicensed Objects

This report identifies all objects in your database that are not covered by the current license. This is critical for:

  • License compliance auditing
  • Identifying objects that need licensing before go-live
  • Troubleshooting permission errors related to unlicensed objects

To run the report:

  1. Go to the License Information section in the Admin Toolbox
  2. Click on ManageExport Unlicensed Objects
  3. Configure the report options:
    • Object Type: Filter by specific object types or leave blank for all types
    • Object ID Filter: Specify a range of object IDs or leave blank for all objects

The report generates a list showing:

  • Object Type
  • Object ID
  • Object Name

Important: This report is especially useful when switching from a developer license to a customer license. It helps identify custom objects that were created under the developer license but are not included in the customer license, which could cause runtime errors.


Links to Informational Tables

The Information section provides quick access to useful system tables that are not typically available through the standard Business Central interface. These tables contain valuable diagnostic and system information.

Credit: This feature is inspired by Waldo's blog post about accessing system information tables.

Information

Available System Tables

The Information section provides clickable links to the following system tables:

Session Information:

  • Active Session: View all active user sessions and their details
  • Session Event: Review session-related events and activities
  • Session Information: Detailed information about current sessions

Metadata:

  • Table Metadata: Information about all tables in the database
  • Codeunit Metadata: Details about codeunits and their properties
  • Page Metadata: Information about pages and their structure

Objects:

  • All Objects: Complete list of all objects in the system
  • Field: Field definitions and properties across all tables
  • Key: Table key definitions and configurations

API:

  • API Webhook Subscription: Registered webhook subscriptions
  • API Webhook Notification: Webhook notification history and status

License:

  • License Permission: Detailed object permissions granted by the license

Other:

  • Record Link: Record links and attachments throughout the system

Using the Links

Click any link to open the corresponding table in a new browser tab:

SessionInformation

The table opens with full access to all records and fields:

SessionInformationTable

Common Use Cases:

  • Active Session: Monitor who is currently connected and what they're doing
  • Session Event: Troubleshoot user session issues and track activities
  • Table/Page/Codeunit Metadata: Understand database structure and object relationships
  • Field table: Review field properties, types, and relations
  • API Webhook: Monitor and troubleshoot API integrations
  • License Permission: Verify which objects are covered by your license

Show Developer License Warning

The Developer License Warning feature helps prevent accidental use of developer licenses in test or production environments by displaying an alert when users open the company.

Configuring the Warning

To enable this feature, open the Admin Toolbox Setup page:

OpenSetup

In the setup page, enable the Developer License Warning field:

DeveloperLicenseWarning

How It Works

When the warning is enabled and a developer license is detected:

  • Users with SUPER permissions will see an alert message when opening the company
  • The warning appears automatically on the OnCompanyOpen trigger
  • This helps prevent unintended development or data creation with a developer license

DeveloperLicenseWarningMsg

Use Cases

Test Environments:

  • Enable this warning to ensure the correct license is always active
  • Prevents accidental import of developer licenses in test systems
  • Helps maintain consistent testing conditions

Production Environments:

  • Acts as a safety check if a developer license is mistakenly imported
  • Alerts administrators immediately to the license mismatch
  • Helps maintain license compliance

Transition Scenarios:

  • Useful when switching between developer and customer licenses during development cycles
  • Ensures team members are aware of the current license state

Note: Only users with SUPER permissions will see this warning. Regular users will not be affected. The warning is informational only and does not prevent system use.


How to Install the External Deployer

The External Deployer enables app publishing functionality in OnPrem Business Central environments by simulating the SaaS app deployment behavior.

Credit: The following instructions are based on Waldo's blog post about enabling External Deployment in OnPrem Business Central environments.

Important Disclaimer

? Please read carefully before proceeding:

The External Deployer is an unofficial tool that simulates SaaS extension deployment behavior in OnPrem environments. Please note:

  • This tool is provided "as is" without official Microsoft support
  • It replicates what occurs when uploading extensions through the Automation API in SaaS
  • The tool depends on Business Central's architecture and may require updates with new BC versions
  • It works only on standard Business Central installations (not copy/paste or non-standard setups)
  • Feedback and issues should be reported through the ALOps GitHub repository

Installation Steps

The External Deployer is installed using a PowerShell module. Run these commands on the server hosting your Business Central NST (Server Tier).

Step 1: Install the PowerShell Module

Open PowerShell as Administrator and run:

Install-Module ALOps.ExternalDeployer -Force

This downloads and installs the ALOps.ExternalDeployer module from the PowerShell Gallery.

Step 2: Import the Module

Load the module into your PowerShell session:

Import-Module ALOps.ExternalDeployer

This makes the External Deployer commandlets available in your current session.

Step 3: Install the External Deployer Agent

Install the agent that handles app publishing:

Install-ALOpsExternalDeployer

This installs a background agent that intercepts app upload requests through the Automation API and handles the actual publishing and installation.

Step 4: Link to Your NST Instance

Configure your Business Central server instance to use the External Deployer:

New-ALOpsExternalDeployer -ServerInstance BC

Important: Replace BC with your actual server instance name. Common names include:

  • BC or BC240 (version-specific)
  • MicrosoftDynamics365BusinessCentral
  • Your custom instance name

This command:

  • Updates the NST configuration with External Deployer settings
  • Automatically restarts the NST service
  • Applies the changes immediately

Verification

To verify the installation was successful:

  1. Go to the Admin Toolbox
  2. Click Publish and Install App
  3. Select "Continue publishing app"
  4. If the upload dialog appears, the External Deployer is working correctly

Troubleshooting

Problem: Upload fails or times out

  • Solution: Verify the NST service restarted successfully after installation
  • Check Windows Event Viewer for NST-related errors

Problem: "External Deployer not configured" error

  • Solution: Re-run Step 4 with the correct server instance name
  • Verify you have administrator rights on the server

Problem: Changes not taking effect

  • Solution: Manually restart the Business Central service
  • Clear browser cache and reconnect

Support and Contributions

Getting Help

If you encounter issues or have questions about the Admin Toolbox:

  1. Check the Documentation: Review this README for usage instructions and troubleshooting
  2. GitHub Issues: Open an issue on the GitHub repository
  3. Community Forums: Ask questions on the Business Central community forums

Contributing

Contributions to improve the Admin Toolbox are welcome! Here's how you can help:

Bug Reports:

  • Open a GitHub issue with a clear description of the problem
  • Include BC version, app version, and steps to reproduce
  • Provide error messages and screenshots if applicable

Feature Requests:

  • Suggest new features through GitHub issues
  • Explain the use case and expected behavior
  • Consider whether the feature fits the OnPrem focus of the tool

Code Contributions:

  • Fork the repository and create a feature branch
  • Follow existing code style and AL best practices
  • Test your changes thoroughly before submitting
  • Submit a pull request with a clear description of changes

Translation Improvements:

  • The Spanish translation needs review and corrections
  • Additional language translations are welcome
  • Submit updated .xlf files through pull requests

Acknowledgments

This project combines contributions from several talented developers in the Business Central community:

  • Olof Simren - Original Record Deletion Tool for NAV
  • Yuri Mishin - Table Editor and Developer License Warning
  • Waldo (Eric Wauters) - License Information, System Tables, External Deployer
  • Neil Roberts - PowerShell License Import
  • Roberto Stefanetti - Used/Unused Objects Analysis
  • Waldemar Brakowski - Integration, enhancements, Table Backup System, Audit Logging, and maintenance

Thank you to everyone who has contributed to making this tool valuable for the Business Central community!

License

This project is released under the MIT License. See the LICENSE file for details.


Version: 27.0.0.0 (BC27 v2) Last Updated: December 25, 2025 Major Features in This Release:

  • ✨ Comprehensive Table Backup & Restore System with 3 backup types
  • ✨ Complete Audit Logging with field-level change tracking
  • ✨ Admin Toolbox Dashboard for activity monitoring
  • ✨ Enhanced Table Editor with Rename functionality and audit integration
  • ✨ Automatic backups before deletion operations (configurable)
  • ✨ Full Admin Toolbox Setup page with retention policies
  • ✨ Multi-language support: English, German, Spanish

Repository: https://github.com/wbrakowski/Admin-Toolbox-OnPrem

About

The Admin Toolbox is a Business central App. It can delete records, view license information and import licenses, hyperlinks to informational tables.

Topics

Resources

Stars

18 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages