CRM 2011 – Great list of resources

The excellently named blog Mad Computerist has a really good collection of links and resources.

They are split up into sections such as installing, plugins, Javascript, reports, tips, tools, etc.

it also has links to the rollups

The link below will take you to the full list of goodness and it’s worth bookmarking

http://madcomputerist.blogspot.com/2011/06/new-features-in-microsoft-dynamics-crm.html

a taster below of a couple of the topics I thought were really useful.

Installation and Configuration
Connector for Microsoft Dynamics installation guides
Installing Active Directory On Windows Server 2008
Installation of Microsoft Dynamics CRM 2011 Standalone Sandbox Using VirtualBox Part 1
Installation of Microsoft Dynamics CRM 2011 Standalone Sandbox Using VirtualBox Part 2
Rename a Windows Server 2008 domain
Using Windows Server 2008 as a Workstation

Others
Resources
Common CRM interview questions
Developer Training Videos
Excellent video resources CRM 2011
100+ videos dedicated to Microsoft Dynamics CRM 2011

Microsoft Dynamics CRM Server 2011
Microsoft Dynamics CRM 2011 for Microsoft Office Outlook
Microsoft Dynamics CRM 2011 List Component for Microsoft SharePoint Server 2010
Microsoft Dynamics CRM 2011 Report Authoring Extension
Microsoft Dynamics CRM 2011 Implementation Guide
Microsoft Dynamics CRM 2011 Software Development Kit (SDK)
Microsoft Dynamics CRM 2011 Developer Training Kit

JavaScipt

Accessing the Parent Form from a Child Form
Calling External Webservice with Javascript Asynchronously
Close MS CRM 2011 Form without Prompt
Dynamically Show Different Form onLoad
Enable Disable Notes Control
Events in onSave method (List of event.Mode)
Excessive Sub-Gridding for more than 4
Filtered Lookup for “Add Existing…” Button of a CRM N:N View
Get Current User ID and Name
Get Selected Record Guid from a Subgrid
Link two subgrids on a form together (parent-child-grids)
Pass Microsoft Dynamics CRM Data From a Page as a Parameter to Ribbon Actions
Populate Lookup Field with String Value (without GUID) using Automatic Resolution
Showing Custom Form Alerts
Update records of a Sub-grid using OData JSON JQuery

Advertisements

Another blogger (Srikanth Reddy) copies CRM blog posts

It seems like the blogger is copying some my blogs and other CRM blogs, so if you are a CRM blogger you might want to check the blog http://srikanthcrm.wordpress.com written by Srikanth Reddy to see if he has copied one of your blog posts.

on to the examples

Here is my blog

https://crmbusiness.wordpress.com/2011/02/17/crm-2011-javascript-xrm-page-basics/

and here is the copy, the exact copy

http://srikanthcrm.wordpress.com/2012/02/23/crm-2011-javascript-xrm-page-basics/

amusing the blogger has left in references to variables with the word Hosk and links to other Javascript blogs he has written which point back to my blog.

The reason I noticed this was because commented in one my blogs that the examples I had used were too complex and he had written a blog with more basic examples!!!!

I thought I should mention it here because he may have copied other peoples blog posts

like this one

http://srikanthcrm.wordpress.com/2012/01/28/crm-4-to-crm-2011-javascript-converter-tool/

where he claims to have written a javascript tool to convert Javascript CRM 4 to CRM 2011.  Where I am pretty sure Rhett Clinton wrote that

and here is the real blog post

http://bingsoft.wordpress.com/2010/09/09/crm-4-to-crm-2011-javascript-converter-tool/

 

CRM/NAV Connector – Crm Exception: Message: entity doesn’t contain attribute with Name = ‘name’

I have had two very frustrating days wrestling with the connector or to call it by its proper name the Connector for Microsoft Dynamics.

I was trying to map Jobs to Contracts, this worked fine, a bit of tinkering to work out what values I needed to put into Contract template lookups but this is to be expected.

I then wanted to map Job Planning Lines to Contract lines.

initially when I put in Job Planning Lines the form in NAV had a header record.  This meant that I couldn’t generate a 1 to 1 mapping between Job Planning Lines and Contract lines because the header would be one record and the individual planning lines would be child records.

Eventually to get round this I put in the form as

Job Planning Line Subform

This is the child form on the Job Planning Line form, so it excluded the header.

I then ran the Connector config utility for NAV but because I had run it before it now doubled up and I had Integration Job Planning Lines and Integration Job Planning Lines Subform.

I also did something similar in CRM and ended up with duplicates for Contracts and Contract lines.

I’m not entirely sure why this happens but its very annoying.

In the end I had to delete the maps which are held in here and will be held with the name of the organisation/company you are mapping

NAV

C:\Program Files (x86)\Microsoft Dynamics\Microsoft Dynamics Adapter\Adapters\Microsoft.Dynamics.Integration.Adapters.Nav2009\ObjectConfig

CRM

C:\Program Files (x86)\Microsoft Dynamics\Microsoft Dynamics Adapter\Adapters\Microsoft.Dynamics.Integration.Adapters.Crm2011\ObjectConfig

I then ran the config utilities again and the duplicates were removed.  I have no idea why this happens but it happens a lot and is quite annoying.

I then tried to map the Job planning lines and the contract lines now I had a one to one relationship.

I was getting this odd error

>Crm Exception: Message: ‘Contract’ entity doesn’t contain attribute with Name = ‘name’., ErrorCode: -2147217149

The reason I was getting this error is because I think the connector defaults it’s fetchXML to assume their is always a field called name.  Contract unlikely for me changed this to be title.

This just didn’t work and I could find any information on the subject until I finally found this forum

http://social.microsoft.com/Forums/en-US/crm/thread/6cf88569-3283-4902-b28b-f327ee1b27d6/

Some excellent person found a solution, I also got some help from Konstantin Levchenko who has an excellent CRM/NAV Connector blog, have a look http://nav-connector.com/

to get this to work I had to create a plugin which intercepts the fetchXML by catching RequestMultiples and then change the FetchXml to not use Name but to use DynamicsIntegrationKey and then it works.  This seems a crazy situation and why haven’t Microsoft written this as a plugin within instructions on how to do it.

       public void Execute(IServiceProvider serviceProvider)
        {
            // Obtain the execution context from the service provider.
            Microsoft.Xrm.Sdk.IPluginExecutionContext context = (Microsoft.Xrm.Sdk.IPluginExecutionContext)
                serviceProvider.GetService(typeof(Microsoft.Xrm.Sdk.IPluginExecutionContext));

           if (context.PrimaryEntityName.Contains("<prefixforCustomEntities>")) //Replace with your prefix
            {

                tracingService.Trace("in the if statement");
                if (context.InputParameters.Contains(("Query")))
                {

                    QueryExpression query = (QueryExpression)context.InputParameters["Query"]; ;
                    FilterExpression fexp = query.Criteria;
                    foreach (ConditionExpression condition in fexp.Conditions)
                    {
                        if (condition.AttributeName == "name")
                            condition.AttributeName = "dynamics_integrationkey";

                    }

                }
            }
        }

I also had another odd thing was the owninguser field had to be filled in and I had to put in a guid.
I had to go and look up the guid for my user
=CreateGuid(“16A37447-9242-E111-8094-00155D6A3700”)
I’m not sure why it makes me do this whilst other entities allow you to use a lookup.