Data Engineering Perspective

Microsoft Dynamics 365
Migration Guide

Everything you need to understand D365 — from the legacy on-prem stack (SSIS, SSAS, SSRS) to a modern Azure cloud architecture using ADF, Fabric, Qlik, and beyond.

SSIS → ADF SSAS → Fabric Semantic Model SSRS → Power BI Qlik Replicate / CDC Dataverse & Synapse Link HK & India deployment
scroll ↓

Section 01

What is Microsoft Dynamics 365?

A modular cloud suite combining CRM and ERP — not one product, but a connected ecosystem of business apps running on Azure.

One-line definition: Dynamics 365 is Microsoft's cloud-hosted suite of business applications covering customer relationship management (CRM) and enterprise resource planning (ERP), deeply integrated with Azure, Microsoft 365 (Teams, Outlook, Excel), and the Power Platform.

The two sides of D365

CRM — Customer facing

Sales, Service, Marketing

Manage leads, opportunities, customer cases, SLAs, and campaigns. The D365 equivalent of Salesforce — but embedded in the Microsoft ecosystem.

ERP — Back office

Finance, Supply Chain, Business Central

General ledger, accounts payable, inventory, manufacturing, procurement. The Microsoft alternative to SAP — Finance & Operations for enterprise, Business Central for SMB.

All D365 modules at a glance

📈

Sales

AI-assisted pipeline, lead scoring, opportunity management. Agents for next-best-action.

🎧

Customer Service

Omnichannel support, case management, knowledge base, SLA enforcement.

📣

Customer Insights

CDP + marketing journeys. Unifies customer data for segmentation and personalisation.

💰

Finance

General ledger, AP/AR, budgeting, financial reporting. Large enterprise.

🚚

Supply Chain

Inventory, warehousing, manufacturing, procurement, logistics.

🏪

Business Central

All-in-one ERP for SMB — finance, ops, sales. The cloud successor to Dynamics NAV.

🔧

Field Service

Work order management, resource scheduling, asset tracking, mobile tools for frontline workers.

🛍️

Commerce

Headless omnichannel retail — POS, digital commerce (B2C/B2B), call centre.

🤖

Copilot (AI layer)

Embedded across all apps — summarises, drafts, predicts, automates tasks in every module.

Key platform concepts: Dataverse is the shared data layer all D365 apps sit on. Power Platform (Power Apps, Power Automate, Power BI, Copilot Studio) extends D365. Release waves happen twice a year — Microsoft handles all upgrades in the cloud.

Section 02

On-prem vs Cloud

D365 is natively cloud-first on Azure — but legacy on-prem predecessors are still running in thousands of organisations.

The legacy on-prem predecessors

Old on-prem name Also known as Modern cloud equivalent Migration status
Dynamics AX Axapta D365 Finance & Supply Chain Active migration market
Dynamics NAV Navision D365 Business Central Large installed base
Dynamics CRM D365 Sales / Customer Service Most already migrated
Dynamics GP Great Plains Business Central (partial) Being retired — no direct path
Cloud (primary)

SaaS on Azure

All new implementations go cloud-first. Modern features — Copilot AI, Power Platform, Synapse Link, automatic release waves — are cloud-only. Microsoft manages infrastructure, security, and updates.

On-premises (legacy)

D365 F&O + Business Central

On-prem deployments still exist for organisations with data sovereignty, regulatory, or connectivity requirements. These lag behind cloud in features. Microsoft's stated future is cloud-only.


Section 03

Migration Stack — SSIS / SSAS / SSRS → Azure

Tool-by-tool map from your current on-prem Microsoft BI stack to the modern Azure / Fabric cloud equivalents.

Tool replacement map

On-prem
SSIS
SQL Server Integration Services — ETL pipelines, data movement
Cloud
Azure Data Factory (ADF)
Cloud-native ETL/ELT. 90+ connectors incl. D365 native. Low-code pipeline builder. Scales automatically.
On-prem
SSAS
SQL Server Analysis Services — OLAP cubes, tabular models, MDX/DAX
Cloud
Azure Analysis Services / Fabric Semantic Model
Managed tabular models in cloud. DAX knowledge carries over directly. Fabric Semantic Models are the long-term successor to SSAS.
On-prem
SSRS
SQL Server Reporting Services — paginated & scheduled reports
Cloud
Power BI + Fabric Paginated Reports
Interactive dashboards via Power BI. Pixel-perfect paginated reports via Fabric (same RDL format — low migration effort).

