CRM 2011 – Why can’t I add my report to a solution

The quick answer to the question is for me to stop being an idiot.

I had written my report, I had uploaded the report, it was running fine.

I then tried to add the report into the solution, opened my solution –> reports –> adding existing

I then couldn’t find my report!

checked the reports, yep it’s there

did an advanced find, the report appears.

I then edited the report and remembered, this report is a my report, a personal report.

This is the same as creating a personal view, unless you share it everyone then no one else can see.

Reports are slightly different because you can choose an option called Make available to organisation.

To find this option you have to go to the report you created –> Edit –> Actions –> make available to organisation

Then everyone can see it and more importantly you can add to your solution

if you have a change of mind and want the report to be viewed by only you, you can in Actions choose to revert  to personal report.

CRM 2011 – Reporting options in CRM

I had to write a report for a customer this week and unfortunatly I wasn’t able to write the report using the report wizard.

This was very bad news because all other reporting methods take a lot more time.

So what are my options

  • Dashboard and charts
  • Reporting wizard (although for this report it wasn’t any use)
  • Excel Powerpivot
  • SRS reports – FetchXML
  • SRS reports – SQL

To give you some background one of the reports was a report grouping on date (month, year), another group of accounts and another group of Call Type.  In the report they wanted to show the number of resolved calls and the percentage of each call type.

Dashboards and charts were not really used for this because this was a report rather than a visual graph.  I am a big fan of charts and dashboards but one aspect that makes them a harder sell is the dashboards and charts cannot be scheduled and can’t be exported from CRM without doing a print screen (or I haven’t found a way to do this yet, please comment if you know how)

I was able to run the report in Excel PowerPivot, although it took me a while to work out why I couldn’t group the date by month (as seen in many Google searches on the subject).  If you cannot group/format a date in excel to month this is probably because there are some blanks in the date field, if you fill in this blanks you will then be able to format the date by month.

The excel PowerPivot report looked very good and has the advantage of being self sufficent.  What I mean by this is once you have saved the Excel report onto your hard drive you can run the report from your machine without opening CRM and the reason you can do this is because you can refresh the data within Excel.

I think excel is a really useful tool because you can also view the individual lines behind the graph, so it does give you a bit of drill down in basic terms.

I do find some users don’t view reports in Excel very highly and almost don’t see this as a legitimate solution to their reporting needs.


I tried to write the report using FetchXML, this does make writing reports quite simple because all you need to do is create the correct advanced find and then download the fetchXML.  The problem I had with this method was all the grouping had to be done then in the report.  My SRS reporting skills are not great and I couldn’t really get round the problem of the report displaying every line, e.g. every call, I didn’t want this I wanted a summary count of the different call types.

Searching around I found you can group one item in a fetchXML.

The other solution is using SQL and doing selects from Filteredlists.  The reason it’s good practise to use filtered lists is these lists automatically add the CRM security to the selects as if you are viewing the records in CRM.  It can be a bit slower and some reports don’t need to worry about security if you are showing summary values and not individual records.

The benefit of creating an SQL report is you can group the data in the SQL statement and use the report to just show the data.

The downside to using SRS is it’s hard to use and formatting the report can be a puzzling and time consuming practise of trial and error.

I really wish Microsoft would supply an easy to use reporting system on the same lines as the dashboards and charts.  Reporting is one of the key areas for CRM, useful reports can help get support for a CRM project from the key decision makers.

My hope is the Sharepoint/SQL Server 2012 new reporting tools are very good and if they are not then Microsoft should buy a company which has already developed a reporting tool.


So in the end I did the report in Excel PowerPivot and a version in SRS reports using an SQL statement I wrote.

CRM 2011 – Client Access License Types

I am studying for the CRM 2011 installation certification and I was reading about the topic of client access license types.

You will have probably heard of these before as CALS (Client Access License) and to access CRM you need a CAL.


There are three difference Client Access License Types

  • Full: Users configured with this license type can view and modify records (subject to their assigned security roles and privileges).
  • Limited: Users configured with this license type can only view records (subject to their assigned security roles and privileges). They cannot modify records.
  • Administrative: Users configured with this license type can administer the Microsoft Dynamics CRM Server but will not have access to the Sales, Marketing, or Service areas.

Interestingly the Administrative user does not use a license type, initially I thought, wow just make all users an Administrative user and it won’t cost you a bean but then after reading the description above properly I realised you can’t see any of the data.

Still it’s interesting to wonder how many people are using a license for someone who is only doing administrative tasks.

