Recommended Workflow
This page outlines best practices for using Simple Object Designer effectively, from initial setup through production deployment.
The Sandbox-First Approach
Always develop and test customizations in a sandbox environment before deploying to production. This approach:
- Protects production data from experimental changes
- Allows you to test without affecting users
- Provides a safe space to learn SOD features
- Enables validation before going live
Recommended Workflow Steps
1. Set Up in Sandbox
- Install SOD in a sandbox environment first
- Complete the setup wizard
- Download symbols
- Configure extension identity settings
2. Design Your Customizations
Before creating anything in SOD, plan your customizations:
- Identify which tables need new fields
- Determine where fields should appear on pages
- Plan any mandatory field rules
- Consider whether you need new feature tables
3. Create in Small Batches
Instead of creating all customizations at once:
- Create a few related fields
- Place them on relevant pages
- Publish and test
- Repeat with the next batch
This incremental approach helps you:
- Identify issues early
- Understand how changes affect the system
- Recover more easily from mistakes
4. Test Thoroughly
After each publish:
- Open the affected pages
- Verify fields appear in the correct positions
- Test field behavior (editing, validation)
- Check that existing functionality still works
- Test any mandatory field rules
- Verify report changes in report layouts
5. Document Your Changes
Keep track of what you've customized:
- Which fields you added and why
- Which pages show your custom fields
- Any mandatory rules you created
- Any calculated field expressions
This documentation helps with:
- Training users
- Troubleshooting issues
- Planning future changes
- Handoff to developers if needed
6. Deploy to Production
When satisfied with testing:
Option B is the recommended path. Keep SOD in one place and move a compiled app outward.
Option A: Direct Publish
- Install SOD in production
- Import your configuration (if available)
- Re-download symbols for production
- Verify customizations
- Publish
Note that direct publishing in production requires the Snapshot Debugging permission for symbol download, on top of everything else.
Option B: App File Install (recommended)
- Download the
.appfile from the sandbox — with a registered SOD, publishing downloads it automatically (you may need to click Keep) - Go to Extension Management in production
- Manage > Upload Extension, select the file and deploy
- No need for SOD in production with this method
Option B avoids the production permission problem entirely. Symbol download works in a sandbox with SUPER or D365 EXTENSION MGT; uploading a finished .app needs no Snapshot Debugging permission in production at all. It also separates development from production cleanly.
If SOD was installed in production only to enable publishing, it can be uninstalled and the downloaded .app installed instead. After the install, your custom fields, tables and API-exposed data are all available in production — API URLs are derived by swapping the environment segment, see Consuming APIs.
Working with Multiple Environments
If you have multiple environments (dev, test, production):
Keep SOD in one environment only
Do not run SOD in both sandbox and production. Designate one sandbox as the dev sandbox, do all development and testing there, and deploy elsewhere by uploading the .app to Extension Management.
The consequence, stated plainly: because production holds only the compiled .app and not SOD, your custom fields, queries and features are not visible or editable in SOD from production. Every subsequent change is made in the dev sandbox and re-deployed as an updated .app.
This is a feature, not a limitation — a single source of truth avoids the divergence that causes fields to appear in one environment and stay empty in another.
Environment-Specific Considerations
| Environment | Purpose | SOD Usage |
|---|---|---|
| Development | Building customizations | Full SOD install, active development |
| Test/UAT | User acceptance testing | Install .app only |
| Production | Live business operations | Install .app file only (recommended) |
Promoting Changes Between Environments
- Build in development with full SOD access
- Download the .app file when ready
- Install the .app in test environment
- Test with business users
- Install the same .app in production
This ensures production gets exactly what was tested.
Changes always originate in the dev environment. An environment where the customization exists only as an installed .app cannot be used to modify it — the schema cannot be amended and fields cannot be added there. To change something after testing: go back to the dev sandbox, make the change, publish a new version, and re-deploy the updated .app. You never need to recreate the table as a new project in the target environment.
To deploy a subsequent version, simply upload the newer .app — the version auto-increments on publish, and Business Central recognizes the higher version with the same extension ID as an update. There is no need to uninstall the previous version first.
Moving work from a demo (unlicensed) tenant to a licensed one
Import App / Export App are disabled in demo mode, so the usual transfer route is unavailable from an unlicensed trial.
- Use GitHub integration: push the generated source from the trial, then pull it into the licensed tenant, or install the resulting
.appin production. - Or license first: once a license is purchased and applied to the sandbox, Import/Export become available and can be used normally.
Remember that the generated extension is a standard Business Central extension, independent of the SOD license — anything already published keeps running regardless of SOD's licence state.
Version Management
Track Your Versions
SOD automatically increments the version number when you publish. Keep track of:
- What version is in each environment
- What changes each version contains
- When each version was deployed
Coordinating Updates
When making updates to an existing customization:
- Make changes in sandbox
- Publish (version increments automatically)
- Test the new version
- Download the updated .app file
- Install in other environments
Handling Problems
When Things Go Wrong in Sandbox
If a customization causes issues in sandbox:
- Use SOD to remove or modify the problematic customization
- Publish again
- Test to verify the fix
When Things Go Wrong in Production
If production has issues after installing a customization:
- Go to Extension Management
- Uninstall the customization extension
- Business Central reverts to the previous state
- Fix the issue in sandbox
- Re-deploy the corrected version
Recovery Options
| Situation | Recovery Approach |
|---|---|
| Field causes page errors | Remove field placement, republish |
| Mandatory rule too strict | Modify or delete the rule, republish |
| Need to remove a field | Change Publish Update Mode to Force, remove field, republish |
| Complete rollback needed | Uninstall the customization extension entirely |
Preserving Your Configuration
Before an environment containing SOD is replaced or rebuilt, use Export App on the Setup page to save your configuration. After installing SOD in the replacement environment, use Import App to restore it — from the exported file, or from a previously published .app.
This matters most in the common sequence where a sandbox is refreshed from a copy of production: the deployed extension survives, but the SOD design data in the sandbox does not. Keeping every published .app file gives you a restore point for each version.
If neither an exported JSON nor an .app exists, SOD data cannot be recovered. See Environments, Companies and Backup.
Performance Considerations
Keep Symbol Data Current
Re-download symbols when:
- Business Central is updated to a new version
- New extensions are installed
- Symbols appear outdated or incomplete
Always answer Yes to the cache-clearing prompt when troubleshooting, and run the refresh from the Setup page rather than the prompt that appears when SOD opens.
Publish Efficiently
Minimize publishing overhead by:
- Batching related changes together
- Testing thoroughly before publishing
- Avoiding unnecessary publishes
Collaboration Guidelines
Multiple Users with SOD
If multiple people use SOD in the same environment:
- Coordinate changes to avoid conflicts
- Don't work on the same tables/pages simultaneously
- Communicate before publishing
- Consider using separate sandbox environments for parallel work
Handing Off to Developers
If customizations grow complex enough to need developer involvement:
- Use GitHub integration to export source code
- Provide documentation of business requirements
- The generated AL code serves as a starting point
- Developers can continue development in VS Code