I think it’s the first time I’m writing a blog post about a feature that I can’t really try, at least not yet. Virtual Entities.. What could be the holy grail of integrations.. They are coming in the next release, so I can’t stop thinking of what this might mean for all the integrations we have to implement so often on the Dynamics projects?
There are a couple of posts that will give you a good idea of what to expect:
https://blogs.technet.microsoft.com/lystavlen/2017/09/08/virtual-entities/
In theory, it might be the end of integrations. If we could simply surface external data in Dynamics, this would mean we don’t really need to move that data back and forth between Dynamics and other sources.. we could just create a virtual entity and work with that data in Dynamics.
There is no argument implementing something like that would be a huge undertaking even for the Dynamics development team (although, it would be a killer feature), so.. how far have they got it this time?
I think there are a few major limitations:
- All data surfaced through the Virtual Entities is going to be read-only
- It seems all external data sources should support OData
- Dynamics security model is not applicable to the virtual entities
- We can’t register workflows/plugins on the virtual entities
Let’s imagine some scenarios..
1. We may want to display additional profile information normally stored in the external system on the contact forms in Dynamics
I’m not certain this is going to be possible for a couple of reasons:
- Somehow, we’ll need to create a quick view form for the virtual entity
- We will also need to create a lookup attribute in the contact entity that will be referencing that virtual entity
It seems this should be possible, though(see that powerobjects link above).
- 2. We may want to respond to the changes in the external data. For example.. What if account assets grow above a certain threshold where it’s supposed to become a VIP account?
That’s is going to be impossible since there is no way to register a workflow/plugin.
3. We may want to display some external assets associated with a contact record
It seems this is going to be possible using a subgrid(see that powerobjects link above).
Now, all of this would come at the cost.
We would have to explain to the users/stakeholders that all that data would be readonly. That would likely narrow the number of scenarios where we can really use this type of integration since, quite often, Dynamics is, actually, turned into a “master data source”.. so all the data updates are supposed to happen in Dynamics. In theory, we may still be able to support data updates using various web resources etc, but that would mean a lot of development.
Not all external data sources will be exposed through OData normally, so we may have to implement OData for those external services first. This will shift the focus from implementing the integrations in SSIS/Scribe to doing some extra development.. Keep in mind that ETL integrations have been around for quite a while – there are connectors for various data sources etc. More likely than not, similar OData connectors will start showing up for the same data sources, but, to start with, those OData web services will have to be hosted somewhere.
And, then, there is security. If we cannot control access to the virtual entity using Dynamics security roles, we will have to start implementing plugin-based security instead.
So, with all that said.. I’m still looking forward to the next release since I’m pretty sure there will be a few scenarios where virtual entities are going to represent the best integration option. Actually, they are going to be almost invaluable for the demo purposes.
However, it seems it’s still going to take a few more releases (at least) before we can actually forget about SSIS, Scribe, and other ETL tools. It’s just that we’ll have one more option now.
I think virtual entities can be a great asset and provide more options when it comes to certain integrations. I would stop short of putting it in the realm of holly grail. There are different situations VE can make sense and others where it doesn’t. Technically we’ve already had this capability for quite some time using plugins, it just wasn’t a formal feature until now. This is the first version of VE so we can expect enhanced functionality in the future.