Thinkcrm

A Matt Yates blog about all things CRM!

Category Archives: Customisation

Moving Form Labels Above a Field in Microsoft Dynamics CRM 2011

I just stumbled across a post that Jamie Miley (MVP) published to his LinkedIn page about moving form labels from the side of field to above a field. This becomes most useful when trying to format sections that contain three or four columns, as the text becomes disjointed and difficult to read.

I didn’t even know this feature was there! Thanks for the update Jamie (see link to his post below)

Life and Technology: Moving Form Labels Above the Field Instead of on Side of Field in Microsoft Dynamics CRM 2011

New CRM 2011 SDK v5.0.5 includes development toolkit!

The new Microsoft Dynamics CRM 2011 Software Development Kit (SDK) v 5.0.5 came out yesterday including the eagerly awaited CRM 2011 development toolkit (in beta version)!

The toolkit can be found here http://www.microsoft.com/download/en/details.aspx?id=24004

The Developer Toolkit is a set of Microsoft Visual Studio 2010 integration tools designed to accelerate the development of custom code for Microsoft Dynamics CRM 2011 and CRM Online. The toolkit supports the creation and deployment of Plug-ins, custom workflows and CRM 2011 web resources and developers can write all of their code from within Visual Studio and deploy them to the Microsoft Dynamics CRM server.

The toolkit also allows for a new Visual Studio solution type called CRM Package, which contains all of the plugins, workflow assemblies and web resources to be deployed as well as their deployment settings, meaning that there is no need to register via the Plugin Registration tool as all of the components can be deployed straight from Visual Studio!

CRM 2011 – Access hidden mappings via SQL or REST

About a year ago I ran into a little bit of trouble whilst building sales demo regarding setting mappings between Opportunity Product, Quote Product, Order Product and Invoice Product. These mappings do not exist within the Microsoft Dynamics CRM interface and can only be navigated directly through a URL. This is very strange as the page from the resulting URL looks exactly the same as the out of the box mapping pages!

To access these mappings you will need to obtain the relevant mapping ID from the database, you can choose from the following SQL Queries or use REST (explained at the end of this post):

Access to mappings via SQL:

Step 1:

Select * from entitymapbase where targetentityname =

‘opportunityproduct’ (opportunity)
‘quotedetail’ (quotes)
‘salesorderdetail’ (orders)
‘invoicedetail’ (invoices)

Step 2:

From the results, find the relevant mapping between SourceEntityName and TargetEntityName and copy the GUID value of the EntityMapId for that row.

Step 3:

Append the EntityMapId to the URL below:

http://CRMSERVERNAME/Tools/SystemCustomization/Relationships/Mappings/mappingList.aspx?mappingId=
Now the resolution to accessing hidden mapping via SQL queries works brilliantly for on-premise versions of both Microsoft Dynamics CRM v4 and v2011 but not so much for Microsoft Dynamics CRM Online. As you all know, the ability to run these queries on a Microsoft Dynamics CRM Online implementation is practically impossible.

I thought I had hit a stumbling block until my colleague Chris Barnard pointed out that we can access all of the information we need using the CRM REST endpoint.

Access to mappings via REST:

Step 1:

Navigate to the REST endpoint (CRM –> Customisations –> Developer Resources)

Step 2:

Append ‘EntityMapSet’ to the end of the URL

(e.g. https://EXAMPLEORG.crm.dynamics.com/XRMServices/2011/OrganizationData.svc/EntityMapSet)

Step 3:

You may notice that the page appears as an RSS feed rather than displaying the XML we are after. If this is the case then you can change this by navigating to:

Internet Options –> Content à Feeds and Web Slices –> Settings –> Untick ‘Turn on feedreading view’

Feed View:


XML View:

Note: You may need to re-launch the page for this change to take effect.

Step 4: (same as SQL)

From the results, find the relevant mapping between SourceEntityName and TargetEntityName and copy the GUID value of the EntityMapId for that row.

Step 5:

Append the EntityMapId to the URL below:

http://CRMSERVERNAME/Tools/SystemCustomization/Relationships/Mappings/mappingList.aspx?mappingId=
This will gives you access to the hidden mappings for these areas of CRM and is particularly helpful if you are customising one or more of these screens as part of building a sales process.