21
Write back functionality from various dashboard tools to SAP HANA Page 1 Author – Ramkumar Rajendran

Write back functionality from various dashboard tools to sap hana

Embed Size (px)

Citation preview

Page 1: Write back functionality from various dashboard tools to sap hana

Write back functionality from various dashboard tools to SAP HANA

Page 1 Author – Ramkumar Rajendran

Page 2: Write back functionality from various dashboard tools to sap hana

Author Biography

Ramkumar Rajendran

.

Page 2 Author – Ramkumar Rajendran

Ramkumar Rajendran is a Consultant at a leading firm with an experience of 4 years. He has specialized in various tools like SAP HANA, SAP BI, SAP BO (Xcelsius, Webi and IDT), Tableau, Lumira and Hadoop-Hive. He has worked upon the Sentiment Analysis of Twitter data. He has involved in the integration of HANA and Hadoop. He has worked on multiple implementation projects for various industry sectors.

Page 3: Write back functionality from various dashboard tools to sap hana

Table of Contents

1 About this document2 Introduction

SAP HANASAP HANA extended application services

3 Design Plan4 Case study update from Tableau, Qlikview and Xcelsius7

SAP HANA tableServer Side Application built using JavaScriptHANA Table view of the record to be changedTableau SolutionHow the Tableau Solution worksQlikview SolutionXcelsius SolutionOther Reporting tools

5 Summary6 Reference Material

Page 3 Author – Ramkumar Rajendran

Page 4: Write back functionality from various dashboard tools to sap hana

About this document

Updating database tables from the reporting tools like Tableau, Qlikview, Xcelsius, etc. was considered to be a myth earlier and believed to be possible only specialized application like Business planning and consolidation, Integrated planning etc. These reporting tools were believed to be just used for visualizing the underlying data from the database through various graphs and charts.

This paper describes the possibility of updating tables from various reporting tools with an innovative solution.

As a pre-requisite to go through the document, it is expected that the user is aware of basic SAP HANA functionalities, basic features of Tableau, Qlikview and Xcelsius and JavaScript concepts.

Page 4 Author – Ramkumar Rajendran

Page 5: Write back functionality from various dashboard tools to sap hana

Introduction

SAP HANA

SAP HANA is an innovative in-memory database and data management platform, specifically developed to take full advantage of the capabilities provided by modern hardware to increase application performance. By keeping all relevant data in main memory, data processing operations are significantly accelerated.

Design for scalability is a core SAP HANA principle. SAP HANA can be distributed across many multiple hosts to achieve scalability in terms of both data volume and user concurrency. Unlike clusters, distributed HANA systems also distribute the data efficiently, achieving high scaling without I/O locks.

The key performance indicators of SAP HANA appeal to many of our customers, and thousands of deployments are in progress. SAP HANA has become the fastest growing product in SAP’s 40+ year history.

SAP HANA Extended Application Services

SAP HANA Extended Application Services (SAP HANA XS) provide applications and application developers with access to the SAP HANA database using a consumption model that is exposed via HTTP.

In addition to providing application-specific consumption models, SAP HANA XS also host system services that are part of the SAP HANA database. For example: search services and a built-in Web server that provides access to the static content stored in the SAP HANA repository.

The consumption model provided by SAP HANA XS focuses on server-side applications written in JavaScript. Applications written in server-side JavaScript can make use of a powerful set of specially developed API functions, for example, to enable access to the current request session or the database.

Page 5 Author – Ramkumar Rajendran

Page 6: Write back functionality from various dashboard tools to sap hana

Design Plan

The technique of updating the HANA tables from the reporting tools is heavily built around a server side application developed with JavaScript code, which gets invoked from the report and the relevant data is passed as parameter to this code in the HANA server. With the availability of these parameters the server side application is executed resulting in update of the values in the tables.

In order to update data into HANA table would require passing of 3 parameters to application layer, namely -

1. Primary keys to distinguish a unique record.2. Name of the column.3. Value which needs to be updated in the table.

As depicted in the above figure the server side application is called which residing in the Webserver of HANA database and the relevant parameters are passed from the reporting tools to this application. This code further executes to update the HANA database tables, which is thinly coupled with the Webserver resulting in immediate update of the table with the passed parameter.

Page 6 Author – Ramkumar Rajendran

The server side application in HANA Webserver is

invoked and parameters are passed resulting in update

of HANA tables

Database-HANA

Webserver-HANA

Reporting Tools

Page 7: Write back functionality from various dashboard tools to sap hana

Case Study – Update data from Tableau, Qlikview and Xcelsius

SAP HANA Table

