I’ve been working on developing a dashboard with the ability to compare multiple clients together and have been successful at creating filters with the QaaWS connections. After doing this however, I have now been tasked with making a version where the client can be chosen from the xcelsius flash file by the end user.
The idea is to use a combo box with client A, B, C and they can be switched out. The WebI report has multiple blocks but each one shows metrics for the following three subsets: [Target Client], [All Clients], and [All Clients w/o Target Client]. I have the [Target Client] as a variable with the following logic in WebI: UserResponse(“pmEnter values for Client Number:”) which combined with a query filter on Client number, will automatically change the client to whoever I choose when scheduling the report, which limits to one client at a time. This is the only way I currently know to get the variable to be dynamic to input date from the outside the WebI code and presumably xcelsius dashboard.
Following the same logic for setting it up as a filter obviously excludes the data for everyone but the selected client so I assume that I would need to Publish as web service with the prompt box for client name (filter option) as the modifier. This hasn’t worked yet however so I am looking for help to see if this is even possible, and if so am I on the right path to set this up?
You have two basic options when using a WebI report as a data source: You can refresh on demand, or you can use a scheduled instance.
If you refresh on demand, each fetch takes longer. But, you can use prompts. You can also be sure that you are getting the latest data.
If you use a scheduled instance, you are using the data from the last time the schedule ran. If you are running against a data warehouse that only updates nightly, this is ideal. If you are running against help desk stats that update hourly, this is less than ideal. When using a scheduled instance, you can’t use prompts (because you can’t go back in time and enter the selected prompt value). But you do have the option to use filters. Ninety-nine times out of a hundred, this does exactly the same thing (possibly even better, as you can control which operator you use to do the comparison at run-time).
In your case, I would try to see what your report looks like when pulled for all clients. Is it usable? Since “All Clients” was one of your choices, I’m going to guess that it is. Schedule it to run for all clients.
Now set up your dashboard to select a client, and to select whether to limit it to that client, exclude that client, or run for all clients. That selection controls a cell that will be either EQUAL, NOT_EQUAL, or blank. There will be another cell that is the client number if needed, or blank if you are running for all clients.
Now you can use your scheduled instance, and filter on the fly in exactly the way you want.