There is a great old sitcom, “Different Strokes”, where the catchphrase “What’chu talkin’ ‘bout, Willis?” became popular. In the Microsoft Dynamics community, many of us are asking that question. Working as a Microsoft Dynamics consultant for the past seven years has exposed me to a variety of problems to solve: from Microsoft Dynamics 365 for Finance & Operations to Customer Engagement integrations using Common Data Model (CDM) or not using CDM to replacing SOAP services with function apps or logic apps and everything in between with PowerApps replacing separate line of business applications. No matter the speciﬁ cs in the scope of work, the root issue was, “how do we make business decisions using data that is located outside of our business platform?” I have determined this is more often a communication issue than it is a technical problem. This does not fall on Microsoft but on the implementers and admins. In any project the vocabulary gets thrown around with terms like API, integration, cloud, web services, and RESTful all being used interchangeably. To technologists these terms are not describing the same thing. In my mind we have begun solving problems with descriptions of the solution rather than discovery of the needs. This article will take this context as the foundation for exploring the Microsoft Power Platform and CDM and their roles in today’s Microsoft Dynamics 365 for Customer Engagement projects. I will provide some key steps to work through this miscommunication. But ﬁ rst, let’s get some clarity.
What’s in a Name? The naming game over the past years has really caused some confusion for admins and Users in the Microsoft Dynamics community from 4.0 to CRM Online, to Microsoft Dynamics 365 for Customer Engagement, Talent, Retail, Sales, Field Service, Project Automation, etc. One Microsoft MVP, Jukka Niiranen, has a great blog, survivingcrm.com, and covers this platform advantage in great detail in the post “Top 3 Themes for Dynamics 365 in 2018”. If you want to learn more details about the platform, please review the post at https://survivingcrm.com/2018/12/top-3-themes-fordynamics-365-in-2018/. For clarity, the current environment vocabulary is as follows:
» CDM = Common Data Model for Apps (aka Common Data Service/Model, CDM, or XRM) Part of Power Platform providing “Data Integrator” tool.
» P2C = Dynamics 365 Prospect to Cash solution Provides synchronization of data for accounts, contacts, products, quotes, orders, and invoices.
However, I am not going to debate any of this or discuss how cool this has become. There are plenty of great reviews out there of these tools. We are talking about PRACTICAL application of the CDM in a business environment and the reasonable application of the supporting parts of the platform that would be useful.
Here is a list of common statements I hear on projects. » Data exists in other systems outside of my business process application. • We need this data available to our Users in a “just-in-time” format. • We don’t want to pay for storage of data in multiple places and keep them in sync. » The business application solution is slow, especially when making large queries to custom services. » We need to keep our on-premises data secure while opening access to our online business applications. » Business needs change too frequently. • Customer needs change too frequently. • IT and internal app support cannot maintain true lifecycle management or traditional project delivery with this rapid changing environment. ❚ Believe it or not, this one comes from IT and tech professionals directly.
Step One – Know the Difference
If you are reviewing and evaluating the need for a common data model, then we are basically talking about exchanging information. Data is exchanged in three ways: » Integration – to form, coordinate, or blend into a functioning or uniﬁ ed whole » Synchronize – to happen at the same time, to indicate coexistence » Interface – to provide the capability of intersystem communications I have heard these terms used interchangeably. They are not the same thing. Get down to the true need for the business. Does the User only need to access information to decide then modify data in the host system, do they need to only read data, but no updates, or does the data need to be owned in both locations? We need to know the difference between these types of data exchanges in order to determine how to solve the need.
Step Two – CDM or Not to CDM
Each environment in CDM is based on common entities. There are great UI tools for managing the data model. Environments can share one CDM, or each environment can have its own CDM. A Model Driven PowerApp is a small core CRM instance provisioned within your tenant. This includes the core entities, business rules, process workﬂ ows, actions, security roles, and same SDK as any full DCE instance. Therefore, you could say this creates “xRM lite” as a data Model Driven PowerApp. The database behind that instance is the CDM for that environment. Open Advanced Options and see the same solution explorer window you would see from within DCE. Also, this instance is listed among other instances of Microsoft Dynamics 365 for Customer Engagement.
WHERE I FIND THE CDM HELPFUL:
- Multiple systems
- Variable business needs -
- Each line of a business has strong demands on the data independent of each other
- Integration on-premises currently uses staging tables
- Think of CDM as staging table for data
- Access is limited in host system » Business admins are citizen developers
WHERE DO I FIND THE CDM NOT HELPFUL:
- Just trying to exchange between Microsoft Dynamics 365 for Customer Engagement and Microsoft Dynamics 365 for Finance & Operations
- The data integrator tool handles this without a staging table.
- Lines of business agree with data structure and end purpose of data elements
- Data storage not an issue
- Existing data policy in an organization can be too rigid to adopt CDM
- Organization lacks strong internal change management
- Management of CDM is going to be a new process and requires effort within an organization to design and implement this new process.
Step Three – There’s an App for That After determining the need for each exchange, then determining the role of a centralized standard data model, you are ready to determine if PowerApps plays a part in this new design. The need should be answered by building smaller applications which accomplish speciﬁ c business tasks. You can use PowerApps if you have this kind of need. This is only reasonable for small and middle size organizations now that we have the Power Platform.
APP DELIVERY MODEL:
- Create Model Driven PowerApp.
• Develop apps which are common for the business.
• App lifecycle management is possible in this instance.
- Each department can pick up these apps from a central location.
• They are solution zip ﬁ les, after all.
- Synchronize core data elements from their source systems using Azure Function Apps, or Logic Apps, or just Flow. These are listed from most complex to least complex.
• Use CDM like a service bus; each department can use Flow to subscribe to the data entities that matter.
• Why not use service bus? Easier to teach admins to manage ﬂ ow than to support custom code managing the black hole which service bus customizations become.
- Share apps across departments as each department develops their own solutions.
- Rinse and repeat.
What Was I Talking About? This is a large topic. There are a lot of changes occurring faster than the professionals can document. My point is, get back to the basics. SOLVE THE BUSINESS NEED, stop selling solutions, and implement tech that is relevant, which makes Users happy, and that makes the client happy.