Let’s assume that we have a table in SAP HANA, named “BANK_INDICATORS” with the following structure.

With regard to our earlier mention, the primary keys of the table have to be noted which is “COUNTRY” and “DATE” in this case. The value of these key fields needs to be passed from the reporting layer to identify a unique record in the table.

Page 7 Author – Ramkumar Rajendran

Page 8: Write back functionality from various dashboard tools to sap hana

The initial set of data in the table would be looking like this.

Server Side Application built using JavaScript

SAP HANA Extended Application Services (SAP HANA XS) helps in hosting a server-side application written in JavaScript. We would utilize the potential of this application in our case study to update the HANA table with the parameters passed while invoking the application.

Page 8 Author – Ramkumar Rajendran

switch (field)

{

case 'COUNTRY':

conn.prepareStatement("SET SCHEMA \"HANA\"").execute();

var st = conn.prepareStatement("UPDATE \"HANA\".\"BANK_INDICATORS\" SET \"COUNTRY\" = ? WHERE \"COUNTRY\" = ?");

st.setString(1,data);

st.setString(2,cname);

break;

case 'DATE':

conn.prepareStatement ("SET SCHEMA \"HANA\"").execute();

var st = conn.prepareStatement("UPDATE \"HANA\".\"BANK_INDICATORS\" SET \"DATE\" = ? WHERE \"COUNTRY\" = ? AND \"DATE\" = ?");

st.setString(1,data);

st.setString(2,cname);

st.setString(3,date);

break;

case 'INTERNET_USERS':

conn.prepareStatement("SET SCHEMA \"HANA\"").execute();

Page 9: Write back functionality from various dashboard tools to sap hana

Page 9 Author – Ramkumar Rajendran

switch (field)

{

case 'COUNTRY':

conn.prepareStatement("SET SCHEMA \"HANA\"").execute();

var st = conn.prepareStatement("UPDATE \"HANA\".\"BANK_INDICATORS\" SET \"COUNTRY\" = ? WHERE \"COUNTRY\" = ?");

st.setString(1,data);

st.setString(2,cname);

break;

case 'DATE':

conn.prepareStatement ("SET SCHEMA \"HANA\"").execute();

var st = conn.prepareStatement("UPDATE \"HANA\".\"BANK_INDICATORS\" SET \"DATE\" = ? WHERE \"COUNTRY\" = ? AND \"DATE\" = ?");

st.setString(1,data);

st.setString(2,cname);

st.setString(3,date);

break;

case 'INTERNET_USERS':

conn.prepareStatement("SET SCHEMA \"HANA\"").execute();

case 'MILITARY_EXPENDITURE':

conn.prepareStatement("SET SCHEMA \"HANA\"").execute();

var st = conn.prepareStatement("UPDATE \"HANA\".\"BANK_INDICATORS\" SET \"MILITARY_EXPENDITURE\" = ? WHERE \"COUNTRY\" = ? AND \"DATE\" = ?");

st.setString(1,data);

st.setString(2,cname);

st.setString(3,date);

break;

case 'GDP_PERCAPITA':

conn.prepareStatement("SET SCHEMA \"HANA\"").execute();

var st = conn.prepareStatement("UPDATE \"HANA\".\"BANK_INDICATORS\" SET\"GDP_PERCAPITA\" = ? WHERE \"COUNTRY\" = ? AND \"DATE\" = ?");

st.setString(1,data);

st.setString(2,cname);

st.setString(3,date);

break;

case 'LIFE_EXPECTANCY':

conn.prepareStatement("SET SCHEMA \"HANA\"").execute();

var st = conn.prepareStatement("UPDATE \"HANA\".\"BANK_INDICATORS\" SET \"LIFE_EXPECTANCY\" = ? WHERE \"COUNTRY\" = ? AND \"DATE\" = ?");

st.setString(1,data);

st.setString(2,cname);

st.setString(3,date);

Page 10: Write back functionality from various dashboard tools to sap hana

HANA Table view of the record to be changed

Consider the below view of the table “BANK_INDICATORS”. Assume that we need to change the “LIFE_EXPECTANCY” of the record which is highlighted in the below figure to ‘60’.

It should be noted that key fields include COUNTRY and DATE, which in this case are ‘Albania’ and ’01-Jul-2006’.

Page 10 Author – Ramkumar Rajendran

case 'MILITARY_EXPENDITURE':

conn.prepareStatement("SET SCHEMA \"HANA\"").execute();

var st = conn.prepareStatement("UPDATE \"HANA\".\"BANK_INDICATORS\" SET \"MILITARY_EXPENDITURE\" = ? WHERE \"COUNTRY\" = ? AND \"DATE\" = ?");

st.setString(1,data);

st.setString(2,cname);

st.setString(3,date);

break;

case 'GDP_PERCAPITA':

conn.prepareStatement("SET SCHEMA \"HANA\"").execute();

var st = conn.prepareStatement("UPDATE \"HANA\".\"BANK_INDICATORS\" SET\"GDP_PERCAPITA\" = ? WHERE \"COUNTRY\" = ? AND \"DATE\" = ?");

st.setString(1,data);

st.setString(2,cname);

st.setString(3,date);

break;

case 'LIFE_EXPECTANCY':

conn.prepareStatement("SET SCHEMA \"HANA\"").execute();

var st = conn.prepareStatement("UPDATE \"HANA\".\"BANK_INDICATORS\" SET \"LIFE_EXPECTANCY\" = ? WHERE \"COUNTRY\" = ? AND \"DATE\" = ?");

st.setString(1,data);

st.setString(2,cname);

st.setString(3,date);

Page 11: Write back functionality from various dashboard tools to sap hana

Tableau Solution

Create a Tableau dashboard with live connection to SAP HANA which would look like below. Enter the new value for the field as 60 and choose the field which needs to be updated from the drop down box.

Page 11 Author – Ramkumar Rajendran

Page 12: Write back functionality from various dashboard tools to sap hana

Right click anywhere in the dashboard and select “Update new value for LIFE_EXPECTANCY”

Page 12 Author – Ramkumar Rajendran

Page 13: Write back functionality from various dashboard tools to sap hana

Refresh the Tableau dashboard and we could see that the value for LIFE_EXPECTANCY is updated as ‘60’ in the dashboard.

And the same value can be seen updated in the HANA table level.

Page 13 Author – Ramkumar Rajendran

Page 14: Write back functionality from various dashboard tools to sap hana

How the Tableau Solution works?

A text input area for the new value and a drop down box for the field names is created as shown in the below figure.

A URL action is created which is associated with the parameters “Enter updated data” and “Select Field” and the dashboard.

This URL action as mentioned above dynamically collects the relevant parameters, viz. primary keys of the HANA table (COUNTRY and DATE), the new value (60) and the field which needs to be updated (LIFE_EXPECTANCY) and executes the server side application at the HANA webserver level with these parameters which in turn would update HANA database table with these parameters.

Page 14 Author – Ramkumar Rajendran

http://10.118.0.80:1080/HANA_PAPER/HANA_PAPER/bank.xsjs?field=<Parameters.Select Field>&cname=<COUNTRY>&cdate=<DATE>&data=<Parameters.Data>

Page 15: Write back functionality from various dashboard tools to sap hana

Qlikview Solution

On the same lines the dashboard in Qlikview will also help in updating HANA tables. The dashboard will look as follows.

In this case we are required to explicitly ask the key field information apart from the new value and field name information from the users since the same functionality can’t be performed here

In addition to what have been done for Tableau, we are expected to manually fetch the data of each relevant field through manual variables. Also a bit of macro coding is required to give a better user experience.

Page 15 Author – Ramkumar Rajendran

Page 16: Write back functionality from various dashboard tools to sap hana

Xcelsius Solution

The dashboard built with Xcelsius will look as follows.

In this case the new value will be updated on the basis of the correction done in the input text area available once any of the record is chosen. The link for the server side application in HANA webserver is embedded into one of the excel sheet present in the dashboard, which is called while clicking on the Update button.

Other Reporting tools

As per our research the same technique can be applied across majority of the reporting tools, except a few like Explorer and Lumira which doesn’t support URL actions.

Page 16 Author – Ramkumar Rajendran

Page 17: Write back functionality from various dashboard tools to sap hana

Summary

The combined potential of SAP HANA Extended Application Services and the various reporting tools have been utilized to accomplish a very enthralling solution. This technique can be applicable in scenarios where the users are expected to update values on a regular basis.

It doesn’t serve as a complete replacement for SAP BPC, SAP IP, Hyperion, etc. But the myth of updating data to database from the reporting layer is broken.

What we have illustrated over here is a simple mechanism to achieve this task. We can further customize this technique to accomplish much complex real time solutions.

The same technique can be further extended to other tools like MicroStrategy, Spotfire, etc.

References

http://help.sap.com/hana/SAP_HANA_Developer_Guide_en.pdf

http://scn.sap.com/community/developer-center/hana/blog/2012/12/21/hana-development-xs-odata-services

http://www.tableausoftware.com/public/blog

http://community.qlik.com/welcome

http://everythingxcelsius.com/

Page 17 Author – Ramkumar Rajendran