Monday, 10 November 2014

Field Mapping from Opportunity/Quote/Order/Invoice to Product Lines does not Work in CRM 2013

There are many case submitted in the forum telling that the mapping between the Header and Product Lines, for example: Quote to Quote Product or Order to Order Product does not work.

Even though you have set the mapping properly

image

And please don’t tell about custom field first, because for the standard fields, such as Ship Address field, the mapping is also not working.

After spending some hours to research and dig, apparently, I learned something, a behavior, if you use Editable subgrid, you will not be able to make the mapping working.

image

When you double click the record, you will never see the field mapping works right now.

Check these forum posts to know similar scenario..

So now, what I should do?

Basically, I have submitted this issue to Microsoft because those records are created as new record from the subgrid, even though it is not a standard subgrid appearing in the earlier version, CRM 2011, it is supposed to bring along the field from the parent record as well.

So check this link and I hope you would like to vote it as well Smile 
Resolution:

1. If you want to keep using this editable subgrid, then the best way is to wait Microsoft Team to fix this issue, it might be in next version or next rollup release. Basically, we are expecting this mapping behavior also works not only for old-style CRM 2011 subgrid, but it is also for CRM 2013 subgrid as well.

2. To make it works, you need to replace your editable subgrid to the standard subgrid, so the mapping will work well.

See this:
image

My objective here is to copy the Ship to Address field from Quote header to Quote Product.

So, I change the subgrid, I replace this to my own created subgrid..

image

Replace it will your own subgrid..

image

And here is after Ok, Save, and Publish.

image

And it will makes a new pop up dialog form to key in the Quote Product

image

And as you can see the mapping is working very well.

This is one of the best solution because by replacing this subgrid you are not only having this supposed Mapping behavior, but you can also customize the View, including criteria, sorting, and of course additional columns selection, which those are not possible in the editable subgrid, you cannot modify that view even though you just want to add one more column. But, the consequence, you will lose the editable subgrid capability that firs introduced in CRM 2013.

3. I tried using OOB Workflow, but no luck, so if you have enough programming skills and of course enough time, what you can do is using a plugin or custom workflow activity to retrieve the value from the parent and copy it in to the product line in detail.

4. You can also using form scripting execute during onLoad to have an auto pre-filled fields copy from the Parent record field values.

Kindly, I hope this post can help you, especially for those, who are still blur or confused and still wondering find why and what happened with my Mapping, “I know I created properly, but what happened”?

Thank you.

6 comments:

  1. We just wrote a 'how to' on this very topic using our JavaScript generator, CRM Rules.
    http://crm-rules.com/map-account-address-contact/

    The approach we take is mentioned on your point #4 of possible solutions, but is so much easier than coding by hand. It also allows you to work with the editable grid since we do it in jscript.

    We're happy to give you a trial if you'd like to see how easy it is.

    ReplyDelete
  2. Thanks David (I Guess :))/CRM Rules,

    That would be great, may I get the trial? I am always looking for tool something like yours!

    ReplyDelete
  3. For some reason did not work for me on opportunity :-(

    ReplyDelete
  4. HI,
    I'm using Dynamics 365, E5. I'm having the same issue as you mentioned above, with the mappings not working. I'm trying to make the order Lines show up on the related project, my mappings are done correctly and none of the forms have the inline editable grid control active. Is there something else that I am doing incorrectly?
    Thank You!

    ReplyDelete
  5. I have on prem and I did this with a trigger on the quotedetailbase table after insert
    update QuoteDetailBase
    set quotedetailbase.new_ProductNumber = ProductBase.ProductNumber, quotedetailbase.new_ProductDescription = productbase.Description
    from quotedetailbase inner join productbase on productbase.productid=quotedetailbase.productid
    where QuoteDetailId in (select QuoteDetailId from inserted)
    and quotedetailbase.new_ProductNumber is NULL
    and QuoteDetailBase.new_ProductDescription is NULL

    ReplyDelete

My Name is..