{"id":8482,"date":"2025-02-21T14:19:59","date_gmt":"2025-02-21T14:19:59","guid":{"rendered":"https:\/\/www.aegissofttech.com\/insights\/?p=8482"},"modified":"2026-03-18T10:55:02","modified_gmt":"2026-03-18T10:55:02","slug":"dynamics-365-ce-data-migration-using-adf","status":"publish","type":"post","link":"https:\/\/www.aegissofttech.com\/insights\/dynamics-365-ce-data-migration-using-adf\/","title":{"rendered":"Tutorial: Dynamics 365 CE Data Migration Using ADF"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction to Dynamics 365 CE Data Migration using ADF<\/h2>\n\n\n\n<p>Dynamics 365 CE Data Migration using ADF can be necessary for various reasons, such as archiving historical data, integrating with other systems, or performing data analysis in a different environment. However, extracting and transforming data from <a href=\"https:\/\/www.aegissofttech.com\/dynamics-365\/crm\">Dynamics 365 CE Service<\/a> can be challenging due to its complex data model and security considerations.<\/p>\n\n\n\n<p>Azure Data Factory (ADF) offers a robust solution with its Metadata-Driven Pipeline feature. This approach of Dynamics 365 CE Data Migration using ADF enables you to define your data extraction process using metadata, including source entities, data fields, and transformations.<\/p>\n\n\n\n<p>By leveraging this Dynamics 365 CE Data Migration using ADF approach, you can<strong>:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Streamline data extraction:<\/strong> Automate the process of identifying and retrieving data from Dynamics 365 CE.<\/li>\n\n\n\n<li><strong>Improve data quality:<\/strong> Ensure data consistency and accuracy during the extraction process.<\/li>\n\n\n\n<li><strong>Enhance security:<\/strong> Implement robust security measures to protect sensitive data during migration.<\/li>\n\n\n\n<li><strong>Increase efficiency:<\/strong> Accelerate the data extraction process and reduce manual effort.<\/li>\n<\/ul>\n\n\n\n<p>In this blog, we will attempt to move Case records from Dataverse to Azure Storage Account Container as a JSON blob file.<\/p>\n\n\n\n<p><strong>READ &#8211;<\/strong> <a href=\"https:\/\/www.aegissofttech.com\/insights\/filter-in-dynamiccs-365-ce-canvas-apps\/\" target=\"_blank\" rel=\"noreferrer noopener\">Filtering Dynamics 365 CE in Canvas Apps with Option-Sets Tutorial<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Steps for Dynamics 365 CE Data Migration using ADF<\/h3>\n\n\n\n<p><strong>Step 1:<\/strong><\/p>\n\n\n\n<p>Visit your Azure Resource group and create a <em>Data Factory <\/em>resource. Once deployed, launch the studio.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"490\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-4-1024x490.png\" alt=\"Azure Resource Group\" class=\"wp-image-8486\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-4-1024x490.png 1024w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-4-300x143.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-4-768x367.png 768w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-4.png 1125w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"470\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-5-1024x470.png\" alt=\"Create Data Factory Resource\" class=\"wp-image-8487\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-5-1024x470.png 1024w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-5-300x138.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-5-768x352.png 768w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-5.png 1125w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Step 2:<\/strong><\/p>\n\n\n\n<p>In the ADF studio, create Linked Services for your <strong><a href=\"https:\/\/www.aegissofttech.com\/dynamics-365\/crm\" target=\"_blank\" rel=\"noreferrer noopener\">Microsoft Dynamics 365 CRM<\/a><\/strong> or Dataverse D365 CE environment and the target Azure Storage Account Blob container.<\/p>\n\n\n\n<p><strong>Dataverse Linked Service:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"347\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-6-1024x347.png\" alt=\"Dataverse Linked Service\" class=\"wp-image-8488\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-6-1024x347.png 1024w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-6-300x102.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-6-768x260.png 768w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-6.png 1131w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>It is highly recommended to choose the<em> Service Principal <\/em>as the Authentication Type. Once you have entered the values for Application ID and the Secret key, test the connection.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"464\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-7-1024x464.png\" alt=\"Service Principal as Authentication Type\" class=\"wp-image-8489\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-7-1024x464.png 1024w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-7-300x136.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-7-768x348.png 768w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-7.png 1125w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Azure Storage Account Linked Service:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"320\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-8-1024x320.png\" alt=\"Azure Storage Account New Linked Service\" class=\"wp-image-8490\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-8-1024x320.png 1024w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-8-300x94.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-8-768x240.png 768w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-8.png 1125w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"984\" height=\"514\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-9.png\" alt=\"Azure Storage Account Linked Service\" class=\"wp-image-8491\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-9.png 984w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-9-300x157.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-9-768x401.png 768w\" sizes=\"(max-width: 984px) 100vw, 984px\" \/><\/figure>\n\n\n\n<p><strong>Step 3:<\/strong><\/p>\n\n\n\n<p>Once both the Linked Services are created, navigate back to your ADF studio, click on the <em>Ingest<\/em> option and choose metadata-driven Copy Task. From there, we will set up the Control Table.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"963\" height=\"297\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-10.png\" alt=\"Ingest Option\" class=\"wp-image-8492\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-10.png 963w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-10-300x93.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-10-768x237.png 768w\" sizes=\"(max-width: 963px) 100vw, 963px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"961\" height=\"498\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-11.png\" alt=\"Metadata-driven Copy Task\" class=\"wp-image-8493\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-11.png 961w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-11-300x155.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-11-768x398.png 768w\" sizes=\"(max-width: 961px) 100vw, 961px\" \/><\/figure>\n\n\n\n<p><strong>Step 4:<\/strong><\/p>\n\n\n\n<p>Have an SQL Server and DB as prerequisite.&nbsp; Now, select Type as Azure SQL Database, choose your Azure Subscription, Sever Name, Database Name &amp; Authentication Type = <em>System Assigned Managed Identity.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"425\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-12-1024x425.png\" alt=\"SQL Server and DB as Prerequisite\" class=\"wp-image-8494\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-12-1024x425.png 1024w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-12-300x125.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-12-768x319.png 768w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-12.png 1031w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Step 5:<\/strong><\/p>\n\n\n\n<p>Here comes the most important bit. We need to configure the system assigned managed identity by running a T-SQL script in SSMS (SQL Sever Management Service) tool. The script would create the Managed Identity as a user and elevate the privileges to DB owner.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"395\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-13.png\" alt=\"Running T-SQL Script in SSMS\" class=\"wp-image-8495\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-13.png 975w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-13-300x122.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-13-768x311.png 768w\" sizes=\"(max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><em>CREATE USER &lt;Managed Identity&gt; FROM EXTERNAL PROVIDER;<\/em> <em>ALTER ROLE db_owner ADD MEMBER [Managed Identity]<\/em><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Step 6:<\/strong><\/p>\n\n\n\n<p>Test connection to the Linked Service.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"571\" height=\"771\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-14.png\" alt=\"Test Connection to Linked Service\" class=\"wp-image-8496\" style=\"width:611px;height:auto\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-14.png 571w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-14-222x300.png 222w\" sizes=\"(max-width: 571px) 100vw, 571px\" \/><\/figure>\n\n\n\n<p><strong>Step 7:<\/strong><\/p>\n\n\n\n<p>Next, specify your data source as your Dataverse Linked Service.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"787\" height=\"381\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-15.png\" alt=\"Specify Data Source\" class=\"wp-image-8497\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-15.png 787w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-15-300x145.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-15-768x372.png 768w\" sizes=\"(max-width: 787px) 100vw, 787px\" \/><\/figure>\n\n\n\n<p><strong>Step 8:<\/strong><\/p>\n\n\n\n<p>We select the first table for which we wish to fetch the data from. In our instance, we are selecting the Case (Incident) table.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"985\" height=\"337\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-16.png\" alt=\"Select Case (Incident) Table\" class=\"wp-image-8498\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-16.png 985w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-16-300x103.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-16-768x263.png 768w\" sizes=\"(max-width: 985px) 100vw, 985px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"978\" height=\"499\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-17.png\" alt=\"Choose Loading Behavior\" class=\"wp-image-8502\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-17.png 978w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-17-300x153.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-17-768x392.png 768w\" sizes=\"(max-width: 978px) 100vw, 978px\" \/><\/figure>\n\n\n\n<p><strong>Step 9:<\/strong><\/p>\n\n\n\n<p>On the next step, select the Azure Blob Linked Service as Destination Data Store, specifying the target file path and name.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"892\" height=\"389\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-18.png\" alt=\"Destination Data Store\" class=\"wp-image-8503\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-18.png 892w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-18-300x131.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-18-768x335.png 768w\" sizes=\"(max-width: 892px) 100vw, 892px\" \/><\/figure>\n\n\n\n<p><strong>Step 10:<\/strong><\/p>\n\n\n\n<p>Next, select the JSON file format with the &#8216;Array of objects&#8217; pattern. JSON is an ideal format for staging areas in modern <a href=\"https:\/\/www.aegissofttech.com\/data-warehouse-services\" target=\"_blank\" rel=\"noreferrer noopener\">data warehousing<\/a>, as it allows for semi-structured data exploration before it is moved into a permanent analytical warehouse.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"625\" height=\"490\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-19.png\" alt=\"File Format Settings\" class=\"wp-image-8504\" style=\"width:666px;height:auto\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-19.png 625w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-19-300x235.png 300w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/figure>\n\n\n\n<p><strong>Step 11:<\/strong><\/p>\n\n\n\n<p>On the next step, we ensure that the system has auto-mapped the fields correctly.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"400\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-21-1024x400.png\" alt=\"Schema Mapping\" class=\"wp-image-8506\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-21-1024x400.png 1024w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-21-300x117.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-21-768x300.png 768w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-21.png 1125w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Step 12:<\/strong><\/p>\n\n\n\n<p>We give a custom name to the our ADF Copy Task.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"897\" height=\"380\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-22.png\" alt=\"Custom Name to ADF Copy Task\" class=\"wp-image-8507\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-22.png 897w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-22-300x127.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-22-768x325.png 768w\" sizes=\"(max-width: 897px) 100vw, 897px\" \/><\/figure>\n\n\n\n<p><strong>Step 13:<\/strong><\/p>\n\n\n\n<p>Finally, we check the summary of this entire configuration before we click Finish.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"728\" height=\"593\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-23.png\" alt=\"Check the Summary\" class=\"wp-image-8508\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-23.png 728w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-23-300x244.png 300w\" sizes=\"(max-width: 728px) 100vw, 728px\" \/><\/figure>\n\n\n\n<p><strong>Step 14:<\/strong><\/p>\n\n\n\n<p>On the completion of deployment, we will get an SQL script generated. We execute it in the SSMS tool as a new query.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"623\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-24.png\" alt=\"Deployment Complete\" class=\"wp-image-8509\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-24.png 960w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-24-300x195.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-24-768x498.png 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"506\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-25-1024x506.png\" alt=\"SQL Script Generated\" class=\"wp-image-8510\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-25-1024x506.png 1024w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-25-300x148.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-25-768x380.png 768w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-25.png 1125w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Step 15:<\/strong><\/p>\n\n\n\n<p>After the successful execution of the script, we finish setting up the entire configuration on the Azure portal. We would see that under our pipeline, 3 tasks components are created which will drive our Integration \u2013 Top Level (Control Table), Middle Level &amp; Bottom Level.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"474\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-27-1024x474.png\" alt=\"Setting up Configuration on Azure Portal\" class=\"wp-image-8512\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-27-1024x474.png 1024w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-27-300x139.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-27-768x356.png 768w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-27.png 1125w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>READ &#8211; <a href=\"https:\/\/www.aegissofttech.com\/insights\/ultimate-dynamics-365-crm-guide\/\" target=\"_blank\" rel=\"noreferrer noopener\">The Ultimate Dynamics 365 CRM Guide<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Unit Testing<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>We execute the Pipeline by clicking the <em>Debug <\/em>button and very for the execution of the 3 tasks.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"460\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-28-1024x460.png\" alt=\"\" class=\"wp-image-8513\" style=\"width:650px;height:auto\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-28-1024x460.png 1024w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-28-300x135.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-28-768x345.png 768w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-28.png 1045w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>We confirm that Incident JSON blob is created as expected.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"240\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-29-1024x240.png\" alt=\"\" class=\"wp-image-8514\" style=\"width:651px;height:auto\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-29-1024x240.png 1024w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-29-300x70.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-29-768x180.png 768w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-29.png 1125w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Resultant JSON array is as follows:<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"188\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-30-1024x188.png\" alt=\"\" class=\"wp-image-8515\" style=\"width:654px;height:auto\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-30-1024x188.png 1024w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-30-300x55.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-30-768x141.png 768w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-30.png 1125w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>We also add the \u201cSubject\u201d table to the list of tables as follows.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"693\" height=\"361\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-31.png\" alt=\"\" class=\"wp-image-8516\" style=\"width:657px;height:auto\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-31.png 693w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-31-300x156.png 300w\" sizes=\"(max-width: 693px) 100vw, 693px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"903\" height=\"245\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-32.png\" alt=\"\" class=\"wp-image-8517\" style=\"width:652px;height:auto\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-32.png 903w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-32-300x81.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-32-768x208.png 768w\" sizes=\"(max-width: 903px) 100vw, 903px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>We again get an updated T-SQL script that we will execute again in SSMS tool.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"685\" height=\"426\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-33.png\" alt=\"\" class=\"wp-image-8518\" style=\"width:651px;height:auto\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-33.png 685w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-33-300x187.png 300w\" sizes=\"(max-width: 685px) 100vw, 685px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"689\" height=\"555\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-34.png\" alt=\"\" class=\"wp-image-8519\" style=\"width:654px;height:auto\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-34.png 689w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-34-300x242.png 300w\" sizes=\"(max-width: 689px) 100vw, 689px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Now our Control Table has 2 rows, 1 for Case and another row for Subject.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"314\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-35-1024x314.png\" alt=\"\" class=\"wp-image-8520\" style=\"width:652px;height:auto\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-35-1024x314.png 1024w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-35-300x92.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-35-768x236.png 768w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-35.png 1125w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Finally, when we execute our pipeline again, we confirm that JSON blobs are created for both now \u2013 Case and Subject tables.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"307\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-36-1024x307.png\" alt=\"\" class=\"wp-image-8521\" style=\"width:657px;height:auto\" title=\"\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-36-1024x307.png 1024w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-36-300x90.png 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-36-768x230.png 768w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/02\/image-36.png 1093w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion &#8211; Dynamics 365 CE Data Migration using ADF<\/h2>\n\n\n\n<p>Hence, we learnt in this blog how we can implement Dynamics 365 CE Data Migration using ADF metadata-driven pipelines. The <strong><a href=\"https:\/\/www.aegissofttech.com\/dynamics-365\/crm\" target=\"_blank\" rel=\"noreferrer noopener\">Dynamics 365 CRM consulting<\/a><\/strong> team appreciated how easy it is to configure for multiple Dataverse tables.<\/p>\n\n\n\n<p><strong>Read more:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.aegissofttech.com\/insights\/dynamics-365-ce-custom-api-from-3rd-party\/\">Consuming a Dynamics 365 CE Custom API from a 3rd Party<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.aegissofttech.com\/insights\/tools-used-by-d365-crm-developers\/\" target=\"_blank\" rel=\"noreferrer noopener\">9+ Top Tools for Dynamics 365 CRM Developers<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":" ","protected":false},"author":11,"featured_media":8623,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[19,1173,21],"tags":[1163,1162,1164],"class_list":["post-8482","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dynamics-365","category-dynamics-365-ce","category-dynamics-crm","tag-data-migration-using-adf","tag-dynamics-365-ce-data-migration","tag-metadata-driven-pipelines"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/posts\/8482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/comments?post=8482"}],"version-history":[{"count":9,"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/posts\/8482\/revisions"}],"predecessor-version":[{"id":18388,"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/posts\/8482\/revisions\/18388"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/media\/8623"}],"wp:attachment":[{"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/media?parent=8482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/categories?post=8482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/tags?post=8482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}