The Full and Limited CALs can be either a Device or User CAL.  I never really understood this and couldn’t understand why people would get Device CALs, so lets look at the definition of the a user and device CAL.

  • A user CAL enables a user to connect to CRM from any computer or other device
  • A device Cal enables any number of users to connect to CRM from the same computer or device.

There is not price difference between a device and user call so when would you use each different type.

You would use a device CAL if you had a lot of different users accessing CRM from the same computer, so if you have shift workers then you could buy device CALs and then each shift workers could use a different login but the same computer to access CRM.

If you have workers with multiple devices who might have a different computer at the office and at home then it would be better for this user to have a user cal where they can access CRM from multiple devices.

I think the user CAL might be relevant in the future when users can use tablets and phones to access CRM.


Another interesting point which you learn if you study for the Installation certification is disabled users no longer use a CAL and you can enable and disable users at any time.

To find out how many licences you are using then you can find this information in the Deployment manager.


CRM 2011 – when to use entities over optionsets

I might have mentioned this before but I thought I would reiterate it.

I have done a few projects where the customer wants an optionset of software products e.g. CRM 2011.  if you then want to store the rollup version, suddenly the optionset needs to be updated regularly.

Also if you want to include all the dynamic products then the optionset is starting to get very big and need someone with Administrator rights to keep amending the optionset.

In this situation I have found it’s better to create a simple new entity with Name and description and make sure the ownership is Organisation (so no one can own it, assign it, share it etc) then you can just create a new Dyanmic product record when a new rollup/version is released.

This way anyone with the correct privilege can add in new products and you can search for them in a lookup.

just a little thought for you

CRM 2011 – authenticating with Sharepoint Online 2010 from a .NET

I was having a struggle to authenticate with Sharepoint Online

I was using the Client Object Model and when I was trying to create a connection to sharepoint so I could check if folders had been added for CRM but I was getting a 403 forbidden message.

In the back of mind I was thinking the problem had to be linked to SharePoint/Office 365 online which both need you to login.

This page has a good overall description of the problem, you basically need to authenticate before you can start using SharePoint 2010 Online

Remote Authentication in SharePoint Online Using Claims-Based Authentication

The only problem with code I got from here is it popped up a login if the authenticated cookies were not on the machine.  As my code would be running from a plugin I needed to automate that

Authentication with SharePoint Online and the Client Side Object Model

this code works

Part 2: “Headless” Authentication with SharePoint Online and the Client Side Object Model

one gotcha to mention with the code above is you have to put on the forward slash at the end of the SharePoint url



if you don’t put the forward slash on it won’t work.

I also had problems because my pc clock was over 5 minutes out, it wasn’t letting me login.

some other useful links regarding writing .Net code for SharePoint 2010

Common Programming Tasks in the Managed Client Object Model

CRM 2011 and Sharepoint Integration

Well studying for the CRM 2011 installation exam I have got onto the area of SharePoint.

CRM 2011 brought some great improvements with some integration with SharePoint.

The course I am studying says the following SharePoint editions is required

  • Microsoft SharePoint 2010 (all editions)
  • Microsoft Office SharePoint Server (MOSS) 2007
  • Windows SharePoint Services 3.0

If you are integrating not with SharePoint 2010 then you have to create the folders in SharePoint and they are just displayed in CRM 2011 but if you integrate with SharePoint 2010 then CRM 2011 can create folders in SharePoint.

I haven’t tried integrating with older SharePoint version and quite frankly I hope don’t have to, my knowledge of SharePoint is rather murky and it usually takes me ages to work out how to do anything with it.

For those of you who have integrated CRM 2011 with SharePoint 2010 you will have had to run a script to get the SharePoint Grid working.  The notes for this say if it isn’t installed then SharePoint data will appear in an IFrame, which is the way the data is displayed in older versions of SharePoint.

CRM 2011 – Debugging plugins using the Plugin Registration tool

I was having a bit of a nightmare debugging my plugins.  The plugin was working in my test case but when I deployed it and tried to run it from CRM, I was getting errors.

I had tried to setup remote debugging which I have done before but this time I was having problems because of some kind of firewall related problems and when I dropped my firewall the remote debugger could talk to my computer but the debugger wasn’t catching.

I then tried to get the profile/debugger working in the plugin registration tool but I kept getting stuck when it asked for a profile location, WHAT THE HELL IS THIS PROFILE.

I tried to google instructions for the profile/debugger but I couldn’t find anything but then out of the blue one of the blogs I follow wrote an article about it and saved the day.

if you want to use the plugin registration tool debug then follow these instructions

so basically you have to install and turn on profiling, then go into CRM, trigger the plugin.  This will then download your profile file.  Then in the Plugin Registration tool debug the plugin, choose your dll and newly downloaded profile text document, set the debug on your visual studio and attach the process to the plugin registration tool.  Now in the Plugin Registration Debug page, click Start Plugin Execution.

