Sometimes when writing SSRS reports for CRM, you will find that the report works fine in Visual Studio, but will fail when you upload them to Dynamics CRM. This can be frustrating, because it can sometimes be difficult to identify the cause of the issue—it works fine when you preview it in Visual Studio, but when you upload it, the upload will fail, and typically the error message created will be very generic—something to the extent of “Call your System Administrator.”
Typically when you see this problem, it has to do with SSRS functionality specific to CRM reports. Here are some of the top causes that I see reported by users:
- Data source—When you create an SSRS report, you have the choice of using an Embedded data source or a shared data source. For CRM reports, you must use an embedded data source. If you use a shared data source, your report will preview in Visual Studio, but you will not be able to upload it.
- Hidden parameters—If you use the special hidden CRM parameters, such as the CRM_URL parameter to build dynamic hyperlinks to CRM records, if you don’t set them up properly, the report upload to CRM will fail, but it will still preview OK in Visual Studio. Make sure that the parameters are set to hidden and allow null values.
- Pre-filters—When using CRM Report Pre-Filtering, if you use pre-filtering incorrectly, sometimes the report may fail to upload correctly. In this case, like the others, the report will preview without error in Visual Studio, but will have issues uploading to CRM.
So now that we’ve talked about what some of the common causes for the “works in Visual Studio, but not in CRM” issue, how do you troubleshoot what is causing your report issue? The best place to start is the event log of the CRM Server. If you get a “Contact your Administrator” error message, frequently you will see a more detailed error message. Recently I had a user experiencing this issue, and I checked the event log on the CRM server. I found the following error message captured in the event log:
The parameter ‘CRM_URL’ has no default. A default is required for all non-nullable parameters without a prompt or the valid values list has to contain Null.
After modifying the SSRS report CRM_URL parameter to accept null values, the report could be successfully uploaded.