SSRS and Power BI comparison for Dynamics 365 CE Reporting


Hi,

Was recently working on a comparison between using SSRS and/or Power BI for reporting for Microsoft Dynamics CRM, below are some of the points we came up

SSRS has always been Reporting Tool of choice for Microsoft Dynamics CRM and has been natively integrated with the application.

  • Microsoft Dynamics CRM offers Report Parameters for SSRS that are specific to CRM and can be used while writing custom reports using SSRS.
  • Microsoft Dynamics CRM provides CRM
    Pre-filtering feature using which user can use to create a context-sensitive report. Pre-filtering basically passes the specific record (or selected records) information on which report is to be run and renders the result after pulling the information from those record(s). These reports can be uploaded and run from inside the form or grid (list of records) or from the Reports Area within CRM.
  • Microsoft Dynamics CRM provides Filtered Views against which SSRS Report are written.  Filtered views conform to the Microsoft Dynamics CRM security model so the data shown in an SSRS report using a filtered view would only contain the data the users can view and has access in CRM
  • SSRS Reports adheres to Security Model of Dynamics CRM. They can viewable by the Organization or Individual. Individual reports can be shared with other users within the system through the Sharing feature.
  • SSRS is an ideal solution for something to be printed, for e.g. operation documents like invoices, work order, etc. as it gives fine-grained control over location as well as formatting of each of the report components/controls.
  • SSRS has support for more advanced printing features such as footers, headers, watermarks, and page numbers. We can easily configure the margins and layout of your report to get it exactly the way you want.
  • It is easy to extract data as well as export the SSRS report to a different format like word, excel, CSV, pdf, XML, etc.
  • Delivery reports in multiple formats automatically (Scheduling via Subscriptions).
  • There are some limitations for CRM Online reporting which has mostly to do with limitations of Fetch XML.

Interactivity and Data Exploration is where Power BI wins over SSRS à

  • For interactivity and data exploration we can use parameters, drill-through reports or action links, however, comparing this to Power BI, it is very limited, if we click on a visual, all of the other visuals automatically cross-highlight or cross-filter.
  • Advanced Visualisation support in Power BI.
  • Because of the limited interactivity, SSRS is not ideal for data exploration. We have limited options for slicing and dicing the data. SSRS makes more sense when you know what you want the end result to look like. If you to play around with the data, you are much better off with Power BI.
  • Mobile support is much better for Power BI.
  • Support a large number of data sources.

In short, both the tool can be used and can co-exist as they fulfil a different set of requirements.

Would appreciate if you could provide your thoughts in the comments and some additional points.

Hope it helps..

Error while updating organization information: Microsoft.Crm.CrmReportingException: Unknown exception thrown by report server —> System.Web.Services.Protocols.SoapException: An internal error occurred on the report server while trying to import organization in Dynamics 365 On-Premise


Recently while after restoring the database while trying to import the organization we got the below error

Checking the Report Server log,

we found the below detail

Throwing Microsoft.ReportingServices.Library.InvalidReportServerDatabaseException: , Microsoft.ReportingServices.Library.InvalidReportServerDatabaseException: The version of the report server database is either in a format that is not valid, or it cannot be read. The found version is ‘2017’. The expected version is ‘178’.;

We can use the below commands to check the DB Version


The Database that we were restoring had the following version 178 as mentioned in the error


And in our destination server where we were had restored and imported the organization, it was 2017.

We tried out a few of the things mentioned in the forums, eventually what worked for us was to create a new Report Server database in the Destination server.

https://social.technet.microsoft.com/wiki/contents/articles/32360.sspr-troubleshooting-the-version-of-the-report-server-database-is-either-in-a-format-that-is-not-valid-or-it-cannot-be-read.aspx

https://www.sqlservercentral.com/forums/topic/the-version-of-the-report-server-database-is-either-in-a-format-that-is-not-valid-or-it-cannot-be-read-the-found-version-is-164-the-expected-version-i

This created the database with the version expected and our import was successful.

Also, refer the below blog posts

https://www.magnetismsolutions.com/blog/paulnieuwelaar/2014/10/08/data-encryption-errors-after-restoring-microsoft-dynamics-crm-database

http://rafaeldontalgoncalez.com/2018/11/the-version-of-the-report-server-database-is-either-in-a-format-that-is-not-valid-or-it-cannot-be-read-the-found-version-is-164-the-expected-version-is-165-rsinvalidreportserverdatabase

https://www.crmviking.com/2016/02/backup-and-restore-strategies-for-crm.html

Hope it helps..

Using World Map \ Bing Map in SSRS Report in Dynamics 365 (and earlier)


Hi,

Recently I was working on a SSRS Report that will show the countries in the world map (Country was a custom entity in our CRM)