Basically the profile you downloaded is probably serialized variables and values which is now loaded into visual studio, allowing you walk through the code with the values you entered into CRM.

The tool is great and you can do it all from your PC.

Now onto the problems I was having.  I had set up a plugin to run on the post operation of an entity update.

What seemed to be happening was the main values of the entity were being copied but no related entity information was being created.  My code was using one of the related entities in a query.

To get round the problem I used the guid of the entity and retrieved the related entity information and then I could walk through the rest of my code.

CRM 2011 Installation and Deployment Certification thoughts

I was looking at the at the CRM 2011 installation certification page today, which you can see by clicking the link below

I usually use the excellent Microsoft E-Learning and use the online training if you work for a partner or you can buy it

  • 80296AE: Microsoft Dynamics CRM 2011 Installation and Deployment (8 Hours)

it’s funny if you went on the training course it would take 2 days but just reading the material takes 8 hours then again I suppose that is two days.  It certainly takes me longer than two days to go through it but that’s because I have to stop each day because I’m bored.

The skills being measured according to the certification site

Planning the Installation (17 percent)

  • Identify the supporting components of a Microsoft Dynamics CRM 2011 implementation.
    • This objective may include: Active Directory; ADFS 2.0; supported email systems for the Email Router; Outlook Client; Reporting Extensions; Language Packs; compatibility with SQL Server 2008 and later; compatibility with Microsoft Office SharePoint Server 2007 and later; compatibility with Windows Server 2008 and later
  • Plan the implementation.
    • This objective may include: planning multiple-server deployment; Microsoft Dynamics CRM 2011 licensing model and license types; planning Active Directory rights; planning multiple organizations; switching between editions
  • Indentify infrastructure requirements, hardware requirements, and software requirements.
    • This objective may include: requirements for each of the Microsoft Dynamics CRM components; requirements for supporting technologies; planning for the number and location of server roles and groups
  • Plan installation user privileges.
    • This objective may include: user rights; creating security groups

Installing Microsoft Dynamics CRM 2011 Server (19 percent)

  • Install services and components.
    • This objective may include: identifying specific accounts for Microsoft Dynamics CRM services
  • Install the Microsoft Dynamics CRM 2011 server.
    • This objective may include: installing sample data; developing a pre-installation checklist; command line installation; troubleshooting issues that prevent successful installation; registering the installation; registering for Windows Updates; deploying a single server; deploying multiple servers
  • Deploy a Microsoft Dynamics CRM website.
    • This objective may include: using Host Headers, when to use HTTPS

Installing and Deploying the Microsoft Dynamics CRM 2011 Email Router (15 percent)

  • Install the Microsoft Dynamics CRM 2011 Email Router.
    • This objective may include: supported email systems ; supported Windows operating systems
  • Configure the Microsoft Dynamics CRM 2011 Email Router.
    • This objective may include: creating incoming and outgoing email profiles; running the Rule Deployment Wizard against Exchange Server; tracking token and smart matching options; using forward mailbox and individual mailbox monitoring; configuring the deployment and specifying default profiles; configuring users with the appropriate messaging options

Installing and Deploying the Microsoft Dynamics CRM 2011 Client for Outlook (16 percent)

  • Identify supported Outlook versions and supported browsers.
    • This objective may include: 32-bit and 64-bit Outlook clients and Internet browsers
  • Install the Microsoft Dynamics CRM 2011 Client for Outlook.
    • This objective may include: command line installation; deployment options; installing from the Microsoft Dynamics CRM web application; identifying upgrade options; register for Windows Updates
  • Configure the Microsoft Dynamics CRM 2011 Client for Outlook.
    • This objective may include: working on-line and off-line; configuring local data groups; configuring for multiple organizations

Configuring Microsoft Dynamics CRM 2011 (16 percent)

  • Install reporting extensions.
    • This objective may include: identifying when reporting extensions are required; using different accounts for the application pools in IIS; when to use the Microsoft Dynamics CRM fetch extension plug-in
  • Configure Microsoft Dynamics CRM 2011 for Internet-facing deployment.
    • This objective may include: identifying IFD and website requirements; implementing claims-based authentication by using Secure Token Services; using AD FS 2.0 as the Secure Token Service
  • Plan and configure high availability options.
    • This objective may include: clustering SQL Server; multiple Microsoft Dynamics CRM servers; network load balancing

