Dynamics 365 as a platform has so much to offer for your organization. Be it, best in class Talent management, Sales & Marketing, Customer Service management, Field Service, Project Service automation(PSA), Retail, Finance & Operations management, Microsoft Dynamics 365 offers purpose built apps for each of these areas for organizations of any size, ranging from 5 – 10 employees to large enterprise organizations with 10,000 + users.
Any Tier 1 cloud ERP in the market today will probably provide you pretty much the major functionalities, that you would expect for your organization. However, what sets Microsoft Dynamics 365 apart from the crowd, is the platform itself. Along with purpose built, best-of-breed apps and functionality for all areas of your businesses, you also get the tools, services, technology and the best of Microsoft cloud. A few to name are,
- Common data Services for integrating business apps seamlessly.
- Microsoft PowerApps to build mobile apps and extend business processes easily with minimal or no coding needed .
- Microsoft Flow to automate routing, approvals, event based actions and notifications etc.
- Power BI for incredibly stunning data visualizations and data intelligence.
- Microsoft Azure technology stack, such as Azure functions, Artificial intelligence, Machine learning and much more.
Probably, no other business application platform provides this breadth of technology and functionality that Microsoft Dynamics 365 provides today.
In my last post, I explained the Common Data Service and the capabilities, what is coming etc. In this post today, I will share some of my findings of testing of Prospect to Cash integration scenarios between D365 Sales and D365 Finance & Operations.
One of the most common requirements of every ERP implementation is the integration of the Sales and marketing application with the Finance and operations application, to exchange business data such as Customer accounts, contacts, quotations, sales orders, products, invoices and more, so that the respective team members from different teams can get a 360 degree view of the customer’s data. The Microsoft Common data service aims to make it possible to integrate Dynamics 365 For Sales and Dynamics 365 For Finance and Operations out of the box, with various data project templates readily available for use.
Why Common Data Service?
You may argue why use Common Data Service to build integration between the apps/services Vs. just leveraging OData Service or even Customer services (REST/JSON). Sure, you can always leverage either OData Service or the Custom Services to build your integrations between D365 for Operations with other Dynamics 365 or other 3rd part services if you feel more comfortable with that approach. However, leveraging the CDS will give you advantages such as, voiding significant investments in writing custom integration that you need to maintain at a cost. Additionally surfacing business data from multiple business applications of your organization into CDS provides you the capability to create mission critical business intelligence using Power BI or even build custom apps with ease leveraging PowerApps.
Connection Sets in CDS:
Connection Sets defines what apps/services/systems you are going to connect for data exchange.
In PowerApps Admin center, I have already created my Connection Set, that establishes connection between my D365 For Sales and D365 For Finance and Operations apps. I also have done the Organization(s) mapping between these two apps, so that my data will surface in the required entities/organizations. Screenshot below shows the Connection set I have established. This is the first thing you need to setup, before you actually setup the data integration projects.
Data Integration projects in CDS:
The Data integration projects defines what entities are being integrated/synced between the two apps defined in the Connection set. It contains the following information.
- A template of the project (Predefined list of Data integration projects provided by Microsoft). Note: Currently, when you create a new data integration project, you are required to select a predefined template. This might change in future, where you can create your own mapping.
- Connection Set: Select the connection set you want to use within the data integrator project.
- Organization Mapping: Since you could define more than one organization mapping within one connection set, you will can select a organization mapping that is applicable for the data integrator project.
- Tasks: The data from the source app (D365 For Sales ) flows through the Common Data Service(CDS) to the Destination app(D365 For Operations). The tasks under the project contains the individual data field mapping between the entities in source app, CDS and destination app. It also contains the information such as how frequently the project should run (Manually Vs in Batch).
A default task comes automatically when you use a template to create a data integrator project, however, you can add your own tasks to the project, where you can map additional entities.
Now that the Data Integrator Project and the Connection sets are configured, let us see how the Customer account data automatically flows from D365 Sales to CDS and then from CDS to D365 For Operations. In this case, I will just run the project manually ( I could set it to run automatically also)
Below screenshot shows the new customer I have setup in D365 For Sales.
I ran the data integrator project now manually in CDS admin center. In an ideal scenario, you would set it up to run automatically.
When the project run successfully , you can see the detailed execution history which will tell that the data got successfully transmitted from source to destination (D365 Sales to D365 For Operations in this case). See screenshots below. This execution log helps you identify issues with data sync if any and take necessary actions.
Now that the execution happened successfully, let us go verify if the Customer account got successfully created in D365 For Operations.
This was my testing just for one scenario of passing Customer account data from D365 from Sales to Operations for this blog post. There are other templates that addresses the full picture of Prospect to cash scenario(See screenshot below) such as syncing,
- Contacts from Sales to Operations
- Products Operations to Sales”,
- Quotes from Sales to Operations
- Sales orders from Sales to Operations
- Sales Invoice details from Operations to Sales.
I am continuing my testing of all these other entities to see how the overall data flow looks between Sales and Operations. I will share results and findings later 🙂
A few important Notes (Just my thoughts) about these out of the box integrations in D365 using Common Data Services:
- The Common Data Service platform seems to be very promising and is absolutely the right step in the right direction for enabling integrations and extension scenarios for Dynamics 365.
- With all honesty, CDS platform and functionality is fairly new and we are seeing new capabilities being added frequently. At this point, I have some important questions such as the below, for which I have still trying to get answers . I certainly need to learn more.
- How does data updates/modifications/deletions sync.
- Why do I need to select a template always to create a new data project.
- What about notifications on execution history/results.
- What happens to Bi-directional data update for an entity.
- what is the data size/volume limitations for the Data integrator.
- I am also not very clear on the data security management of CDS . It looks like there are security roles and permissions that Microsoft provides in CDS, but looks like this needs to mature more.
- Right now, it seems like you can connect only Azure based services/apps. I don’t know how this will work with non-azure/external apps/services. At least, I have not tried yet.
- In my view, it does not look like the out of the box integration is ready for prime time, that customers can simply deploy and get going smoothly without issues. This will change significantly for sure in the months to come, when more features are released and bug fixes are out. I would imagine by the Fall of 2017, we should see a much robust out of the box integration using the CDS.
- Customers who are flexible to adopt the platform with a long term vision for success, can adopt the CDS integrations right away and go through the process of learning and will certainly get return on the investments in long term.