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.