Solved

SSRS Server Report Variants


Userlevel 2
Badge +4

Hi all,

This is essentially a follow up question to this topic SSRS Server Report | Thinkwise Community (thinkwisesoftware.com).

 

Currently my main goal is to deploy variants of a report. In SF when adding a ‘SSRS (server)’ report you must enter a path. But I have a reporting server that has multiple directories for different clients and these dirs contain variants of the same report. I.e.: different logos in the variants for each client. 

Now I want to find a way to update the path to these reports when deploying. I did see a report table in the IAM database where I can possibly update the path, but is this recommended?

Can anyone suggest other solutions? Thanks!

icon

Best answer by Tim Waalewijn 11 October 2023, 14:58

View original

This topic has been closed for comments

10 replies

Userlevel 2
Badge

Hey,

I would not recommend modifying any IAM tables, that aren’t accessible through the UI, via post-sync scripts etc.

Can you provide some more information about how you envisioned setting this up for different clients? E.g. is this the development environment and are you using a single reporting server for convenience or is it meant to work this way in production as well. Are clients separated by different IAMs or by applications inside the same IAM etc.

I think there used to be a way to change the path of the report being executed through binding a parameter to one of the selectable properties but I know that at least Indicium dropped support for that when all the “local” report types ended up in its file cache because you have to upload the report file itself to the model in the SF these days.

I guess for SSRS reports managed by a server this could still be a valid use case since Indicium doesn’t manage the report files by itself but as I said that doesn’t work at the moment so it would need to be a feature request.

Userlevel 2
Badge +4

Hi Tim,

For testing/dev environment I would use 1 IAM and 1 reporting service. But for production these may be different IAM and reporting services.

I added a `ssrsssrsreportserver` extended property like advised in the previous topic.

 

But when I want to print, I get the following error:
2023-07-11T15:00:44.2699967-03:00 40000061-000b-fa00-b63f-84710c7967bb [ERR] An unhandled exception occurred while processing the request. (ffba027a)
Prockees.Bootstrapper.ExecutionException: System.Net.WebException: The request failed with HTTP status 401: Unauthorized.”

Any ideas?

Userlevel 7
Badge +23

Not that I have any experience in this, but I have to say that could this may be an spelling error? Shouldn't this spell “http://”?:

 

Userlevel 2
Badge +4

I edited the url and forgot the extra “/”. But the original url does not has typos. I verified this by copying the link to another tab and it worked perfectly.

Userlevel 2
Badge

The error mentions that the request was unauthorized which indicates the user identity that Indicium is running as does not have access to the SSRS reporting server.

If you are running Indicium on IIS this corresponds to the application pool user that was set.

Have a look at https://learn.microsoft.com/en-us/sql/reporting-services/security/authentication-with-the-report-server?view=sql-server-ver15#authentication-types for some more information about SSRS server authentication types.

By default it is set to RSWindowsNegotiate and RSWindowsNTLM which is why the current user of Indicium is used. RSWindowsKerberos would probably work as well but requires more setup. The other two (RSWindowsBasic/Custom) are currently not supported.

Another thing to consider is that credentials for data sources might be overwritten by the user credentials set in Indicium’s MetaSourceConnection or via the pool user credentials that can be set per application since 2023.1: https://docs.thinkwisesoftware.com/blog/2023_1#deployment---pool-user-credentials

As for the URL for the ssrsreportserver setting, that needs to be set to the “Web Service URL” that was configured while setting up de reporting server.

By default the virtual directory for this is set to “ReportServer”:

Default Web Service URL Virtual Directory

And “Reports” is the default location for the web view.

So if you would be using the default settings your example URL should have been:

http://reportservice.domain.com/reportserver

Going back to the original issue. If I understand you correctly the desire for having all the different client reports on the same server is mostly for testing/development purposes? If so I guess the easiest way to do this would be to bind a hidden parameter to the “File path” property like I suggested earlier and then select the relative report path on the server based on which application you are currently in (based on the alias or something).

This might still work in the Windows or Web GUI but like I said it probably doesn’t in the Universal GUI at the moment since Indicium doesn’t support that property anymore. So we would have to re-implement it for SSRS server reports, which is the only one it actually makes sense for in my opinion since Indicium manages the report files itself when using the other report types.

Userlevel 2
Badge +4

Allright, I will try this out and get back to you. Thanks!

Userlevel 5
Badge +8

@kensonlatchmansing Any updates on this topic? Do you still require support?

Userlevel 2
Badge +4

Hi @Jeroen van den Belt,

I unfortunately have not had enough time to try out the solution suggested by Tim.

But, I did come across one issue.

I tried changing the credentials in IIS pool for Indicium (client) but since the login requires the domain of the user. It seems impossible to register the same user (with same domain) for the SSRS server on my side.

And what if I host the GUI & Indicium on an App Service?

Userlevel 2
Badge

@kensonlatchmansing Sorry it took a while to find some time to try and test the scenario you've described above.

Unfortunately, I also could not find a way to use the pool user of an App Service Indicium in combination with a SSRS server. A Power BI server could probably make it work when using a managed identity on the App Service but I did not test this since the Thinkwise Platform currently does not support Power BI as a report type.

Setting the MetaSourceConnection:Username/Userpassword options instead also will not work since the code only seems to override the credentials on each dataset in the report and not the credentials used to authenticate with the SSRS server itself.

So, for the described scenario, the platform would probably need to support configuring a location + credentials of a SSRS server in the model itself. Like how file storage locations etc. can be provided.

This is just a thought since I don't know how complicated the reports are but if they only differ in styling between your customers it might be a lot easier to make those styling options part of the application and send them to the report as parameters. Then you could just include the rdl file of the report using the SSRS (Local) type and allow Indicium to contact the data source directly (assuming all the data comes from the application database).

Hi @kensonlatchmansing, did the answer of @Tim Waalewijn help you out? If so could you please select it as best answer?