Microsoft presents: Cloud Migration from any SQL
Cloud migration from BC 14 and other SQL sources to Business Central SaaS: the BC 14 re-implementation tool, its AL extension framework (migrator enums, interfaces, extension points), and custom migration providers and table mappings. Includes demos and limits on data, companies and permissions.
- Journey to the Cloud - Historical Context
- Upgrade Paths and Support Strategy
- Migration Challenges and Tooling Solutions
- BC Re-implementation Tool Overview
- BC Re-implementation Tool Demo
- Data Coverage and Extensibility Framework
- Tool Architecture and Database Strategy
- Extension Points and Migrator Hooks
- Customizing Migration Plan and Migrator Lists
- Historical Data Migration and Advanced Extension Points
- Building Custom Migration Tools and Table Mappings
- Sample Implementations and On-Premises Development
- Building Custom Migration Tools with Full Data Transformation
- Custom Migration and Performance Testing
- Cloud Migration Roadmap and Feedback
- On-Premises Migration Tools and Performance Considerations
- Multi-Company Migration and Permission Sets
- Field Mapping and Data Transformation
Overview
The session covers how customers on BC 14 and below can move directly to BC SaaS using a re-implementation tool. It moves a subset of data and starts the customer fresh in SaaS. It uses Azure Data Factory replication from SQL to SQL. The demo shows the Cloud Migration Management page, replication and upgrade progress tracking, and inline error fixing so a failed upgrade no longer means redoing everything.
The second half is for developers. It describes 52 migration entities registered through extensible enums and a BC14 Migrator interface, more than 165 extension points, migrator hooks, and migration plan customization through events. It also covers historical data in a separate task worker, custom migration providers, replication and setup table mappings, on-premises testing with configuration packages, and Q&A limits on large tables, multi-company migration, and permission sets.
Key points
- The BC 14 re-implementation tool moves a subset of data directly to the latest BC SaaS, skipping intermediate versions. It is not a traditional upgrade.
- Replication uses Azure Data Factory SQL-to-SQL copy. Tables with matching schemas are copied directly, and buffer tables are used when schemas differ.
- 52 migration entities (setup, master, transaction, historical) are registered through extensible enums, and each migrator implements the BC14 Migrator interface. Partners can add, replace or extend them.
- Subscribers can skip migrators with the before-run event, add logging with the after-run event, and reorder or inject migrators by setting the changed flag in the populate events.
- Custom providers need a company table with matching structure, a custom migration provider interface implementation, and an extension of the custom migration provider enum.
- Field mapping requires identical field names, because there is no field-to-field mapping. Permission sets and user profiles cannot be migrated from BC 14 to SaaS and need custom AL code.
- Once data transformation starts, the BC 14 tool blocks further replication from the source. Migrating extra companies into a live tenant is risky and not advised. A 700 GB table in 24 hours was called extreme.
Features
| Feature | Status | At | Evidence |
|---|---|---|---|
| BC 14 Re-implementation Tool | preview, demoed | 3:18 | “Uh it will be released in preview. And uh yeah, you are always welcome to give us your feedback.” (21:23) |
| Cloud Migration Management Page | status not stated, demoed | 5:12 | |
| Replication Progress Tracking | status not stated, demoed | 6:05 | |
| Upgrade Progress Tracking | status not stated, demoed | 6:27 | |
| Inline Error Fixing | status not stated, demoed | 7:10 | |
| Extensible Migration Entities | status not stated, demoed | 8:58 | |
| Replication Service with Azure Data Factory | status not stated, demoed | 9:59 | |
| Migrator Interface and Enum Registration | status not stated, demoed | 11:48 | |
| Direct Upgrade Path from BC 14 to SaaS | preview, demoed | 3:53 | “Uh it will be released in preview. And uh yeah, you are always welcome to give us your feedback.” (21:23) |
| BC14 migrator framework with three phases | status not stated, demoed | 13:13 | |
| Entity extension patterns for migration | status not stated, demoed | 14:18 | |
| Migrator hooks for pre and post execution | status not stated, demoed | 16:35 | |
| Migration plan customization via event subscription | status not stated, demoed | 17:42 | |
| Historical data migration with separate task worker | status not stated | 19:10 | |
| Post migration validation and action extension points | status not stated | 20:05 | |
| Custom migration provider interface | status not stated, demoed | 22:03 | |
| Replication table mappings for data transfer | status not stated, demoed | 23:57 | |
| Setup table mappings for cloud migration configuration | status not stated, demoed | 24:30 | |
| Record links and notes migration helper tool | status not stated, demoed | 25:54 | |
| SQL to SQL replication speed advantage | status not stated | 22:03 | |
| Support for difficult-to-move tables via SQL tooling | status not stated | 22:28 | |
| On-premises development for cloud migration tools | status not stated, demoed | 28:36 | |
| Custom migration app development framework | status not stated, demoed | 30:25 | |
| No-code custom migration from any SQL | status not stated, demoed | 33:31 | |
| BC to BC record links and notes migration | status not stated | 37:02 | |
| Cloud migration warnings and validation framework | status not stated | 37:29 | |
| Data transfer outside upgrade codeunits | status not stated | 37:52 | |
| SQL to SQL copy with AL upgrade | status not stated | 40:50 | |
| No-code data replication | status not stated, demoed | 41:51 | |
| BC 14 implementation tool | status not stated, demoed | 42:16 | |
| Large table migration performance | status not stated | 42:50 | |
| BC with upgrade multi-company restriction | status not stated | 43:52 | |
| BC 14 implementation tool multi-company scenarios | status not stated | 44:06 | |
| Permission sets and user profiles migration | status not stated | 44:53 | |
| Extension table data migration | status not stated, demoed | 45:27 | |
| Single-to-multiple-table field mapping | status not stated | 45:59 | |
| Data Transfer Objects alternative | status not stated | 47:33 |
AL objects mentioned
As heard in the captions. A name that matches one object page by exact type and name links to it; the others stay as named.
- page 40063 “Cloud Migration Management” at 6:05
- codeunit “BC 14 Company Upgrade Task” at 12:48
- interface “BC14 Migrator” at 13:38
- enum “BC 14 Setup Migrator” at 13:13
- enum “Master Data Migrator” at 13:13
- enum “Transaction Data Migrator” at 13:27
- enum “BC14 migrator” at 13:38
- table “customer table” at 15:09
- table “buffer table” at 15:33
- interface “Custom Migration Provider” at 23:44
- enum 4010 “Custom Migration Provider” at 23:57
- table “replication table mappings” at 24:15
- table “setup table mappings” at 24:30
- table “company table” at 23:08
- table “record links” at 27:26
- page “cloud migration management page” at 27:02
- table “record links and notes” at 27:13
- table “item table” at 31:34
- table “tenant media” at 35:07
- table “tenant media set” at 35:22
- table “intelligent cloud” at 38:21
- codeunit “AL upgrade” at 40:50
- table 32 “Item Ledger Entry” at 46:32
Not found in BC28-30: codeunit “BC 14 Company Upgrade Task”, enum “BC 14 Setup Migrator”, enum “Master Data Migrator”, enum “Transaction Data Migrator”, enum “BC14 migrator”, table “customer table”, table “buffer table”, table “replication table mappings”, table “setup table mappings”, table “company table”, table “record links”, page “cloud migration management page”, table “record links and notes”, table “item table”, table “tenant media”, table “tenant media set”, table “intelligent cloud”, codeunit “AL upgrade”.
Quotes
- 0:54 “you need to get to the other end where there is a land of AL. Because the grass is greener on the other side.”
- 2:24 “We are expecting you to stay current if you are on a version 25 or higher because these upgrade paths, as I said, they”
- 3:05 “We have hundreds of thousands of customers on version 14 and below, so the number is quite high.”
- 4:05 “This is a re-implementation, so it means that you’re only moving a subset of data. And the customer is going …”
- 4:42 “configuration packages are not working the best because they cannot move large amounts of data, while the re-implementation tool can.”
Disclaimers in the video
- 2:11 subject-to-change: all of these parts that I have highlighted in red, they’re going to be out of support. So, we will …
- 21:09 preview: it will be released in preview
- 21:09 subject-to-change: you are always welcome to give us your feedback. It’s really important
- 34:43 other: We don’t promote this action because this is a feature for experts. this is a bit dangerous if you just it can break your database
- 38:52 subject-to-change: the future investments in this area depends on the usage. If we do not get the feedback and the usage, we are not going to be able to do any additional developments
- 39:04 coming-later: There are some other things on the backlog. If we do not get the feedback and the usage, we are …
- 42:50 other: For this kind of data you’re going to face issues because this is a bit extreme - 700 GB in 24 hours.
- 44:17 other: The migration of companies into a live system is bringing risk. It’s still not advised.
- 44:28 other: We cannot support it to be with high level of safety like 98 99% of the safety out of the box.
Presenters (as heard): Nikola, Wenjie, Benji, Venkat, Vinod.
