Using Azure Data Factory V2 to Load Microsoft Dynamics 365 CRM from text file
The following will provide step by step instructions in how to load data into Microsoft Dynamics 365 using Azure Data Factory.
Having used SSIS and Kingsway software for a while to load CRM I was interested to try Azure Data Factory V2 and see if this is the future way forward. When looking on the web I found some demos and examples of using data factory, but only a few using Dynamics CRM. The only CRM examples I found were reading from CRM and not writing records into CRM, so I decided to for myself and the below are results.
Azure Data Factory — Recently released Version 2 supports Dynamics 365 as Source or Target, allows creation of pipeline for repeating jobs and suits high data volumes.
The following will show a step by step example of how to load data to Dynamics CRM 365 from flat file using Azure Data Factory.
Required
-Create a free 30-day trial Dynamics CRM instance
-Azure subscription either MSDN or paid
Create Blob Storage for Input file
View Blob Storage and create container
Create a text file with .csv extension containing the following data:
contactid,firstname,lastname,addressline1,addressline2,city,province,postcode,country,email,telephone,mobilephone
,Mark,Bronner,18 High Street,\N,Lakford,\N,IP23 9SW,\N,MB@bob.com,\N,\N
,Luke,Jones,Magui Lan,\N,Guangzhou,Guangdong,650031,Republic of China,LJ@adatum.com,012–156–8778,135–548–8797
,Kim,Smith,11111 William Nicol Drive,\N,Johannesburg,\N,2100,South Africa,KS@adventure.com,768–555–0156,\N
Upload the new text file to Azure
Select the new text file and click upload
Click on the new file uploaded to check
Click Edit Blob to check file format is as expected
Ensure contents are as expected
Create New Azure Data Factory component
Click Author & Monitor
Select Create Pipeline
Drag Copy onto the canvas from Dataflow
Click on Copy tile, then source, then click +New
Select Azure Blob Storage
In the Azure Blob Storage Dataflow select connection then +New
Set the parameters for your subscription and storage account name, then click test connection and Finish
Click ‘Source files contains column names in first row’ and then Browse and select the file you loaded to Azure Blob storage
Click on Schema, then import Schema and Set the contact Id type to GUID
Then click Publish All button at top
Click back to the Pipeline, then highlight the copy tile, click on Sink and then click on +New
Select Dynamics 365 and Finish
Click on Connection and +New
Set properties for Service Uri, User name and Password
Note at the time of writing (May 2018) this didn’t work with UK CRM instances — possibly fixed now
Select your CRM entity to load
Then Publish all button at top
Click back on the pipeline at the top, then the copy tile, then Mapping and then Import Schema and check your mappings are as expected
Click Validate and ensure no errors
Click Publish All at top, then Debug
A new Pipeline Run instance will be created
Refresh the view until it finishes (hopefully successfully) — any error messages can be seen by click on the icon on the pipeline run row
Log into CRM to see the new contacts created :)
Overall, I found Data Factory quite difficult to get used to and limited examples/detailed demonstrations didn’t help. I had problems where the Dynamics 365 connector didn’t support UK CRM instances, which Microsoft admitted was their issue. Also, it took me a while to understand how to get CRM to create the GUID’s — seems you need to include the primary key field in the source, target and mappings otherwise you get errors. However, if you leave the primary key field value NULL in the input file and select ignore NULL values in the Sink settings it doesn’t error.