Multilingual SSRS reports

When thinking about supporting multiple languages for SSRS reports, most people think about changing the display language of one or more of the following items:

  • Labels (text boxes, axis labels, table headers, etc.)
  • Dataset results
  • Parameter prompts

When considering presenting SSRS reports in multiple languages, one also needs to consider where to store translations. Translations can either be:

  • stored in a data source (database, cube) or resource file, either accessed directly from the report or through a service call
  • retrieved from an external translation service, such as Bing Translate

In most solutions retrieving a predefined translation would be preferable to doing an automatic translation using an external translation service, since the quality of the results can be questionable. A scenario I come across often is that the external translation service is only used when a predefined translation is not available. The scenarios discussed in this series of posts do not pose any requirement on how the translation is retrieved. Reporting Services can pass the user’s language setting along. That can then be used to get the right translation.

Additionally, some of the items considered when thinking about a multilingual SSRS solution are:

  • Can the report be developed once and presented in multiple languages? All of the scenarios discussed in this series provide this capability.
  • Impact on report creation process. Does the solution chosen require manual activities when designing the report?
  • Performance
  • Implementation complexity

In this series of blog posts we talk about options for implementing multilingual SSRS reports. Below is a quick scoring of each option on the above capabilities and requirements. Of course the importance of requirements and the correct choice depends on the situation.

Each scenario will be discussed in a post in this series.

Requirement / Scenario Assembly Change RDL Report Definition Customization Custom ReportViewer
Translate labels (textboxes, axis labels, table headers, etc.)

Yes

Yes

Yes

Yes

Translate dataset results

No

Yes

Yes

Yes

Translate parameter prompts

No

Yes

No

Yes

Impact on report creation

High

Low

Low

Low

Impact on report rendering performance

Low

Low

Medium

Medium

Implementation complexity

Low

Medium

High

Very High

 

Did I miss a requirement or solution? Please let me know!

Next time: Scenario 1: Assembly.

Do you want to jump to a specific scenario? Here you go:

Scenario 1: Assembly Scenario 2: Change RDL Scenario 3: Report Definition Customization Scenario 4: Custom ReportViewer

Installing Master Data Services add-in for Excel 2013

I recently picked up my new laptop, which of course runs Office 2013 and Windows 8. When you try to install the Master Data Services add-in for SQL 2012 you may run into a warning that says you need Office 2010.

There is an easy fix: just install the Master Data Services add-in for SQL 2012 SP1 (get it here: http://www.microsoft.com/en-us/download/details.aspx?id=35581 . Be sure to pick 32 / 64 bit to match your Office version.

Oh and of course you will have to get the other pre-req as well: Visual Studio 2010 Tools for Office runtime (find it here: http://www.microsoft.com/en-my/download/details.aspx?id=35594).

See http://support.microsoft.com/kb/2774422 for more information.

Meet Paul

Those of you who have attended one of my talks on BI probably know this story. I get asked about it a lot so wanted to share this more permanently. For me this story sums up the chance we have with Microsoft BI to fix one of the biggest issues in the corporate world.

Some time ago I worked as a BI Consultant on a data warehouse project at a major customer. All floors in the 20 floor office were like the ones you see in movies, all mindless, endless rows of cubicles. My cubicle was one in what they called ‘the front row’, which I think meant ‘at the central aisle’, which ran from the door to the manager’s offices in the back.

One day the door opened and someone that looked a bit like Charlie Chaplin walked out onto the floor. He was dressed like an old school English gentleman; complete with hat, newspaper and umbrella. He wore a yellowish dress shirt, blue suspenders and a brown tie with little blue bears on it. I estimated him to be about 70 years old. I am not that good at guessing ages, he might have been 75. Anyway, it was clear that he was well beyond retirement age. He looked around a bit and waited. In the back of the floor his arrival was noticed and someone hurried over to him and guided him to one of those identical cubicles a little further from where I was. Since I felt this was going to be interesting I went to get some coffee and made sure I passed along that cubicle on my way. ‘Charlie’ sat at an old computer (remember those CRT monitors?) and I saw him do something that grabbed my attention. He started Microsoft Excel version 5.0. When I got back from the coffee machine I stopped at this cubicle again and I saw him busily typing away. Some moments later a matrix printer which also stood there sprang into action and started spitting out some papers. He started to collect his stuff, took a quick glance and the papers and handed them over to guy who greeted him at the door and left.

I had the chance to peek at what was on those papers and I am no expert but to me it seemed a lot like a profit and loss statement. That got me puzzled even more, so instead of returning to my cubicle I walked over to the office of the BI manager, who was also my project lead. I described what I saw (‘older man came in, sat in a cubicle, pushed some buttons, printed some pages and left’). The BI manager looked at me and nodded: ‘You just met Paul’.

He continued: ‘Paul used to work for us and retired about five years ago. In this long employment here he made a big Excel spreadsheet that enables us to generate a profit and loss statement. We hire Paul twice a year just to come in here, push some buttons and get us that statement. We pay him handsomely for that service because we need that statement for the financial authorities here. If we do not provide the statement one time twice a year we might lose our license’.

Stunned, I looked at him and said: ‘I am going to ask you a tough question.’ He replied: ‘I know what you are going to ask so go ahead’. I said: ‘Let’s imagine that, heaven forbid, Paul dies tomorrow.’. He froze, looked me straight in the eye and said: ‘We would go bankrupt or lose our license.’

Although this might seem a little over done, this is a true story. Think about it for a moment what this could mean for you and your company. Do you think you have a Paul in your company? I am sure you have; every customer I talk to recognizes this story in some share or form. Do you have any idea what he has built and how dependent the company is on it?

It is time to find Paul, talk to him and make sure you understand what he built. If you can, migrate his stuff over to a more corporate solution. In any case, we need to get this under control. This is not a tiny little company I am describing here, this is a multi-million dollar business and the P&L statement comes from a black box Excel 5.0 sheet that Paul built and only Paul knows how to run.

MDS / DQS integration on a domain controller

Normally I would never advice you installing anything on a domain controller, let alone SQL, MDS and DQS. However if you have BI demo machine you will probably have all this (and more) running on the same box. At least I do J

If you do you will probably get this error message when you try to enable the DQS integration from Master Data Services Configuration Manager after you successfully installed DQS and MDS.

When clicking the button ‘Enable integration with Data Quality Services’ an error will pop-up:

Here is where it gets a bit confusing. If you read the error message closely, it seems that MDS is looking for a local account on your machine instead of a domain account. However, with it being a domain controller, you cannot create local accounts…

To make this work you need to do the following:

  1. Add a Windows User Login into SQL Server for [YourDomain]\MDS_ServiceAccounts.
     
  2. Then run the following query against your DQS_MAIN database, which creates a user on the DQS_MAIN database which maps to the login you just created and adds the user to the DQS_Administrator role. Of course you can also do this using the UI. Make sure to enter your DOMAIN in the query below before executing. use [DQS_MAIN] GO IF NOT EXISTS (SELECT * FROM SYS.SYSUSERS WHERE NAME = 'MDS_ServiceAccounts') CREATE USER [MDS_ServiceAccounts] FOR LOGIN [YourDomain\MDS_ServiceAccounts] exec sp_addrolemember @rolename=N'dqs_administrator',@membername=N'MDS_ServiceAccounts'
  3. When done go back to the Master Data Services configuration manager and hit the button again. Now it should come back with:

Victory ! J

 

Excel Song – we all work with Excel spreadsheets

I recently found this on YouTube: a song about Excel. The quality of the vid is awful by the way, but I like the song. As far as I know Excel is one of two Microsoft products that have their own song!