Using Entity Mapping For Dynamics CRM Solution Documentation and Design


Editor’s note: The following post was written by Dynamics CRM MVP Leon Tribe

Using Entity Mapping For Dynamics CRM Solution Documentation and Design

It is sometimes the case we are thrown at a CRM system with no documentation and very little knowledge of how the system works and how it has been customized. Perhaps the system has gone out of use and is being revitalised or it is a CRM system from a different country and being localized and repurposed.

Obviously, we can review the system’s customisations and use a tool like Tanguy Touzard’s ToolBox for Dynamics CRM with its Metadata Document Generator to generate a report of the custom fields, but this still does not give a lot of insight into how the system is used.

There is another way to gain insight into an otherwise unknown system, which is through the entity model. How the entities in the system are related to each other provides insight difficult to gain from other techniques.

To show what I mean, I spun up a trial through Microsoft Office Demos. This is a great way for partners to spin up demos because they last for 90 days, rather than the usual 30 days. Another site which also offers 90 day trials of Dynamics CRM and Office 365 is Microsoft Dynamics Demos, which uses DemoBuilder. Both offer vertical samples for pre-sales demonstrations and are well worth checking out.

One word of warning though, unlike the openly available 30 day trials which are up in minutes, these take a few hours to provision but, for the content, are well worth the wait.

 

Once up, I began mapping the entity relationships. Obviously, if I was to map all the entities in Dynamics CRM, the result would be very complex and largely unreadable so I applied the following rules:

  •          Only map entities which have records stored against them in the system
  •          Only map those visible in Advanced Find (eliminating a lot of ‘system’ entities like Activity Party and Audit History)

Following these rules, I started with the Account entity and crawled through the structure of the system, mapping related entities revealed in the top menu bar and on the form as lookups.

 

In the end I removed the Activity and User entities because they infiltrate the entire system. Their ubiquity does give a clear indication that the management of users and activities are key elements of the standard CRM system. Another rule I sometimes adopt, when dealing with production systems, is to start out only mapping custom entities as this is where the insights often lie in modified systems.

Once I got the result into Visio and tried to minimise entity lines crossing over, this was the result.

 

 

There are still two lines crossing over but to eliminate these was impossible (at least for me) without removing the contact entity.

Considering this as a network diagram, there are two sources of insights:

  •          Which entities have the most connections
  •          Which entities are clustered together

In the case of the first source, the key entities are:

  •          Product (8 connections)
  •          Lead (5 connections)
  •          Contact (5 connections)
  •          Account (5 connections)
  •          Case (5 connections)

Focussing on these, we see these are the centres of the major parts of the CRM system:

  •      Product Management (Product)
  •      Contact Management (Accounts/Contacts)
  •      Sales Management (Lead)
  •      Enquiry/Service Management (Case)

 

These parts of the system also occupy regions in our diagram, addressing our second point.

 

 

We now have an insight into the ‘modules’ of our system which can be used to focus our investigation of the system to certain areas or can be used for sections in our documentation of the system.

If you are thrown at a system with minimal documentation, consider mapping the entities, like I have done above. This will provide insight into the key entities of the system and how it is modularized. This will give you a mental framework for approaching the system and also a way of attacking future investigations, focussing on specific areas.

 

About the author

 

Leon helps others make the world a better place by using technology to make them more efficient and effective. The technology he employs is Dynamics CRM. He has worked with CRM systems since the late 1990s and now works as a Principal Consultant for Oakton in Sydney, Australia. An engaging public speaker, highlights include presenting at Microsoft’s Headquarters at Redmond and co-presenting at Microsoft’s offices in Sydney to hundreds of not-for-profit representatives. In recognition of his passion and focus on Dynamics CRM, Leon was awarded Microsoft’s Most Valuable Professional (MVP award) in 2009.  Follow Leon on Twitter

 

 About MVP Mondays

 

 

The MVP Monday Series is created by Melissa Travers. In this series we work to provide readers with a guest post from an MVP every Monday. Melissa is a Community Program Manager, formerly known as MVP Lead, for Messaging and Collaboration (Exchange, Lync, Office 365 and SharePoint) and Microsoft Dynamics in the US. She began her career at Microsoft as an Exchange Support Engineer and has been working with the technical community in some capacity for almost a decade. In her spare time she enjoys going to the gym, shopping for handbags, watching period and fantasy dramas, and spending time with her children and miniature Dachshund. Melissa lives in North Carolina and works out of the Microsoft Charlotte office.

 

 

 

 

Comments (1)

  1. Paul says:

    I downloaded the CRM SDK and used the Metadatadiagramconsole.exe (compiled in Visual Studio 2013) to generate similar diagrams.  It generates Visio diagrams (f Visio is installed on the workstation executing the tool) and highlights accurate 1:M relationships

    Metadatadiagramconsole.exe <entity_name> <entity_name> [..]  to provide a list of entities to resolve,

    or

    Metadatadiagramconsole.exe <entity_name> to provide a single starting entity and have CRM provide the references.

    or

    Metadatadiagramconsole.exe

    to get all entities.

    http://www.microsoft.com/…/details.aspx

Skip to main content