Graduating from SOD
As customization needs grow, you may eventually need capabilities beyond SOD. This page explains how to transition to full AL development.
When to Graduate
Signs You've Outgrown SOD
- Need complex business logic
- Require custom codeunits
- Need event subscriptions
- Want full AL flexibility
- Multiple developers involved
- Professional development practices needed
SOD's Scope
SOD excels at:
- Simple to medium customizations
- No-code approach
- Rapid prototyping
- Power user modifications
SOD isn't designed for:
- Complex applications
- Heavy business logic
- Advanced integrations
- Enterprise development
The Graduation Path
Source code download requires a licensed SOD. You can only download the AL source of an extension that was published with a licensed Simple Object Designer. Extensions published without a licence do not offer the source download option.
Step 1: Push to GitHub
Use GitHub integration to export your code:
- Configure GitHub settings
- Push all current customizations
- Verify code in repository
Alternatively use Download Source on the Setup page for a ZIP of the generated AL.
Step 2: Set Up Development Environment
Prepare VS Code environment:
- Install VS Code
- Install AL Language extension
- Clone your repository
- Open the project
Step 3: Download Symbols in VS Code
Configure VS Code for BC:
- Set up launch.json for your environment
- Download symbols (Ctrl+Shift+P > AL: Download Symbols)
- Verify project compiles
Step 4: Continue Development
From this point:
- Make changes in VS Code
- Use full AL capabilities
- Publish from VS Code
- SOD no longer needed for this project
Compiler Warnings in the Downloaded Source
Some compiler warnings are only visible once the source is downloaded and opened in VS Code — SOD itself does not display them. Several of them are Microsoft deprecation warnings, not SOD errors.
A common one, produced when a data table uses a number series as its primary key:
Codeunit 'NoSeriesManagement' is marked for removal.
Reason: Please use the "No. Series" and "No. Series - Batch" codeunits instead. Tag: 24.0.
What it means: the generated code works on current Business Central versions. The warning signals a future platform change — this pattern will break on BC 26 / BC 27. It is informational, not a current failure.
What to do: nothing in VS Code. Do not hand-patch it before publishing. Microsoft is switching the number series codeunits and both old and new currently work, and a future SOD update regenerates compliant code.
But do regenerate before moving to those BC versions. Because the current pattern breaks on BC 26/27, apps should be republished with an updated SOD version before the environment is upgraded.
The same reasoning applies to other "marked for removal" warnings, such as the old price calculation objects (Sales Price Calc. Mgt., table Sales Price) — the old system is still present and active. See Business Central Updates.
Recovering SOD Source That Is Missing
SOD customizations are stored as SOD source. If that source is not present in the environment you are looking at, previously made customizations will not appear in SOD — even though the customizations themselves are alive and working in Business Central.
Two common reasons:
- They were created in a different environment — a sandbox rather than the production environment you are in
- The SOD source is gone, typically because the person who built it left without leaving the exported files
Diagnostic checklist:
- Check whether the customizations were created in another environment. Check all sandboxes — is SOD installed there, and does the source exist in one of them?
- Check whether the original author left an exported file
Two ways to recover the source:
- Import the last published
.app. Find the.appfile last published to production and import it with Import App on the Setup page — SOD embeds the source definition inside the file it publishes. - Import an exported
.json. If the author used Export App, that file (extension.json) imports straight back into SOD.
What you cannot do: the AL source downloaded from Extension Management is only AL code and is not importable into Simple Object Designer. An AL developer can work with it in VS Code, and it is possible to recreate the SOD content by hand by studying it — but that path needs specific techniques, so contact support@hougaard.com before attempting it.
The lesson: export and retain your SOD source. See Environments, Companies and Backup.
What You Get
Generated Code Quality
SOD generates clean, standard AL code:
- Proper formatting
- Following conventions
- Good starting point
Full Source Control
In GitHub:
- Complete AL source files
- App manifest
- Version history
Transitioning Responsibilities
From SOD to Developers
If handing off:
- Document what exists
- Explain business requirements
- Provide access to repository
- Transfer knowledge
Maintaining Mixed Usage
You can:
- Use SOD for simple changes
- Use VS Code for complex changes
- Be aware they don't sync automatically
Best Practices
Before Graduating
- Push latest to GitHub
- Document all customizations
- Note any special configurations
- Backup everything
Clean Starting Point
Ensure:
- All customizations published
- Code in GitHub current
- Documentation complete
Knowledge Transfer
If others will develop:
- Explain the structure
- Document business rules
- Provide contacts for questions
Continuing with SOD
Partial Graduation
You might:
- Graduate one feature
- Keep using SOD for simple changes
- Hybrid approach
Considerations
If using both:
- Manage separately
- Don't mix SOD and VS Code for same extension
- Clear boundaries
Post-Graduation
Full AL Development
With VS Code, you can:
- Write custom codeunits
- Subscribe to events
- Create complex logic
- Use full AL language
Development Practices
Adopt:
- Version control workflow
- Code review process
- Testing practices
- CI/CD pipelines (AL-Go)
Support and Learning
AL Development Resources
- Microsoft Docs for AL
- VS Code AL extension docs
- Business Central developer community
- Hougaard training resources
Getting Help
- Community forums
- Partner network
- Microsoft support
- Developer community