Modern cloud architecture — layered

Source systems
D365 Finance D365 Sales / CRM D365 Supply Chain Legacy SQL Server / AX / NAV Flat files / APIs
Ingestion & orchestration
Azure Data Factory (ADF) Fabric Data Pipeline D365 Dataverse / Synapse Link
Storage — data lakehouse
Azure Data Lake Storage Gen2 Microsoft Fabric OneLake Azure Synapse Analytics
Transform & model
dbt (data build tool) Fabric Notebooks (PySpark) Azure Databricks Fabric Dataflows Gen2
Serve & report
Power BI Fabric Semantic Model (→ SSAS) Fabric Paginated Reports (→ SSRS)
D365 Synapse Link is the critical feature for data engineers. It continuously replicates D365 Dataverse tables into your Azure Data Lake in near-real-time — no custom SSIS packages needed. This replaces the old BYOD (Bring Your Own Database) pattern and is Microsoft's recommended analytics integration approach.

Migration phases

Phase 01

Assess

Inventory all SSIS packages, SSAS cubes, and SSRS reports. Use Microsoft's Data Migration Assistant (DMA) to identify compatibility issues.

Phase 02

Migrate

SSIS → ADF pipelines. SSAS tabular → Fabric Semantic Model. Set up Dataverse Synapse Link for ongoing D365 replication.

Phase 03

Modernise

Adopt medallion lakehouse (Bronze/Silver/Gold). Enable Power BI. Introduce dbt or Spark for governed transforms.

Phase 04

Optimise

Embed Copilot AI. Retire remaining on-prem infrastructure. Achieve full cloud-native operating model.


Section 04

Where Qlik Fits — CDC & Data Movement

Qlik acts as the data movement layer between on-prem sources and Azure, solving the hardest part of migration: getting data out of legacy systems reliably and in real-time.

The flow

On-prem SQL Server
AX / NAV / CRM
Qlik Replicate
CDC engine
Azure Data Lake
ADLS Gen2
ADF Pipelines
Orchestration
D365 Cloud
+ Fabric
What is CDC (Change Data Capture)? Instead of nightly full batch dumps, Qlik reads your SQL Server transaction logs and streams only what changed — inserts, updates, deletes — in near real-time to Azure. Your on-prem system stays live with zero downtime and zero performance impact.

The 3 Qlik tools involved

Qlik Replicate

CDC & replication engine

Reads transaction logs from SQL Server, Oracle, SAP, mainframes and streams to Azure targets (ADLS, Synapse, Databricks Delta Lake). GUI-based — no manual coding. Replaces SSIS for data extraction.

Qlik Compose

Automated lakehouse builder

Takes raw replicated data and auto-generates warehouse structures — star schemas, dimension/fact tables, medallion layers. Think automated dbt, working directly with Azure Synapse and ADLS.

Qlik Data Gateway

Hybrid secure bridge

When using Qlik Cloud SaaS, the gateway allows secure access to on-prem sources without opening firewall ports. Essential during the hybrid transition phase of migration.

Qlik vs ADF — who does what

Qlik handles

Real-time CDC from on-prem sources
Initial full load + ongoing delta sync
Schema auto-mapping to Azure targets
Basic transforms during replication
Pipeline monitoring & alerting
Multi-source fan-in to one Azure target

ADF still handles

Orchestration & scheduling
Complex transforms within Azure
90+ Azure-native service connectors
Running remaining SSIS packages
Triggers, dependencies, retry logic
Integration with Fabric / Synapse


Section 05

Reducing Qlik Dependency — HK & India

Thin local support coverage in Hong Kong and India is a real operational risk. Here's a structured strategy to mitigate it.

The risks of thin vendor coverage: Pipeline failures with no timely SLA response · Licensing issues across time zones · No on-site professional services · Knowledge locked in one vendor relationship · Emergency support costs escalate when overseas teams are needed.

Option 1 — Mitigate within Qlik (keep Qlik, reduce dependency)

Qlik partner route

Engage a certified SI partner

India: TCS, Wipro, HCL, and Infosys all carry certified Qlik practices with local language support and faster SLA. India has the strongest Qlik partner ecosystem in APAC.

Hong Kong: NTT Data, DXC Technology, and regional SIs cover HK — fewer options but workable via the Qlik partner locator (qlik-partners.com).

