Tip #418: 3 ways to find the blocking attribute

Dynamics CRM TipperShan “Smoke ’em” McArthur wonders during another mini truck stop if there is any way to find a blocking attribute using nothing but its id.

The error message usually looks like this:

A managed solution cannot overwrite the Attribute component with Id=e7840116-dead-beef-a5e5-8b5cb27e9509 for the CRM org noneofyourbusiness.crm.dynamics.com

That said, I have no way of looking up this field. That Guid is not referenced in the managed solution file that I am trying to import that is throwing that error, and the field ID is not displayed in any UI in CRM. With on-premise, I have to break out SQL tools, but at least I can look it up. It is different with every deployment so I can’t just look it up in a reference CRM implementation either.

Good

Joel couldn’t resist dropping in his $0.02:

If you go to customization and open a field customization, you can find it by replacing the attribute id in the URL.

You might have to try different entity id’s, but I’ve been able to find one that way

<crmurl>/tools/systemcustomization/attributes/manageAttribute.aspx?
appSolutionId=%7bFD140AAF-BEEF-DEAD-BD17-0019B9312238%7d
&attributeId=%7bE388A767-F00D-BEEF-BF28-D3E7E7AD1EB8%7d
&entityId=%7ba359f963-DEED-4a32-b607-bada5522b678%7d

Better

Adam “Escalate This” Fish suggested the supported and a much shorter, I must say, path:

Would the Metadata Browser help?

https://msdn.microsoft.com/en-us/library/hh547411.aspx

Best

Not convinced, Jim “Mr SDK” Daly pointed out the futility of the exercise and directed us all to learn C#:

You should be able to use metadata query for this.

Metadata browser wouldn’t be helpful unless you already know the entity it belongs to.

With metadata query you need to return all entities and all attributes, but then include the filter criteria for the specific attribute metadataid.
Then loop through all the entities looking for the one where the attributes collection length is 1.

Disclaimer

No GUIDs were harmed or reused during this stop.

Bonus Double Dip

Episode 3 of the CRM Audio podcast is out now. We stage an exciting prize fight between CRM Online and On Premises, and Mitch Milam explains what’s the big deal with the new CRM Online web API. Listen here: http://crm.audio/episode-3-the-dynamics-crm-death-match/

Tweet about this on TwitterShare on Facebook2Share on Google+1

6 thoughts on “Tip #418: 3 ways to find the blocking attribute

  1. Mohamed Rashwan says:

    How about exporting the default customisation and searching the xml file within?

  2. Manny says:

    Metaquery does not work. I have dumped all entities and all attributes. None of the metadataid matches the one in the solution import message.

    All 3 approaches described above have failed to find the failing customisation 🙁

  3. Dan Neal says:

    Thank you for this information was very helpful. So now that I’ve found the attribute, how can I fix it to allow for my solution to import?

Leave a Reply

Your email address will not be published. Required fields are marked *