To create such a report, drag the Map report item to the report designer.

OOB we do not have world map in the Map Gallery.

Download it from the following location

https://mapgallery.codeplex.com/releases

Copy the download RDL to the following location (in my case – SQL Server Data Tools for VS 2012)

Select the world map

Add a Bing Map layer

Select Basic map

Click Next and select appropriate value

Click on Finish.

Next inside report designer, right click Layer Data

And specify mapping between the spatial and analytical dataset (our custom dataset here which has 2 column in it, name of the country and A2.

Suppose we have following countries in our CRM

The final report with countries highlighted in colors.

Hope it helps..

Validating Input Parameters in SSRS


We recently developed a report which had Days Input Parameter in it. Now the requirement was if the user enters any thing other then number (integer) over there they should get the appropriate error message.

Here if we define the Days parameter of type Integer and if we enter say for e.g. value = ‘x’ over there

We will get the following error message.

And if we upload the same report in the CRM, we will get the following error message, which doesn’t seem that user friendly.

Now to display proper error message to the end user we can take the following approach.

Change the parameter type to Text first. (From integer type)

Add a text box to report to show the error message, have following expression. If the value entered for Days parameter is not of numeric type display error message.

To hide the table if the Days field is not numeric, set the Hidden property with the following expression. If the Days parameter value is not numeric then hide the table.

And the following change in the DataSet’s query

Original Query

SELECT
Name, lss_First_Name, lss_Last_Name

FROM
Account

WHERE (DATEDIFF(day,CreatedOn,GETDATE())@Days)

New Query

If Days is not a numeric field then then modified select query to retrieve blank data from the table (using createdon field null criteria here in our case)

DECLARE
@SQL
Nvarchar(1000)

IF  ISNUMERIC(@Days)= 1 BEGIN

SET
@SQL ‘SELECT Name, lss_First_Name, lss_Last_Name FROM Account WHERE (DATEDIFF(day, CreatedOn, GETDATE())) >’+Convert(nvarchar,@Days)+

End

Else

Begin

SET @SQL=‘SELECT Name, lss_First_Name, lss_Last_Name FROM Account WHERE createdon=Null’

End

exec(@SQL)

The report with proper Days value for e.g. 1

If entered incorrect Days value for e.g. abc

Helpful post

http://geekswithblogs.net/Compudicted/archive/2012/08/14/validate-ssrs-report-input-parameters-the-proper-way.aspx

Hope it helps.

Open Report in a new window from Action in SSRS


Hi,

While developing a SSRS report, initially we set the Action property of the text box with the following value that will open the CRM’s Account record

=Parameters!CRM_URL.Value & “?ID={“&Fields!accountid.Value.ToString()&”}&OTC=1″

It was working fine however when we were using the same report inside the Dashboard, the report was not showing up properly as it was inside the IFrame.

So we had to use window.open for the Action’s Expression to open the report properly in a new window from inside Dashboard’s iframe.

=“javascript:void(window.open(‘”+ Parameters!CRM_URL.Value + “?ID={“ + Fields!accountid.Value.ToString() +“}&OTC=1′ ,’_blank’))”

Hope it helps.

Hiding Tool Bar from the SSRS Report while using them in Dashboard (CRM 2011)


Hi,

We were showing a custom SSRS report inside an iframe in one of our CRM 2011 Dashboards. We wanted to hide the Tool Bar from the report.

To achieve that we need to pass the &rc:Toolbar=false parameter to our report’s URL, which we set for the IFrame.

http://localhost/ReportServer/Pages/ReportViewer.aspx?%2fCIBPhaseIIAnD_MSCRM%2fBEA&rs:Command=Render&rc:Toolbar=false

This hides the tool bar.

Now in one of our other SSRS reports, we were doing filtering based on a report parameter. So we wanted to show only the Parameter toolbar to appear and hide the other toolbar that shows Export, Zoom, Print etc. option.

To do so we first figured out the CSS class being used for it,

this turned out to be ToolBarButtonsCell

Now what we did next was to create a simple CSS file with the following content to hide the tool bar

.ToolBarButtonsCell{display: none;}

And placed that file at the following location of the server

C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer\Styles

Now next we had to use the rc:stylesheet parameter for our report’s URL and pass the name of the above CSS file just created ( for e.g. hideToolBar.css)

So our new URL was like this

http://localhost/ReportServer/Pages/ReportViewer.aspx?%2fCIBPhaseIIAnD_MSCRM%2fBEA&rs:Command=Render&rc:stylesheet=hideToolBar

After applying the new style sheet parameter to the report’s URL

Check out the following link

http://msdn.microsoft.com/en-us/library/ms152835.aspx (URL Access Parameter Reference)

Hope it helps.