Open SSRS Report URL dynamically depending on selected thing in mashup
we are displaying a SSRS (SQL) Report in a Mashup in ThingWorx by using its URL.
Our construct works fine so far as follows:
- main mashup:
on the left side: a tree widget which shows a network of several Things
on the Right side: another "embedded mashup" which shows a table, containg an info-table with a field "URL"
of the type "hyperlink".
So this hyperlink field contains the URL of our SSRS report.
The next step is to overgive the selected thing name (of the tree Widget I defined above) to the report URL defined in the info table.
So the report URL, which is at the moment constant in the info table, should be dynamically changed, depending on what the user is selecting as a thing in the mashup. This selected thing-name should be added to the url of the report like: "https://localhost/Reportserver/..... &thingName=…."
Maybe my approach to store the URL of the report in a info table and showing it in a table in the mashup is not the best. But I am open for any new ideas which will solve my problem with the dynamically report URL parameters.
Re: Open SSRS Report URL dynamically depending on selected thing in mashup
I am in the process of doing this already. I have an SSRS report which I built in the Report Builder (NOT the Visual Studio application, although you could certainly do it there as well). From within Report Builder, you can specify expected parameters. You will call these dynamically later in your URL...they will probably be case sensitive (they are in my circumstance). After saving the report frame to your folder, call it from within a webframe in your mashup using the following URL construction process:
2. <<Folder>> (SSRS Report Server folder where you saved the report template)
**NOTE: after <<folder>>, I have "/report/" in my URL. Yours may be different. Just get the right path to the report that you are calling...
4. ***THIS NEXT PART IS CRUCIAL:
Add this to the end of your URL: ?rs:embed=true&rc:Parameters=false
Caveat: In your case, you may need to change the "false" to true if you are passing specific parameters. In my case, I did not, so I set it to false.
5. Finally, add any passed parameters that you need to pull the correct data for the report. In mine, I am passing a DB table record ID <<&RecordID = variableName>>. Add it to the end of the URL using proper URL constructs. (no spaces, be mindful if your server requires case sensitivity, ampersands between passed variables, etc.)
Your final URL should look something like this:
http(s) // <<server path>>/<<folder>>/<<additional path parameters if needed>>/<<ReportName>>?rs:embed=true&rc:Parameters=false&RecordID=<<your passed variable>>&<<otherPassedVariablesSeparatedByAmpersands>>
I hope this is what you were looking for and that it helps you. Let me know if you need something else.
"I know I have the right to remain silent...but as a retired Navy Chief Petty Officer, I don't have the ability."