We are excited to launch the new and expanded version of the Simple Object Designer. Empowering you to customize all areas of your Microsoft Dynamics 365 Business Central in minutes without writing a single line of code.
The expanded version now supports the creation of new tables with UI and business logic. It comes with three templates that enable you to create fully-functional additions to Business Central in minutes.
You can still create fields, add them to pages and reports, expose data as APIs and all other functions that users have come to love with the Simple Object Designer.
If you would like to see a detailed example of the new functionality, the following video goes through the entire process of creating a complete customer customization in 20 minutes.
In this video, Erik introduces the Simple Object Designer for Business Central — an app that lets you customize Business Central without writing a single line of code. Erik walks through the main features, demonstrates how fields are created and transferred across tables, and shows how the tool generates AL code behind the scenes, just as a developer would write it.
What Is the Simple Object Designer?
The Simple Object Designer is an app for Business Central that enables you to customize the system without knowing how to write code. All you need to do is tell the program what you need — just like you would tell a developer. Behind the scenes, the Simple Object Designer writes the AL code exactly as Erik would if he were programming the customization himself.
When you open the Simple Object Designer for the first time, you’ll be taken through a setup process to prepare the designer. After that, you land on the main menu, which presents four major tasks.
Task 1: Add New Fields to Existing Tables
The first capability is adding new fields to existing tables. For example, if you need a new field on the Customer Card:
- Select the Customer table (table 18) — you can search for it by name.
- A field number is assigned automatically.
- Give the field a name (e.g., “Visit Date”) and select the field type (Date, Decimal, etc.).
- Set the caption to something user-friendly.
Placing Fields on Pages
Once the field is created, you can place it on any page where the customer record appears — the Customer Card, Customer List, lookups, statistics pages, and more. The designer analyzes all the pages where the relevant record is used and lets you pick exactly where you want the field to appear.
Transferring Fields Across Tables
A powerful feature is field transfer. Consider this scenario: you have a “Visit Date” field on the Customer table, and when a user creates a Sales Order, you want that value to carry over automatically. The designer handles this seamlessly:
- You specify that the field should transfer to the Sales Header (the data behind the Sales Order) via the “Sell-to” customer relationship.
- If the target table doesn’t have a matching field yet, the designer offers to create it for you.
- You can extend this further — transfer the field to the Shipment Header when shipping, to the Posted Sales Invoice Header when posting an invoice, and to the Posted Credit Memo Header as well.
In Erik’s walkthrough, this resulted in five new fields across five different tables, all configured to flow through the system — without writing a single line of code.
Task 2: Add Existing Fields to Pages and Reports
Sometimes a field already exists in the database but isn’t shown where you need it. The designer lets you surface existing fields on pages:
- Search for the table (e.g., Customer) and select the field (e.g., “Search Name”).
- Choose “Place on Pages” — the designer analyzes all pages that use the Customer record.
- Select the target page (e.g., Customer Card) and specify the position (e.g., “Add after Name 2”).
The same workflow applies for reports. When you place a field on a report, you’re adding it to the report’s dataset. After publishing, you can use Custom Report Layouts to position the field on the printed output.
For reference, here’s an example of the kind of AL code the designer generates — a simple page extension that moves an existing field on the Customer List:
pageextension 50101 PageExtension50101 extends "Customer List"
{
layout
{
moveafter(Name;"Phone No.")
}
}
And here’s an example of a report extension that the designer might scaffold, extending the “Customer – Top 10 List” report with dataset modifications:
reportextension 50100 "test" extends "Customer - Top 10 List"
{
dataset
{
modify(Customer)
{
trigger OnAfterPreDataItem()
begin
end;
trigger OnBeforePreDataItem()
begin
end;
}
}
var
ACS: Codeunit "Sales-Post";
}
Task 3: Expose Data as Web Service APIs
Business Central has always been able to expose pages as web services, but there’s a more efficient option: dedicated API endpoints. This matters for several reasons:
- Performance: API endpoints are much faster than page-based web services, especially when pulling large volumes of data for Excel, Power BI, or other reporting tools.
- Stability: If you expose a standard Microsoft page and Microsoft changes that page in a future version (removing a field or altering behavior), your Power BI reports or integrations could break. A dedicated API endpoint avoids this risk.
Creating an API is straightforward: select a table (e.g., Customer), pick the fields you want to expose (Number, Name, Search Name, City, Net Change, Sales, Profit, etc.), and the designer provides you with the URL to use in Power BI or Excel.
Task 4: Create New Features
The most powerful capability is creating entirely new features inside Business Central. The designer offers three templates:
Data Table
If you need a standalone table with its own data, select the Data Table template. You define the fields, and the designer creates the table, the UI (list page and card page), and an API endpoint if needed — everything required for the table to function properly.
Data Related Table
Think of item attributes — but for any entity. For example, if you wanted to create attributes on customers, you’d use a Data Related Table that’s linked to the Customer table. You define the fields, optionally add a FactBox, and you’re off to the races.
Document Table
This template handles header-and-lines structures, like a Sales Order. While someone might point out that a document is really two tables (or more), you don’t need to worry about that. You define what fields you want and where, and the designer figures out the correct underlying structure. This template also supports posting: you can define both a draft document and a posted document, and the designer will program the posting function to move data from one to the other.
There are dedicated videos on the channel demonstrating each of these feature templates in detail.
Publishing Your Customizations
After defining your customizations, nothing is live yet — you’ve only told the designer what you want. To deploy, you hit Publish and select your target environment. Here’s what happens:
- Code generation: The designer writes all the AL code, structured exactly as a professional developer would write it.
- App file download: An app file is downloaded to your machine. This is useful for sandbox-to-production workflows — develop and test in a sandbox, then upload the app file to production when you’re satisfied.
- Deployment: The app is also deployed directly to the current environment. You can monitor the deployment status on-screen until it shows “Completed.”
All generated extensions follow the standard AL project structure, including a properly configured app.json manifest:
{
"id": "5cf03cc2-18f0-4fc4-b826-122d09ef994a",
"name": "UsingTheDesigner",
"publisher": "Default publisher",
"version": "1.0.0.0",
"brief": "",
"description": "",
"privacyStatement": "",
"EULA": "",
"help": "",
"url": "",
"logo": "",
"dependencies": [],
"screenshots": [],
"platform": "1.0.0.0",
"application": "19.0.0.0",
"idRanges": [
{
"from": 50100,
"to": 50149
}
],
"resourceExposurePolicy": {
"allowDebugging": true,
"allowDownloadingSource": false,
"includeSourceInSymbolFile": false
},
"runtime": "8.0"
}
If you need to make additional changes later, simply modify your definitions and publish again.
Downloading the Source Code
If you reach a point where you need to do something the designer can’t handle, you’re not stuck. You can choose Download the Source, which generates a complete zip file of AL source code. This zip file is ready to hand over to a developer — or, if you’re feeling adventurous, you can open it in Visual Studio Code yourself. The code is written the exact same way it would be if Erik programmed it by hand.
Summary
The Simple Object Designer for Business Central provides four core capabilities: adding new fields to existing tables (with automatic transfer logic across related tables), surfacing existing fields on pages and reports, exposing data as dedicated API endpoints, and creating entirely new features using templates for data tables, related tables, and document structures. Everything is published as a standard Business Central app that can be deployed to sandbox or production environments, and the full source code can be downloaded at any time for further development. The tool is available on AppSource for you to try out.
