Power BI Visual

Enterprise FluenceXLWeb users can now embed and link FluenceXLWeb reports into PowerBI reports

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":

PowerBIVis1.png

Click "View Ordered list":

PowerBIVis2.png

You need to ensure "OPTIONSVerbHandler" appears above all the *.svc entries:

PowerBIVis3.png

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":

PowerBiVis4.png

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:

PowerBiVizAnon1.png

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:

Pbiviz7.png

Browse to the custom visual and select the custom visual package, you will get a new Icon under visualizations:

Pbiviz8.png

You can use this to insert a report object:

Pbiviz9.png

Add a parameter to the control:

Pbiviz10.png

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):

Pbiviz11.png

And it will be embedded:

Pbiviz12.png

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.:

Pbiviz13.png

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