FAQ
Frequently asked questions about Simple Object Designer.
General Questions
What is Simple Object Designer?
SOD is a low-code/no-code tool for customizing Business Central without writing AL code. It lets you add fields, place them on pages, create features, and expose APIs.
Who is SOD for?
- Business users who need customizations
- Power users and administrators
- Consultants doing rapid implementations
- Partners empowering customers
- Anyone who needs BC customizations without coding
Does SOD replace developers?
For simple to medium customizations, SOD can reduce or eliminate the need for developers. For complex business logic, custom integrations, or enterprise requirements, professional AL development is still needed.
Technical Questions
How does SOD work?
SOD provides a UI for designing customizations. When you publish, it generates standard AL code, compiles it into an extension, and deploys to your BC environment.
Is the generated code standard AL?
Yes. SOD generates standard Business Central AL code that follows Microsoft's best practices. The code can be exported to GitHub and continued in VS Code.
Can I edit the generated code?
Yes, via GitHub integration. However, SOD doesn't read code back, so manual edits won't appear in SOD. If you edit externally, continue development outside SOD.
What happens to my customizations if I stop using SOD?
Your generated extension continues to work. It's a standard BC extension independent of SOD. Only creating new customizations requires an active SOD license.
Licensing Questions
How does licensing work?
SOD uses a per-tenant subscription model. After the trial period, a paid license is required to create or modify customizations.
What happens when the license expires?
Existing customizations continue working. You cannot create new customizations or modify existing ones until you renew.
Can I use SOD in multiple environments?
Yes. One license covers all environments (sandbox and production) within a single BC tenant.
Feature Questions
What can I customize with SOD?
- Add fields to existing tables
- Place fields on pages and reports
- Create mandatory field rules
- Add calculated fields
- Create new feature tables with pages
- Expose tables as APIs
- Expose business logic as APIs
- Create data queries
- Design custom PDF report layouts with the visual designer, report sets, and the AI assistant
What can't I do with SOD?
- Write complex business logic
- Create custom codeunits with code
- Subscribe to events
- Modify standard BC logic
- Create complex workflows
- Create new reports (you extend existing ones)
- Hide fields, or add/move action buttons
- Colour or style field labels
- Consume external APIs
See Limitations for the full list with reasons and alternatives.
Can I delete fields I've created?
Yes, but deleting fields with data requires Force mode and results in data loss. Always backup data first. Remember to remove the field from all page placements, report placements and API endpoints before deleting it — Force Sync does not clean up references, and leftover ones break compilation.
Can SOD auto-fill a field with the current date and time?
No. SOD cannot automatically populate a Date or DateTime field when a record is created or modified, because it does not support event subscriptions or custom trigger logic. This is being considered for a future update.
What you can do instead:
- Manual entry — create the DateTime field and let users fill it in
- A page calculated field — it can display the current date/time when the page is viewed, but it does not store when the record was created, so it cannot serve as a timestamp
- AL development — truly auto-populating on insert or modify needs custom code subscribing to an event such as
OnAfterInsertEventand usingCurrentDateTime. An existing SOD solution can be exported and extended by a developer — see Graduating from SOD and GitHub Overview.
For posted records, note that SystemCreatedAt already holds the moment the record was created.
Can I create my own enumerations (enums)?
No. SOD cannot create new enumerations; the Enum field type only offers enums that already exist in the environment. To define your own list of fixed choices, use an Option field and enter the values as a comma-separated list. This is deliberate, to keep the tool simple.
Can I create table-level calculated fields?
No. Expression-based calculated fields exist only at the page level (and report level), not the table level. A calculated field must be recalculated every time it is accessed, and Business Central only supports recalculation-on-access on pages.
For a table-level computed value, use a FlowField where the calculation fits Count, Sum, Average, Min, Max, Lookup or Exist over a related table. See FlowFields.
Can SOD make a standard page editable so I can correct dimensions?
No. SOD cannot be used to edit dimensions on records. Dimensions are stored as a Dimension Set ID representing a unique dimension combination rather than as directly editable values on the record, which puts them outside what SOD supports — on pages, through web services, and via Edit in Excel alike.
Can I merge two SOD extensions into one?
No. SOD has no merge feature and merging is not a supported operation.
It can be done manually, but it is complicated and error-prone: export the data to a Configuration Package Excel sheet, re-create the fields and tables in the surviving SOD instance, export a new Configuration Package, copy the data between the two sheets by hand, and re-import. Data does not transfer automatically because the two extensions use different object ID ranges and therefore different internal field IDs.
See Environments, Companies and Backup.
Publishing Questions
Why does publishing take time?
Publishing involves code generation, compilation, and deployment. Each step takes time, especially for larger customizations or busy environments.
Why did my publish fail?
Common reasons:
- Configuration errors (check error message)
- Schema conflicts (may need Force Sync)
- Permission issues
- Circular dependencies (use Dual-App)
What is Force Sync?
Force Sync allows destructive schema changes that would normally be blocked. Use carefully as it can cause data loss.
Symbol Questions
What are symbols?
Symbols are metadata describing all objects in BC. SOD downloads them to understand your environment's structure.
Why do I need to download symbols?
SOD needs to know what tables, pages, and reports exist so you can customize them.
When should I re-download symbols?
- After BC platform updates
- After installing new extensions
- When expected objects don't appear
- When SOD prompts you
API Questions
Who can access my APIs?
API access requires:
- OAuth2 authentication
- Valid BC license
- Appropriate BC permissions
Can external systems use my APIs?
Yes. SOD-created APIs are standard OData APIs accessible by Power BI, Power Apps, Power Automate, and other systems.
What's the difference between table APIs and business logic APIs?
Table APIs provide CRUD operations on data. Business logic APIs execute codeunit methods for processes like posting. Note that tables never appear in the Business Logic API list — to expose a table's fields, use Expose data as web service APIs.
Why doesn't my API return all rows, or the newest rows?
SOD-exposed APIs apply no filters or limits of their own. Business Central limits every API call to approximately 20,000 records. A table larger than that returns a truncated set, which is why a consumer can appear to be missing the most recently added rows even though they are plainly visible in the Business Central table view.
Use OData server-driven paging (@odata.nextLink) to retrieve everything. See Consuming APIs.
Can I use deep insert — creating a parent and its child records in one request?
No. SOD APIs do not support the OData $expand structure or deep insert, because the generated pages declare no navigation properties. Create a separate endpoint for the child table and insert its records there.
Can SOD export a MediaSet or Picture field as Base64?
No. Media and MediaSet fields are returned through the API as GUID references, not Base64 image data. MediaSets in particular are considerably more complex than single Media fields, and the conversion is beyond SOD's no-code scope. Exporting media as Base64 — to show an item image in a Power App, for instance — requires AL development. See Graduating from SOD.
Report Layout Questions
Do I still need Word or RDLC layouts?
No — the built-in Report Layout Designer produces PDF layouts entirely inside Business Central. Word, RDLC, and Excel layouts remain fully supported if you prefer them.
Does the AI assistant require a Microsoft Copilot license?
No. The Report Builder Agent connects directly to an AI provider you configure (Azure Open AI, ChatGPT Open AI, Anthropic Claude, or a local LM Studio model) using your own API key. Usage is billed by that provider.
If your organization only has Microsoft Copilot and is not permitted to use it with the agent, you can provision a separate Azure Open AI subscription — or another supported provider — and configure it with your own key. See Report Builder Agent for the Azure endpoint format.
How much do the AI provider charges come to?
Report design work is generally light in token consumption. Building a single report layout typically costs a few dollars in provider token charges; heavy continuous use through a day costs more.
Exact cost depends on the model chosen, the complexity of the report, and how much back-and-forth prompting you do. Because the agent is bring-your-own-key, you pay your provider only for actual usage.
Is the Report Layout Designer included in my SOD license?
The Report Layout Designer (+Reports) is licensed separately. It is free to use in sandboxes, and existing SOD customers get 90 days of free production use.
I already have a licensed SOD — how do I add +Reports?
+Reports is licensed separately. You can use it free in sandboxes, and as an existing customer you get 90 days of free production use.
To enable +Reports for ongoing production use, contact Hougaard sales at sales@hougaard.com to arrange a license swap that adds it to your current SOD license.
Support Questions
Where can I get help?
- This documentation
- Hougaard support forum
- hougaard.com/designer
- Direct support contact
How do I report a bug?
Document the issue with:
- Steps to reproduce
- Error messages
- Environment details
Submit via support channels.
Are there training resources?
Yes:
- This documentation
- Video tutorials at hougaard.com
- Community resources
Migration Questions
Can I migrate SOD customizations between environments?
Yes:
- Download .app file
- Install in new environment
- Or use GitHub for source control
Can I migrate from SOD to VS Code?
Yes, via GitHub integration:
- Push code to GitHub
- Clone in VS Code
- Continue development there
Performance Questions
Does SOD slow down BC?
SOD itself runs when you use it. Generated extensions are standard BC extensions with normal performance.
Are there limits to what I can create?
SOD reserves a 1000-ID-wide block of object IDs for your customizations. For extensive customizations, plan object allocation carefully or contact support.