Hi All!
Phase 1: C/AL to Business Central On-Premise (AL Platform)
This phase converts the legacy C/AL database and code to the modern AL architecture on a self-hosted (on-premise) server.
| Step | Action / Focus | PowerShell Cmdlet (or Tool) | Notes |
| P1.1 | Code Migration (AL Development) | Txt2Al.exe & VS Code | Convert all C/AL objects to AL, refactor code to conform to the extension model, and create your custom .app files. |
| P1.2 | DB Conversion | Invoke-NAVApplicationDatabaseConversion | Convert the database schema to the new platform format using the new BC setup media. |
| P1.3 | Server Configuration | Set-NAVServerConfiguration | Point the new BC Server instance to the converted database. |
| P1.4 | Uninstall Legacy Code | Uninstall-NAVApp / Unpublish-NAVApp | Ensure all old extensions (and symbols) are removed from the tenant. |
| P1.5 | Publish Core Apps | Publish-NAVApp | Publish Microsoft's System Application and Base Application to the server. |
| P1.6 | Sync Schema | Sync-NAVTenant -Mode Sync | Synchronize the tenant schema against the new base application tables. |
| P1.7 | Application Data Upgrade | Start-NAVAppDataUpgrade | Run the upgrade code for the Core Apps (System, Base Application). |
| P1.8 | Platform Data Upgrade | Start-NavDataUpgrade | Run the main platform and toolkit upgrade scripts. |
| P1.9 | Install Custom Apps | Publish-NAVApp / Install-NAVApp | Publish and install all your newly created custom AL extensions. |
Phase 2: On-Premise BC to Business Central Online (SaaS) Migration
This phase uses Microsoft's Cloud Migration Tool to replicate data from your now-modernized on-premise system to the SaaS environment.
| Step | Action / Focus | Tool / Interface | Notes |
| P2.1 | Prepare On-Premise | BC On-Premise UI / PowerShell | Ensure your on-premise version is supported for migration (BC v14 or newer) and all custom code is running as extensions. |
| P2.2 | Set Up SaaS | AppSource & VS Code | Ensure the target SaaS environment has the same custom extensions installed (published and synchronized) as the on-premise system. |
| P2.3 | Install Gateway | Self-Hosted Integration Runtime (SHIR) | Install the SHIR on a machine that can access the SQL Server database. This creates a secure data pipe. |
| P2.4 | Configure Migration | BC SaaS Assisted Setup Wizard | Run the Set up Cloud Migration wizard, entering the SQL Server connection string and the SHIR key. |
| P2.5 | Initial Replication | Cloud Migration Management Page (SaaS) | Start the initial full replication of all selected tables. This copies the data to the SaaS tenant's database. |
| P2.6 | Check and Finalize | Cloud Migration Management Page (SaaS) | Monitor the replication status. Once complete, run the final data upgrade in SaaS if needed, and confirm the final cutover. |
Phase 3: SaaS to Newer Version (Continuous Upgrade)
The benefit of SaaS is that Microsoft handles the platform upgrades. You only need to manage your extensions.
| Step | Action / Focus | Tool / Interface | Notes |
| P3.1 | Target Testing | Sandboxes & Extension Testing | Microsoft creates a sandbox with the next major version. Test all your custom extensions against this new version. |
| P3.2 | Update Extensions | VS Code & AL Language | Update your custom extensions to the new target version, implementing any required upgrade codeunits (OnUpgrade) to handle schema changes. |
| P3.3 | Publish New Version | VS Code / PowerShell (for upload) | Publish the new version of your custom extensions to your Production Environment (if Microsoft allows it, or wait for the automatic upgrade). |
| P3.4 | Microsoft Upgrade | Automatic | Microsoft automatically handles the platform upgrade. Your extensions' upgrade codeunits run automatically during this process to ensure data consistency. |
| P3.5 | Post-Upgrade Test | BC Production UI | Once the upgrade is complete (usually outside business hours), perform final smoke testing. |
Reach out to me if you have any questions or suggestions.
Check out other blogs, if you haven't already.
Kindly suggest what else you want me to blog about. Keep following and supporting!
You can also email me at jyotsnaoberainav@gmail.com
Also, visit my website JONAV if you are looking for NAV/D365BC Training and/or Services!
Thank you!