Simple Object Designer Documentation
Index

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:

  1. Configure GitHub settings
  2. Push all current customizations
  3. 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:

  1. Install VS Code
  2. Install AL Language extension
  3. Clone your repository
  4. Open the project

Step 3: Download Symbols in VS Code

Configure VS Code for BC:

  1. Set up launch.json for your environment
  2. Download symbols (Ctrl+Shift+P > AL: Download Symbols)
  3. 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:

  1. 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?
  2. Check whether the original author left an exported file

Two ways to recover the source:

  1. Import the last published .app. Find the .app file last published to production and import it with Import App on the Setup page — SOD embeds the source definition inside the file it publishes.
  2. 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:

  1. Document what exists
  2. Explain business requirements
  3. Provide access to repository
  4. 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

  1. Push latest to GitHub
  2. Document all customizations
  3. Note any special configurations
  4. 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