Embed Tableau Dashboards in SAP ERP and S4/HANA
June 1, 2017
, , , ,

SAP ERP systems are probably the best when it comes to robustness, flexibility and extensibility. However, two major issues almost always come up with SAP customers: the lack of operational analytics and the user interface which is… well… not the pinnacle of UI design. SAP constantly promises that they will replace the UI with something new but the reality is that 90% of SAP users still use the traditional SAP GUI. Operational analytics are mostly restricted to simple lists and so called “drilldown reports”.

(Guest blog post from Tamas Holics)

Figure 1 – A screenshot showing the “Sales Information System” of SAP. According to our radio carbon dating this is from the Precambrian period.

Probably the reason for SAP not investing too much in the analytical capabilities of their ERP systems is the existence of their own BI tools. SAP wants you to use SAP Business Warehouse, wants you to use SAP BusinessObjects, wants you to use SAP Lumira. The more features they offer in SAP ERP, the less BW/BO they can sell.

Boosting a UI from the 90’s with your Tableau dashboards

So we have a situation where a company can get a great ERP system (SAP) and a great BI tool (Tableau), but there is a huge gap in between. You have to open two windows, log into two systems and you can see different datasets (well the last one is not necessarily true, if you use VirtDB Data Unfolder but that is not in the scope of this post).

Wouldn’t it be great if SAP or non-SAP data could be visualized inside SAP? Possibly if SAP and Tableau could interact with each other?

Now this is not science fiction but reality due to the recent efforts from our technology spin-off company VirtDB. They’ve come up with a product called InstantInsights which provides – fasten your seatbelts – instant insights for SAP users. With some help of our Tableau guys/girls here at Starschema, they managed to embed responsive Tableau dashboards right into SAP.

Figure 2 – Visualizing the overdue items for customer prior to creating a new Sales Order. Maybe you don’t want to sell them anything, they won’t pay in time… In this example, data comes from standard SAP report S_ALR_87012178 – Customer Open Item Analysis

What’s under the hood?

I’m sure you know that Tableau Dashboards can be embedded to any HTML page pretty easily. SAP provides a so called “HTML viewer” control for developers so it is possible to display an URL within the SAP GUI. Knowing this, it is not rocket science…. but there are some interesting tricks inside.

What to embed and where?

First of all, how do we know which dashboards should be displayed in SAP and on which screens? Is it possible to add dashboards to standard SAP screens?

When you launch InstantInsights, it will scan the currently displayed screen (standard or custom) and will identify business objects like sales orders, materials, customers, storage locations etc. It will display an assistant bar on the left side, listing everything it has found (for ex. Company code 1000, customer 2503 etc.). For each business object, you can assign any number of Tableau Dashboards and you can display them in SAP by double clicking on it. This can be automated by setting a default dashboard.

Filter the dashboard based on your SAP screen field values

Naturally the dashboards should depend on the SAP data you work with. This is accomplished by passing the SAP screen field values as URL parameters to the Tableau Dashboard so data will be filtered automatically.

You will have all the capabilities of Tableau, so you can drill down, filter etc. and you can even edit the dashboard in place.

Figure 3  – We’ve drilled down to see in-depth analytics for this customer. Seems like they are not a good party to do business with. In this example, Document detail data comes from SAP table BSID (Accounting: Secondary Index for Customers)

This provides interaction between the systems in one direction. However, we have a bi-directional integration.

Launch SAP transactions from Tableau

If you need some in-depth information in a dashboard, you have many options: add them to the details section, to a tooltip or as a label etc. But you cannot display all data that sits in SAP and is related to the item you have just selected.  So then why don’t we display SAP?

InstantInsights allows you to launch any SAP transaction when you interact with your dashboard. This is implemented using the Tableau Javascript API  by registering for the MARKS_SELECTION event. We needed to tweak this a little bit because SAP can only react to HTML form events (so we submit forms from JavaScript), but in the end SAP receives all information regarding the mark you click on. After this, you can practically do anything with that on the SAP side, but we have chosen a simple use case: display the selected document in a new SAP window.

Figure 4 – The treemap in Tableau can trigger SAP events. For example, clicking on a document opens it in SAP.

What is the business value?

I hope you don’t ask this question and immediately see the benefits of this two-way integration. You can:

  • Help your SAP users make better decisions by providing analytical insights in the SAP screens (like credit risk analysis for customers, stock levels in a warehouse, predictive analysis etc.). You imagination is the only limit.
  • Reduce communication between teams (SAP and analytics) by merging them: now your clerks do not have to pass SAP data (in Excel…) to the analytics team and get some insights that they can use next week. Now clerks become analysts.
  • This is the easiest way to display non-SAP data in SAP. If your Tableau Dashboard visualizes your Salesforce CRM data, you can make that available for your SAP users by embedding it. You don’t have to develop a new interface, load data and process on the SAP side.
  • You can embed SAP BW analytics in the operational ERP system. Since Tableau has a standard SAP BW connector, you can build dashboards on your infocubes etc., and make that available in the source SAP system.
  • You can make an embedded end-to-end solution for SAP HANA:  you can use the standard Tableau connector to visualize data that is in a HANA database, and provide it to the users in the same SAP GUI.
  • Using the two-way integration, you can trigger events in SAP by clicking on marks on Tableau Dashboards. For example, you can:
    • Display objects in SAP
    • Start a workflow in SAP, so a relevant SAP user will get a notification about a task to be done
    • Trigger a business transaction (reject sales order, approve invoice, release purchase order etc.)

Figure 6 – A Sales Dashboard embedded into SAP transaction VA05N (List of Sales Orders). Double-clicking on a Sales Organization in the SAP list refreshes the dashboard using a filter.


Get your hands on it

You can see how it works at Tableau Conference On Tour London, 6-7th of June, VirtDB is a sponsor so visit the team at booth 1 in Marks Market. Naturally you can sign up for a demo or request a free trial here.


Related items

/ You may check this items as well

sync frelard

Tableau Extensions Addons Introduction: Synchronized Scrollbars

At this year’s Tableau Conference, I tried t...

Read more

Tableau External Services API: Adding Haskell Expressions as Calculations

We all have our own Tableau Conference habits.  M...

Read more
Scaling Tableau Image

Scaling out Tableau Extracts – Building a distributed, multi-node MPP Hyper Cluster

Tableau Hyper Database (“Extract”) is ...

Read more