Internal capability

Build internal Qlik expertise

Train 1–2 data engineers on Qlik Replicate via Qlik Learning (online). With internal knowledge, day-to-day ops don't require vendor calls — only critical incidents need escalation. Reduces vendor dependency by ~70%.

Option 2 — Replace Qlik Replicate with an alternative

Tool Type Best for HK / India support Cost
ADF Native CDC Microsoft managed SQL Server sources → Azure Azure global SLA Included in ADF
Debezium Open source Kafka-based, multi-source Community / self-managed Free
Fivetran Managed SaaS 300+ connectors, zero ops APAC support available Per connector
Striim Enterprise SaaS In-flight transforms + CDC Cloud SaaS model Enterprise pricing
Oracle GoldenGate Enterprise Oracle DB sources Strong Oracle India/HK offices Premium
Recommended strategy for your proposal:

Short term (migration phase): Keep Qlik Replicate but engage a certified SI in India (TCS/Wipro/HCL) for local support. Train 1–2 engineers internally on Replicate basics.

Medium term (post-migration): Replace Qlik with ADF Native CDC for SQL Server sources (no extra cost, Microsoft global SLA) + Debezium/Kafka for any non-SQL sources. Once D365 Synapse Link is live, Qlik's role ends entirely.

In the proposal: Frame Qlik as a migration accelerator for Phase 1–2 only, with a planned exit to ADF-native CDC post-cutover. This shows maturity, reduces long-term vendor risk, and is a strong story for leadership.

Section 06

Key Concepts — Reference Notes

Core D365 and migration concepts worth understanding when planning a move from legacy Microsoft BI to Azure.

What is Dynamics 365 and how does it differ from Salesforce or SAP?
D365 is a modular cloud suite combining CRM and ERP under one roof — Salesforce is CRM-only, SAP is ERP-heavy. D365's key differentiator is deep integration with the full Microsoft ecosystem: Teams, Outlook, Azure, Power Platform, and Fabric. It's one licence relationship for the whole stack.
What is the difference between CRM and ERP in D365?
CRM modules (Sales, Customer Service, Marketing) are customer-facing — managing relationships, pipelines, and service. ERP modules (Finance, Supply Chain, Business Central) are back-office — accounting, inventory, manufacturing. Both share the same Dataverse data layer, which is a key technical advantage.
What is Dataverse?
The unified data layer beneath all D365 apps. Stores records in a consistent, secure, cloud-hosted schema. It makes sharing data between D365 apps seamless — a Sales opportunity can reference a Finance invoice with no custom integration. Synapse Link replicates Dataverse tables to Azure for analytics.
How does D365 use AI?
Microsoft Copilot is embedded across all modules — it summarises emails, suggests next steps for sales reps, predicts stock shortfalls, automates case routing, and generates marketing content. In D365 Sales, AI agents can discover leads, prioritise tasks, and automate follow-ups autonomously.
How would you migrate from SSIS / SSAS / SSRS to Azure?
SSIS → Azure Data Factory (pipelines). SSAS → Azure Analysis Services or Fabric Semantic Models (DAX carries over directly). SSRS → Power BI for dashboards plus Fabric Paginated Reports for pixel-perfect reports (same RDL format). For D365 data specifically, Dataverse Synapse Link handles ongoing replication — no SSIS extraction packages needed.
What is Qlik Replicate and why use it over ADF?
Qlik Replicate is a log-based CDC engine — it reads transaction logs from on-prem SQL Server, Oracle, or SAP and streams changes to Azure in near real-time, without impacting the source system. ADF is an orchestration tool, not a CDC tool. They complement each other: Qlik moves data out of legacy systems, ADF orchestrates what happens to it inside Azure. Post-migration, ADF's native CDC for SQL Server can replace Qlik for most scenarios.
What is the medallion architecture?
A lakehouse design pattern using three layers: Bronze (raw ingested data, no transforms), Silver (cleaned, validated, conformed data), Gold (business-ready aggregations and models for reporting). It replaces the old data warehouse ETL pattern with a more flexible, Spark-friendly approach on ADLS or Fabric OneLake.
Platform perspective: D365 works best when treated as a platform, not a single product. Understanding Dataverse, Synapse Link, and Power Platform clarifies the data engineering layer beneath the business applications.

Section 07

Enterprise BI & Supply Chain — Practical Notes

