Power BI Visual
Enterprise FluenceXLWeb users can now embed and link FluenceXLWeb reports into PowerBI reports
Contents
[hide]Pre-requisites
- You need the custom visual, please contact support@xlcubed.com with the full URL of your FluenceXLWeb server (as entered by the users)
- The FluenceXLWeb server must be running as HTTPS
- You will need to be running V9.1.49 or above
- You need to be licensed for an Enterprise FluenceXLWeb server
- Using PowerBI cloud or PowerBI Report Server (March 2018 or later)
Preparing FluenceXLWeb
As PowerBI and FluenceXLWeb will be hosted on different servers you need to enable cross-domain access (CORS) on FluenceXLWeb, this will allow PowerBI to intergrate correctly with FluenceXLWeb.
Please ensure you are running the latest windows updates.
From FluenceXL V9.2, this procedure can be carried out automatically through the FluenceXLWeb config application (Enable PowerBI Visual Support, on the Advanced tab).
Set Handler order
In IIS (Internet Information Services) Manger on the FluenceXLWeb server, go to the FluenceXLWeb Application and "Handler Mappings":
Click "View Ordered list":
You need to ensure "OPTIONSVerbHandler" appears above all the *.svc entries:
Please note: after changing the order please go back to "Unordered List" and then "Ordered List" to ensure it is in the correct place, you may need to do this a few times to ensure it saves.
Add custom headers
You will need to add the following headers under "Http Response Headers":
Access-Control-Allow-Origin * Access-Control-Allow-Headers Accept,X-Requested-With,X-Prototype-Version,Content-Type,Cache-Control,Pragma,Origin,Set-Cookie,Cookie Access-Control-Request-Method POST Access-Control-Allow-Methods GET, POST, PUT, DELETE, OPTIONS Access-Control-Allow-Credentials true
or via the web.config:
<system.webServer> <defaultDocument /> <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Headers" value="Accept,X-Requested-With,X-Prototype-Version,Content-Type,Cache-Control,Pragma,Origin,Set-Cookie,Cookie" /> <add name="Access-Control-Request-Method" value="POST" /> <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" /> <add name="Access-Control-Allow-Credentials" value="true" /> </customHeaders> </httpProtocol>
Update "SameSite" cookie handling
Add the following settings to the appropriate sections of the web.config, if the setting exists just add the new attributes, otherwise create a new entry (excluding the "..."):
<system.web> <httpCookies … requireSSL="true" httpOnlyCookies="true" sameSite="None" /> <sessionState … cookieSameSite="None" />
Windows Authentication changes
To support windows authentication with the custom visual, there are some additional changes needed. It will also only work fully in Microsoft Edge or Google Chrome. The web browser will send a pre-flight OPTIONS request to check the server can accept the windows credentials. FluenceXLWeb will need to be set to allow anonymous OPTIONS requests. To do this:
Update the following header:
Access-Control-Allow-Origin null
<add name="Access-Control-Allow-Origin" value="null" />
Enable anonymous access:
In the web.config, update the following section:
<authentication mode="Windows" />
to:
<authentication mode="Windows" /> <authorization> <allow verbs="OPTIONS" users="*" /> <deny users="?" /> </authorization>
This allows the pre-flight request to return without credentials but leaves the rest of the requests and the website to require authentication.
Using the custom visual
Inserting a report
While editing a PowerBI report, go to the "Import a custom visual" option under visualizations:
Browse to the custom visual and select the custom visual package, you will get a new Icon under visualizations:
You can use this to insert a report object:
Add a parameter to the control:
You can now select a report from your web server (note, you need to be editing the report in PowerBI online, not Desktop, in order to pick a report with this button. See Limitations):
And it will be embedded:
Linking reports via web parameters
When linking to fields on the report, the value for this will be passed to the report via any Web Parameters that match the attribute name
Other options
You can set other options for the visual, such as the server name, whether to show sheet tabs etc.:
Limitations
- Only one member for each parameter will be passed to the report, if several members are picked then a "blank" will be passed so any range driven items would revert to the default member
- PowerBI connected reports will prompt for a login when opening the report for the first time
- When setting up the report in Power BI Report Server, using the desktop version of Power BI you can't use the UI to browse to a report and will have to enter the report path manually. The report will only be shown once viewed in the browser