Mapping is one of the underappreciated out-of-the-box (OOB) features in Dynamics 365/CRM. In the good old days, it would take a lot of tedious code behind the scenes to get data from one record to be copied to a related record. And I guess that’s still true except Microsoft already wrote the code to do that in CRM for us and made it an easily accessible part of configuration that works on all sorts of record types and situations.
For those who haven’t yet taken advantage of mapping, you can work with it by navigating to any 1:N or N:1 relationship in Customizations or in your Solution and selecting ‘Mapping’ from the left Nav Pane. CRM will open a form for you that lets you add or delete mapping instructions that will cause data from the ‘1’ end of the relationship (let’s say an Account record) to be copied to a field in the ‘N’ part of the relationship (let’s say a Contact record). Very handy . . .
We’re not going to get into the mechanics of mappings today, but rather an application of them. In trying to make life easier for a Client I’m using mapping to store some data where it isn’t needed by the record that first receives it. However, a subsequent record does need that info and with a small bit of work, we can make lemonade out of a lemon.
The Beautiful Cascades
From the Account record, best practice dictates creating the Opportunity and then producing a Quote from that Opp record. Specific data from the Account cascades into the Opportunity and then from the Opportunity into the Quote.
But what if you have a situation where most of the time the Quote Bill To and Ship To Addresses are exactly the same as those found on the Account? There are no OOB Address fields on Opps as they are not customer-facing. So, when the Quote is generated, the User ends up having to use the ‘Lookup Address’ function to supply Address info on the Quote.
Seems like unnecessary work for the Users and who wants to have to write code to grab that info from the Account? How can we wring the most out of what CRM does already?
Yes, it’s a little bit of grunt work
It isn’t rocket science and with a little bit of your time, you could:
- Create the appropriate Address 1 and Address 2 fields for the Opportunity (no need to expose them on the Opp form unless you want to for testing).
- Add mappings from the Account to the Opportunity relationship to auto-populate those new Opp fields from the Account record
- Add mappings from the Opportunity to the Quote relationship to auto-populate the Quote Address fields from the Opp
I’m from Missouri . . . show me
It looks a little like this:
- After adding my Address 1 and Address 2 fields to the Opportunity entity, I went to the Account to Opportunity Customer relationship and double-clicked on it:
- CRM launched the Relationship form and I added the mappings as below
- Then I opened up the Opportunity to Quote relationship and did the same thing:
Happy User, Happy Life?
So as long as I am using best practices to create my Opp from the Account and my Quote from the Opp, my Quote inherits the Address info and the Users have several less clicks to worry about.
A little bit of extra data is stored on the Opp in the form of those Address fields but in this case anyway, well worth the price in trying to make things simpler for the Users.
Hope this gets you to thinking about other situations in which you can use Dynamics 365 mapping without the code!!
By John Clifton, Application Consultant, Dyn365Pros, Microsoft Dynamics 365 Partner, San Diego, Southern California. Contact us if you’d like to learn more about Dynamics 365 mapping without the code.