A perennial problem with relationship databases is how to actually visualise the links between the records and information. With Microsoft Dynamics CRM 2015 (Vega), Microsoft has implemented a completely new way to look at records and their relationships to records of the same entity. Microsoft has called this new visualisation component Hierarchy Visualizations and in my view gives the user an unprecedented insight into how the data relates to itself and other pieces of information available.
First of all, lets look at how to set it up and then we will discuss the implications of what is being displayed to the user.
In the same way that certain system entities are enabled for Bing Maps in Dynamics CRM 2013, Microsoft have chosen to do exactly the same thing for Hierarchy Visualizations in Dynamics CRM 2015 for entities like Accounts and Users. These entities have the Hierarchy component already enabled and this cannot be switched off. To be fair, it does make sense since you are most likely to require a hierarchical view of account and users, however, the component must be explicitly enabled for custom entities.
It should also be noted that Dynamics CRM 2015 only allows you to set up one hierarchy visualisation per entity and the Parent and Related entities must be of the same type.
Imagine we want to view a hierarchy for Cases. First of all, the settings can be maintained in the 1:N relationship. If you attempt to create more than one Hierarchy, then any others that were previously set will be unset automatically. Remember, you can only have one per entity.
Cases also has a Hierarchy Settings section where the actual implementation magic happens.
The purpose of the Hierarchy Setting record is to define which 1:N relationship to use (the one you just created above) and which Quick View Form to use for the tiles that will appear in the visualisation frame. You can use either OOTB Quick View forms or you can usefully create a brand new one specifically for this purpose containing information pertinent to what you are trying to do.
It should be noted that there are some slight limitations here.
- The hierarchy view tile will only utilise the first 4 fields in the View, so unfortunately, not very rich.
- You can only have one hierarchy setting per entity although the interface does appear to imply that you can have more.
- Hierarchy Settings are stored within the solution and therefore can be exported or imported across organisations. Obviously, this has implications for existing hierarchy views developed in other systems.
Step one is to create the Setting and if you don’t have a Quick View already to go, you can create one directly from the input form.
As you have created the relationship and the Quick View above, you can navigate to the Grid for the entity and there will be a new icon to identify that there is a hierarchical relationship between the entities.
This will work with any view, either the built in system views or a custom created view. In this example, I have created a view called Related Cases which will isolate any case that has a hierarchical relationship. Regular users of Advanced Find will note that there are a few new system attributes on hierarchy enabled entities which can be used for this purpose.
Further to this, there are a couple of additional attributes in the Advanced Find which can also help to isolate relational information. For instance, if we wanted our Advanced Find query to only show child cases for a parent case, we can use the new UNDER operator. There is a reciprocal operator of NOT UNDER.
The user can now click on the Hierarchy icon and a new window will pop open showing a graphical representation of the Grid data above. The user can navigate back to the case via the tile. Sadly, the case hierarchy appears to only allow 2 levels of depth, so there is no ability to keep adding child cases to child cases forever but this appears to be more to do with Cases themselves than the actual hierarchy mechanism. Accounts for instance allow as many layers as you like. Hierarchy information can also be reached via the actual entity and appears as an additional option in the ribbon as well as a quick button at the top right of the form.
Just to prove that Hierarchy is not limited to the two apparent levels of Cases, here is a hierarchy of Accounts.
By clicking on a tile, a number of options become available. For instance, the user can assign the case, email a link, follow, un-follow, start a dialog or run a workflow from this frame.
Each tile is fully URL enabled and so clicking on the Customer for instance will pop open the correct Account record. Further to that, this entire mechanism is also available in the mobile client and so a Sales Person could potentially view this sort of hierarchical view on their tablet.
There is also a new Hierarchy Security settings page where you can limit the types of hierarchy available and to which entities.
There are limitations to this new component, not least of which is the fact that there is no ability (at this time) to visualise links between different entities (Accounts and Competitors anyone?) and nor does it really show much more than you would be able to visualise yourself, but it is a definite start. I would like to see the same implementation on Connections for instance which would potentially prove more interesting from a business point of view. At this time there is also no mechanism to add the hierarchy view to a dashboard which would so be quite helpful and unfortunately, even adding a grid to a dashboard does not overcome the problem since the hierarchy icon is omitted from the list.