In large corporations, the solutions are victims of own processes. It may happen the process denies the sense of the application. Some small parts of enterprises like reporting might be affected by that. The issues with enterprise architecture remind me of Ouroboros – a symbolic representation of processes that eat their own tails.
User last logon date is not updated in table USR02
First, imagine the landscape:
In an embodiment example, Tableau data source is SAP HANA. Authorization is stored in SAP BW. There is no magic hole that immerse you from SAP HANA to SAP BW. To keep your last logon date updated, you have to query in the database where USR02 is stored. SAP consists of versatile layers. You have to establish a connection to SAP BW in Tableau. But it isn’t always easy. Why?
Tableau performs poorly with SAP BW connection
Tableau doesn’t develop SAP Netweaver Business Warehouse connection anymore. However, many organizations store user authorization just right there. On the other hand, HANA is the data source.
New Tableau releases put an emphasis on SAP HANA connection. HANA data source would be better and better in the future. At the moment, the connection to SAP BW is maintained. From 2018 I encounter the issues with SAP BW hierarchies in Tableau reports. The biggest pitfall is Tableau doesn’t support load balancer.
What is SAP load balancer?
SAP load balancer spreads SAP users over multiple application server instances. You can create many SAP Logon groups that are assigned to 1 or many SAP instances.
How to keep the user logon date updated using Tableau?
Create a dummy query in SAP BW
Create a BEx query that returns nulls in SAP BW. The users will connect to it to get USR02 table up to date.
Create a live connection to SAP BW in Tableau
Now it would be enough to connect to the dummy BEx query and embed it to Tableau dashboards. However, it is a bit tricky. You have to create your own connection Application Server in SAP Logon to enable the BEx query. After restarting Tableau you would see your own Application Server under Select connection.
Add some dimension from BEx query to Tableau view. Set the opacity to 0%. Hide all titles and headers in the viz.
Put a pill in a random place in the visualization. Keep the worksheet blank.
Publish your workbook on Tableau Server. Then go to your report. Add a Web Page Object to each of the dashboard. Refer to URL with the workbook where you created SAP BW live connection. Make it invisible by hiding it behind the floating object or minimizing the height or width to 1 pixel.
Using SAP Logon the first time?
Remember to add system variable in environment variables.
Variable name: SAPLOGON_INI_FILE
Variable value: you take it form SAP Logon (Path of Local Configuration Files). Paste \saplogon.ini to the end of your path of local configuration files
Frequent errors with SAP BW connection
One of the common errors I’ve encountered is:
The connection to the data source might be lost.
(...) Protocol Server process lost.
It might occur because of the missing load balancing. Refresh the site 1-3 times. After some trials, you get the connection. That means you refreshed the last logon date successfully.
Why is it a best practice to embed Web Page Object in each dashboard? As mentioned above, you can have bad luck entering the dashboard for the first time. SAP load balancer is not supported here. It is a random case if you will establish a connection with BEx or not. You enlarge the chance for returning the query once you put the Web Page Object in all of the dashboards.