Approaches and lessons from ERP, supply chain, database migration, and BI modernisation programmes — drawn from delivery at Cathay Pacific Cargo Terminal, HSBC, CHANEL, M&S, and British Airways.

D365 F&SCM · ERP Supply Chain & Logistics SSIS · SSAS · SSRS SQL Server 2016+ Azure · Power BI · Fabric Qlik Replicate CDC HK & India delivery

Delivery background

Overview Enterprise delivery across aviation logistics, global banking, and luxury retail — working with operations, finance, and warehouse teams alongside technology. At Cathay Pacific Cargo Terminal: 13 years on cargo and supply chain systems at HKIA — integrations, warehouse operations, and enterprise applications. At HSBC through Capgemini: cloud data platform delivery — D365 on-prem to Azure migration using Qlik Replicate CDC, SQL Server modernisation, and Power BI for enterprise analytics. Focus areas include ERP data, supply chain KPI design, and moving legacy Microsoft BI stacks to Azure without disrupting business operations.

ERP, supply chain applications & BI modernisation

ERP and supply-chain application experience
Cathay Pacific Cargo Terminal (13 years): Cargo terminal operations at HKIA — warehouse management, cargo handling workflows, SITA/ACCS integrations, and line-of-business applications supporting inbound/outbound freight, ULD tracking, and operational reporting. This is real supply chain at scale: inventory movement, SLA-driven operations, and multi-party logistics.

HSBC (Capgemini): Global finance programme architecture. D365 on-prem ERP data extracted and replicated to Azure for analytics — finance and operational reporting across a regulated banking environment.

CHANEL HK: Enterprise architecture and data analytics framework across retail and operations systems.

M&S / British Airways: Retail supply chain and aviation logistics enterprise delivery — RFQ/RFP responses, integration platforms, and cross-functional stakeholder management.

Connect to D365: D365 Finance & Supply Chain Management is the modern cloud successor to Dynamics AX — covering procurement, inventory, warehouse management, manufacturing, and demand planning. My cargo terminal background maps directly to WMS, inventory, and fulfilment modules.
Database migration experience
At HSBC: led the technical architecture for D365 on-prem → Azure SQL migration using Qlik Replicate for log-based CDC — near real-time replication without heavy load on source systems. This is the pattern I'd reuse for any SQL Server 2016 warehouse or staging DB: assess source, replicate to Azure landing zone, validate row counts and checksums, cut over with rollback plan.

At Cathay (recent CCT programme): Oracle → Aurora PostgreSQL and on-prem → AWS migration for cargo terminal applications — same principles: discovery, parallel run, data reconciliation, phased cutover.

Key principle: Migration should not be treated as lift-and-shift. Map dependencies — SSIS packages, linked servers, cube data sources, report connections — before changing any database.
BI environment modernisation strategy
My approach is a four-layer modernisation, not a big-bang replacement:

1. Stabilise — document what exists (SSIS, SSAS, SSRS, SQL Agent jobs, file shares). Freeze scope creep. Establish a single source of truth for metadata.
2. Decouple ingestion — move ETL from SSIS to ADF/Fabric pipelines. Keep SSAS cubes running in parallel during transition.
3. Modernise the semantic layer — migrate SSAS tabular models to Azure Analysis Services or Fabric Semantic Models. DAX carries over. Retire multidimensional cubes only after tabular equivalent is validated.
4. Democratise consumption — Power BI for self-service and executive dashboards. Fabric Paginated Reports for legacy SSRS RDL reports. Synapse Link or CDC for D365/ERP ongoing replication.

At HSBC this pattern was executed: Qlik for CDC → Azure SQL → Power BI, with the legacy stack kept running until business sign-off on each report.

SSAS takeover, cube design & business logic

How did you take over SSAS with no internal backup?
A common enterprise scenario — the original developer left years ago and documentation is thin. A practical recovery approach:

Week 1 — Discovery without touching production: Export everything available via SSMS/XMLA scripts, SQL Agent job definitions, and SSIS package source. Talk to the top report consumers: "What decisions do you make from this cube?" not "What columns do you need?"

Week 2 — Reverse-engineer the model: Open the SSAS project in Visual Studio or Tabular Editor. Map measures, calculated columns, hierarchies, and KPIs. Trace each measure back to its source table/view in SQL Server. Build a measure dictionary — business name, DAX/MDX definition, source table, owner, refresh frequency.