Upgrading to and Redeploying Microsoft Dynamics CRM 2011  (17 percent)

  • Plan an upgrade.
    • This objective may include: identifying supported and unsupported components; SQL Server considerations; planning for changes in server URL; upgrading versions earlier than Microsoft Dynamics CRM 4.0; selecting the most appropriate upgrade method (in-place or migration upgrade)
  • Move a Microsoft Dynamics CRM organization to new computers by using the Deployment Manager.
    • This objective may include: identifying the redeployment process; Active Directory considerations; creating and importing organizations; MUI packs; changing an organization’s details; deleting an organization
  • Upgrade multiple servers.
    • This objective may include: upgrading a Microsoft Dynamics CRM 4.0 deployment; upgrading other components, such as the Email Router

I have done a few installation recently and gone through most of the criteria which to me says this exam is testing the correct areas.

when reading through the MOC training I often find useful bits of information I either didn’t know or hadn’t considered.  Which can happen because when you are installing CRM 2011 you are often just focused on installing it and getting it working.

looking at the training/MOC modules gives you a good idea what to study for the exam,  you can see them here and with more detail about the subject

Chapter 1: Microsoft Dynamics CRM Components
Chapter 2: Planning the Installation
Chapter 3: Microsoft Dynamics CRM Server Installation
Chapter 4: Microsoft Dynamics CRM 2011 Reporting Extensions
Chapter 5: Installing and Deploying the E-mail Router
Chapter 6: Microsoft Dynamics CRM for Microsoft Office Outlook
Chapter 7: Configure an Internet-Facing Deployment
Chapter 8: Upgrading to Microsoft Dynamics CRM 2011
Chapter 9: Microsoft Dynamics CRM Deployment Manager
Chapter 10: High-availability Options

CRM 2011 – how to look up an account name using a guid

I was getting some errors with the Dynamic Connector trying to sync CRM accounts to NAV customer cards.

The first error I had was Country has to be a country code otherwise it errors.

I was still then getting some errors and the Dynamic connector just gives you the guid of the account which it cannot sync.  This is useful but a bit of pain to lookup an account from a guid.  You can’t use an advanced find because accountID isn’t searchable.

I was going to to export all the accounts to an excel and search for the guid but then I decided to use an oData query which you can just paste into a browser.

below is my odata query, it’s very simple it just returns the account name

http://<server:port>/<organisation name>/xrmservices/2011/OrganizationData.svc/AccountSet?$select=AccountId&$filter=AccountId eq guid’4f0f2e39-2877-e111-87f4-86e43cb98353′

You will need to put in the server name and port and then the organisation.  You can get this from your CRM url you normally use.

You would then need to put a valid guid.

The oData query returns all the accountSets (accounts) and filters only the accounts which have the same guid.

CRM 2011 – Server roles and splitting up a CRM installation

Most of the CRM installations I have done have been small installations and all on the same server.

So I found it quite interesting reading about the server roles and how you can split up the installation into Front and Back end server roles.  Installing CRM on one or more servers can give you some performance benefits and according to the manual is recommended for enterprise deployments.

This technet article explains the different roles and then goes through in more depth what is run and where (e.g. discovery web service, help server etc)

Server Role Group Description Scope Installation Method
Full Server Contains all roles from Front End Server, Back End Server, and . By default, Microsoft Dynamics CRM Server Setup deploys the system as Full Server. In a Full Server deployment, server roles are not listed separately in Control Panel. To view the installed roles or make changes, right-click Microsoft Dynamics CRM Server 2011, click Uninstall/Change, and then clickConfigure. Deployment Full
Front End Server Enables the server roles for running client applications and applications developed with the Microsoft Dynamics CRM SDK. Deployment Group or Full
Back End Server Includes the server roles that handle processing asynchronous events, such as workflows and custom plug-ins. These roles are usually not exposed to the Internet.

For a list of server roles that are included in this group, see the following table.

Deployment Group or Full
Enables the server roles for components that are used to manage the Microsoft Dynamics CRM deployment either by using the methods described in the Microsoft Dynamics CRM SDK or the deployment tools.

For a list of server roles that are included in this group, see the following table.

Deployment Group or Full


in basic terms the front end server runs

  • The web application
  • discovery web service
  • organisational web service
  • help server

The back end server will run the CRM Services, e.g

  • Asynchronous Processing Service
  • Sandbox Processing

The manual suggest the back end roles is not exposed to the internet, which makes sense because the back end roles is basically where all your .NET plugins and code are run.

You can also choose where to install the Deployment manager and deployment webservice, which is under Deployment Administration server role.

Another interesting point I noticed is the Microsoft CRM Unzip services is on the front end server and this service handles the uncompressing of zipped files for data import and I also imagine the solution imports.