Publish Overview
Publishing is how you deploy your customizations from SOD to Business Central. This page explains the publishing process and options.
What Publishing Does
When you publish:
- Generate - SOD generates AL source code from your configuration
- Compile - The code is compiled into an extension package (.app)
- Deploy - The package is installed in your BC environment
- Activate - Your customizations become live
Publishing Methods
Publish or Download
When you click Publish, SOD asks whether to install the generated app in the current environment or just download the .app file:
- Yes — publish (install) to this environment.
- No — download the generated
.appfile so you can install it manually in another environment.
There is no separate "Download App" action — the choice is presented during the Publish flow.
Download Source
Use the Download Source action (on the Setup page) to download a ZIP archive of the generated AL source code. This is a separate operation from the publish flow.
It is also the artifact support asks for when diagnosing a publish or package validation failure — email the ZIP to support@hougaard.com, renaming it to .txt if attachment filtering blocks it.
On BC27, the publishing screen may appear to freeze. This is a Microsoft bug in that BC27 version, not a problem with SOD or your app, and publishing usually completes successfully anyway. Confirm by opening Extension Management and checking that the app version incremented. A workaround ships in a later AppSource release — see Publishing Failures.
Two things get published
Publishing compiles your configuration into a generated customer app — typically named something like "My Customizations". This is a separate extension from the Simple Object Designer app itself, and the distinction matters when something you created does not show up somewhere.
Verifying that Simple Object Designer is installed proves nothing about your objects. Open Extension Management and confirm that your generated customer app appears and is marked Installed. The publish action's confirmation is shown on the Business Central extension installation page.
Published SOD queries and APIs then appear in the Power BI connector under the Advanced APIs sub-folder, following the pattern <publisher>/SOD/v2.0. If the app is installed and demonstrably contains the new API or query, the Business Central side is correct — look at the client next. See Consuming APIs.
GitHub Push
If GitHub integration is configured, generated source is pushed to your repository as part of the publish flow. There is no separate "Publish to GitHub" action — set GitHub Integration Mode to Source Repository/AL-Go! and the GitHub commit happens automatically when you publish.
Accessing Publish
From Main Menu
- Open Simple Object Designer main menu
- Click Publish in the action bar
From Other Pages
Some pages provide publish shortcuts:
- After completing wizards
- From feature pages
The Publish Process
Step 1: Validation
SOD validates your configuration:
- Field definitions
- Page placements
- Feature structures
- API configurations
Errors must be fixed before publishing.
Step 2: Code Generation
SOD generates AL code:
- Table extensions
- Page extensions
- Report extensions
- New objects (features, APIs)
Step 3: Compilation
The generated code compiles:
- Legacy compiler or Microsoft compiler
- Creates .app package
- Reports any compilation errors
Step 4: Deployment
The extension deploys to BC:
- Uploads to environment
- Runs schema sync
- Installs extension
Step 5: Activation
Extension becomes active:
- Customizations visible
- New fields available
- APIs accessible
Publish Status
Checking Status
After publishing:
- Open Information > Check deployment status
- View deployment progress
- See any errors
Status Values
| Status | Meaning |
|---|---|
| InProgress | Currently deploying |
| Completed | Successfully installed |
| Failed | Deployment failed |
Error Messages
If deployment fails:
- Review error message
- Fix issues in SOD
- Republish
What Gets Published
Included in Extension
- New fields on tables
- Field placements on pages
- Report field additions
- Mandatory field rules
- Calculated fields
- Features (tables, pages)
- API endpoints
- Queries
Extension Identity
The published extension has:
- Name (from Setup)
- Publisher (from Setup)
- Version (auto-incremented)
- Object ID range
Publish Update Mode
Synchronize (Default)
Normal publishing mode:
- Preserves existing data
- Adds new structures
- May block certain changes
Force Sync
Use when making destructive changes:
- Removing fields
- Changing field types
- Allows data loss
Warning: Force mode can permanently delete data.
See Force Mode for details.
After Publishing
Verify Changes
- Open the affected pages
- Check fields appear correctly
- Test functionality
- Verify APIs work
Troubleshooting
If issues occur:
- Check deployment status
- Review error messages
- Fix and republish
Publishing Considerations
First Publish
Initial publish:
- Creates new extension
- Sets up all objects
- Usually smooth process
Subsequent Publishes
Updates to existing extension:
- Version increments
- Schema updates
- May require sync decisions
Data Implications
Consider:
- Existing data preservation
- New fields start empty
- Removed fields lose data
Best Practices
Before Publishing
- Review all changes
- Test in sandbox first
- Backup important data
- Document what's changing
Publishing Workflow
- Make changes in SOD
- Publish to sandbox
- Test thoroughly
- Publish to production (or install .app)
Version Tracking
Keep track of:
- What's in each version
- When published
- To which environments