Week 3 — Shadow and validate: Run the same queries in Excel/Power BI against the cube and against source SQL. Reconcile numbers with finance or operations. Discrepancies reveal hidden business rules (filters, unknown members, custom rollups).

Week 4 — Establish ownership: Assign a business owner per subject area (e.g. inventory, procurement, finance). Publish documentation. Set up automated XMLA backups to source control going forward.

Operating principle: Assume zero documentation on day one. Treat the running system as the spec — reverse-engineer it, validate with business users, and rebuild knowledge before changing anything.
Cube / tabular model design and business logic — real situations
Situation 1 — Conflicting KPIs: Operations reported "on-time shipment %" differently from finance's "revenue recognition date." The cube had a hidden filter on a status column that only the original developer knew about. Solution: Created a conformed date dimension with role-playing relationships (order date, ship date, invoice date) and published a KPI glossary signed off by both teams.

Situation 2 — Slow multidimensional cube: Users complained about 30-second query times on a large inventory cube. Solution: Identified high-cardinality attributes being queried at wrong grain. Introduced aggregations, partitioned the measure group by month, and migrated the heaviest subject area to a tabular model in DirectQuery mode against a pre-aggregated SQL view.

Situation 3 — Supply chain grain mismatch: Warehouse team wanted SKU-level stock; procurement wanted vendor-level spend — same cube, different grains. Solution: Designed separate measure groups at correct grains with a shared conformed product dimension. Used DAX CALCULATE with REMOVEFILTERS for cross-grain metrics rather than forcing one flat table.

Design principles I follow: Star schema first. Conformed dimensions across finance and supply chain. Measures defined once in the semantic model — never duplicated in reports. Business logic lives in the model, not in Excel.

SQL Server 2016 — options and end-of-life plan

SQL Server 2016 — what migration options would you suggest?
SQL Server 2016 extended support ends 14 July 2026 — this is urgent for any organisation still on it.

Option A — Azure SQL Managed Instance (recommended for most): Near 100% SQL Server feature compatibility. SSIS can run via Azure-SSIS Integration Runtime. Linked servers and Agent jobs supported. Lowest code change for legacy ETL and stored procedures.

Option B — SQL Server 2022 on-prem / Azure VM: If data sovereignty or latency rules out cloud. Use DMA (Data Migration Assistant) for compatibility assessment. Plan a side-by-side migration with log shipping or Always On for cutover.

Option C — Azure SQL Database: For smaller, cloud-native workloads without SQL Agent or cross-database dependencies. Cheapest but least compatible with legacy SSIS/linked server patterns.

Option D — Synapse dedicated SQL pool / Fabric Warehouse: For analytical workloads only — not OLTP. Migrate the data warehouse tier here; keep OLTP on MI or SQL 2022.

Recommendation framework: Run DMA assessment first. Classify each database as OLTP, staging/ETL, or warehouse. OLTP → MI or SQL 2022. Warehouse → Synapse or Fabric. Staging → ADF + ADLS medallion architecture. Avoid migrating everything to a single target.
SQL Server 2016 — 90-day action plan:
Days 1–30: Inventory all SQL 2016 instances (Microsoft Assessment and Planning Toolkit). Classify databases. Identify SSIS/SSAS/SSRS dependencies.
Days 31–60: Run DMA compatibility reports. Pilot one non-critical database to Azure MI. Test SSIS packages on Azure-SSIS IR.
Days 61–90: Present migration wave plan to leadership with cost, risk, and timeline per wave. Secure budget. Begin Wave 1 (dev/test environments first).

Documentation — SSAS, SSIS, and data flows

How do you create clear documentation for SSAS, SSIS, and data flows?
I use a three-tier documentation model — one page per tier, no 200-page documents nobody reads:

Tier 1 — Executive one-pager: What systems exist, what business questions they answer, who owns them, when they refresh, and what happens if they go down.

Tier 2 — Data flow diagrams (SSIS / ADF): One diagram per pipeline showing source → transform → destination. Annotate with refresh schedule, row counts, SLA, and error handling. Tool: draw.io or Visio, stored in Git alongside the code.

Tier 3 — Technical deep-dive:
SSIS: Export packages to source control. Document each package: purpose, source connection, destination, key transforms, variables, and error flow. Auto-generate lineage using tools like Azure Purview or SSIS Documenter.
SSAS: Measure dictionary (business name, formula, source, owner). Dimension attribute list with hierarchies. Processing schedule and dependencies. Export model via Tabular Editor to JSON in Git.
Data flows: Medallion layer map — Bronze (raw), Silver (cleansed), Gold (business-ready). Each table: grain, primary key, refresh method (full/incremental/CDC), and downstream consumers.

Golden rule: Documentation lives in the same repo as the code. If it's in a Word doc on SharePoint, it's already out of date.

90-day approach for BI modernisation programmes

Days 1–30 · Listen & map

Stabilise & discover

Meet business owners in supply chain, finance, and warehouse ops. Inventory all SQL Server 2016 instances, SSIS packages, SSAS models, and SSRS reports. Map data flows end-to-end. Identify the top 10 reports by usage. Do not change anything yet.

Days 31–60 · Assess & pilot

Prove the path

Run DMA assessment on SQL 2016. Pilot one SSIS package in ADF. Rebuild one critical SSAS measure in a tabular model. Reconcile numbers with business. Document findings. Present a phased modernisation roadmap with cost and risk.

Days 61–90 · Plan & execute Wave 1

Deliver quick wins

Migrate dev/test SQL 2016 to Azure MI. Move 2–3 high-value reports to Power BI. Establish XMLA backups and Git-based documentation. Set up CDC for one ERP data source. Get business sign-off before touching production cubes.

Risks and mitigations

Risk Impact Mitigation
No SSAS documentation or backup Wrong numbers after migration Reverse-engineer before changing. Parallel-run old vs new for 4+ weeks. Business sign-off per report.
SQL Server 2016 end of support (Jul 2026) Security/compliance breach Prioritise internet-facing and PCI/SOX-scoped instances first. Azure MI for fastest compliant path.
Hidden business logic in SSIS/cube Silent data corruption Row-count and checksum reconciliation at every layer. Automated data quality tests in ADF.
Users resist leaving Excel/SSRS Low adoption of Power BI Replicate familiar layouts first. Train power users. Keep SSRS running in parallel until confidence builds.
ERP cutover breaks CDC pipeline Stale analytics Qlik Replicate or ADF CDC with monitoring alerts. Fallback to scheduled full loads. Runbook for DBA.
Scope creep across supply chain modules Delayed delivery Wave-based plan: finance first, then inventory, then WMS. Fixed timelines per wave with steering committee.
India/HK timezone support gaps Long incident resolution Follow-the-sun runbook. Train 1–2 local engineers. Escalation matrix with SI partner (TCS/Wipro/HCL).

Users struggling with the existing SSAS cube — your solution

If current users are struggling with the existing SSAS cube, what is your solution?
First, diagnose why they're struggling — the fix depends on the root cause:

If it's performance: Check query patterns in SSAS DMVs. Add aggregations, partition large measure groups, or migrate to tabular with columnstore compression. For real-time needs, use DirectQuery against indexed SQL views rather than processing a 50GB cube nightly.

If it's complexity (too many dimensions, confusing hierarchies): Don't fix the cube — build a thin semantic model on top with only the 15–20 measures users actually need. Deploy as a Power BI dataset with curated perspectives per role (warehouse vs finance vs procurement).

If it's tooling (Excel pivot tables are clunky): Migrate consumption to Power BI with pre-built dashboards. Keep the SSAS cube as the engine underneath initially — users get a modern UI without a risky backend change on day one.

If it's data freshness (yesterday's stock levels): Introduce CDC from ERP to staging SQL, process the cube incrementally every hour instead of nightly full refresh. Or bypass the cube for operational dashboards using DirectQuery.

If it's training (users don't understand the data): Publish a measure dictionary. Run 1-hour workshops per team. Assign a BI champion in each department.

Recommended approach: Do not rip out the cube on day one. Put a modern consumption layer in front of it — Power BI with a simplified semantic model — fix freshness with incremental processing, and migrate the engine to Azure Analysis Services or Fabric in Wave 2 once users trust the numbers.
Summary: Legacy D365 and SQL Server stacks can be stabilised, documented, and modernised in waves while keeping business operations running. At HSBC, a programme replicated on-prem ERP data to Azure with Qlik CDC and delivered Power BI for enterprise analytics. At Cathay, cargo and supply chain systems demonstrated how reporting accuracy directly affects operations — the same discipline applies when migrating off SQL Server 2016 before end of support in July 2026.