39
Dr. Wolfgang Schaper, Solution Manager SAP NetWeaver Decision Service Management, SAP AG Dynamic Database View Capability of SAP NetWeaver Decision Service Management October 2013

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Embed Size (px)

DESCRIPTION

Dynamic Database View Capability

Citation preview

Page 1: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dr. Wolfgang Schaper, Solution Manager SAP NetWeaver Decision Service Management, SAP AG

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

October 2013

Page 2: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

2

TABLE OF CONTENTS

USE CASE ........................................................................................................................................................ 4

USING DYNAMIC DATABASE VIEWS IN SAP NETWEAVER DECISION SERVICE MANAGEMENT ........ 6 HANA Result View ........................................................................................................................................... 6 Calculated Fields ........................................................................................................................................... 21 Input Parameters ........................................................................................................................................... 30

SAP HANA DATABASE INTEGRATION ....................................................................................................... 36 Automatically generated objects ................................................................................................................. 36 Generating reusable objects ........................................................................................................................ 38

Page 3: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

3

Dynamic Database View is a capability of

SAP NetWeaver Decision Service

Management to integrate with HANA

databases.

A deployment of a Dynamic Database

View to the HANA database generates an

SQL procedure with result view based on

database (tables, views) and Decision

Table content.

The code push down to the HANA

database allows the decision service logic

to access HANA database tables directly,

providing for significantly improved

performance compared to classical rules

execution logic.

Tests with more than 1600.000 database

records and decision tables with more than

5000 lines revealed that the Dynamic

Database View is more than 1300 times

faster than the classical approach in these

constellations. Instead of more than 1.5 hours of processing time the rules were executed within 4

seconds. This gives room to a completely new area of use cases.

The tremendous performance gain is mainly achieved by leveraging the HANA multi-core in

memory processing architecture. In addition to this effect time and memory consuming data copies

to the ABAP server can be avoided, if selections on calculated result columns are defined.

With this paper we want to provide a hands-on guide to use Dynamic Database View. To focus on

this capability we assume general knowledge of SAP NetWeaver Decision Service Management.

For general information on SAP NetWeaver Decision Service Management, check out SAP

Community Network (http://scn.sap.com/docs/DOC-29158). Especially refer to paper Social Benefit

Determination with SAP NetWeaver Decision Service Management

(https://scn.sap.com/docs/DOC-40949) which shows step by step how to create decision services,

including all steps that were skipped in this publication.

Figure 1: Dynamic Database View overview

Page 4: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

4

USE CASE

We are using an example to read flight costs from a HANA database table, and to calculate deductions based on specific criteria, e.g. airline and connection, and variants submitted as input parameters.

To do so we will create a BRFplus application. This is a container for all other objects. These objects contain the Function which is the actual decision service to be called, the Ruleset assigned to the Function containing all rules, a Database Lookup which is called within a rule, invoking the Dynamic Database View which accesses the HANA database, a Decision Table that is used within the Dynamic Database View to calculate additional fields, and input parameters that are being used within the Decision Table for evaluating conditions.

Figure 2: Object relations

Assogned

Application

Function

Ruleset

Rule

Database Lookup

Dynamic Database View

Decision Table

Input Parameter

HANA Database

Assigned

Bein

g Used

Access

Page 5: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

5

In this example we use table SFLIGHT of HANA Database ALX_2 to look up the price of specific flights. For instance flight AA0017 costs $488.36.

Figure 3: Table SFLIGHT

In a second step we add deductions for specific flights. These deductions are derived by using a Decision Table adding calculated fields to all lines of the result table. So for instance there is discount of 10% for flight AA0017. Calculated fields allow for extending each line of the result view by fields that are not read from the HANA database table, but determined by a Decision Table.

In the third step we use input parameters to refine the derivation of calculated fields. Actually we offer deductions depending on variants, which could be customer segments for instance. The flight mentioned before is discounted by 10% in variant 1, and 20% in variant 2. So calculated fields are not based on data from the HANA database table only, but also on data elements which can be input parameters of a Decision Service, or being determined by other business rules.

Page 6: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

6

USING DYNAMIC DATABASE VIEWS IN SAP NETWEAVER DECISION SERVICE MANAGEMENT

HANA Result View

As a first step we want to build a simple read operation from a HANA database table.

We already created an application with a function and an assigned ruleset, which is still empty. The function has an input parameter VARIANT which will be used later.

Figure 4: Function

Page 7: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

7

To connect the application with a HANA database, in the application we chose tab Miscellaneous and select a database connection.

Figure 5: Connect the application with HANA database

By doing so all Dynamic Database Views contained in this application will connect to the selected HANA database for data access.

Figure 6: HANA database connected to all decision services within this application

Page 8: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

8

If the system is running itself on a HANA database the database connection “Default” can be chosen to connect to this database. Other database connections are being maintained with transaction DBCO, which allows managing connection information and connection options.

Figure 7: Transaction DBCO to manage HANA database connections

Page 9: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

9

For each database connection all required information and authentication can be maintained.

Figure 8: Details of a database connection

Let us go back to the decision service. In the yet empty ruleset create a rule processing a Database Lookup expression.

Figure 9: Create a Database Lookup expression

Page 10: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

10

In this Database Lookup, instead of entering an ABAP database table, create a new Dynamic Database View, which will read directly from the HANA database.

Figure 10: Create new Dynamic Database View

Page 11: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

11

As any other object Dynamic Database Views have technical names, short texts, and long texts.

Figure 11: Providing name and description for Dynamic Database View

Page 12: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

12

In the Dynamic Database View we need to select a HANA view type consisting of database object, name and schema. For this example we use object type table. Then we identify the HANA view we want to access by selecting table name and database schema. After pressing Apply we can add result view fields.

Figure 12: Define HANA view and add result view fields

Page 13: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

13

For our example we select the fields carrier id, connection id, and price.

Figure 13: Selecting fields

Page 14: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

14

The result table of the Database Lookup can be created automatically from the Dynamic Database View. You only need to select the required fields, and enter names and texts for the table and the line structure.

Figure 14: Automatically create result table from Dynamic Database View

Page 15: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

15

Figure 15: Select required fields

Page 16: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

16

Figure 16: Enter names and texts for generated objects

Page 17: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

17

We go back to the Database Lookup. If needed you can add selection conditions and adapt the field mapping which is being provided automatically.

Figure 17: Add selection condition and adapt field mapping

Page 18: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

18

Now as the result table is created we can set it as result data object of the decision service.

Figure 18: Set result data object of function

Page 19: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

19

Figure 19: Decision service with set result data object

Page 20: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

20

After activating all objects we can process the decision service. We do so using simulation.

Figure 20: Activate objects and start simulation

As a result we get all entries from the Dynamic Database View that match the given selection criteria.

Figure 21: Result the decision service provides

Page 21: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

21

Calculated Fields

Next we want to extend this example by adding a calculated field that is being determined by a decision table. Calculated fields allow to add values to each line of the result of a Dynamic Database View determined by Decision Tables.

First we need to extend the line structure of the result table by the field that shall be calculated.

Figure 22: Add new data element to line structure of result table

Figure 23: Extended structure

Page 22: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

22

In the Dynamic Database View, tab Calculated Columns, add the newly defined element DEDUCTION as result data object.

Figure 24: Add result data object

Page 23: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

23

Now create a Decision Table to evaluate deductions.

Figure 25: Create Decision Table

Page 24: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

24

In the following popups enter names and texts for the automatically generated result structure and the Decision Table itself.

Figure 26: Naming the result structure of the Decision Table

Page 25: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

25

Figure 27: Naming the Decision Table

In the Decision Table we need to call Table Settings to define condition columns.

Figure 28: Use Table Settings

Page 26: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

26

As condition columns add carrier id and connection id.

Figure 29: Add condition columns

Page 27: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

27

Now we can create lines to determine deductions for specific airlines and connections.

Figure 30: Fill Decision Table with content

Page 28: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

28

In the Dynamic Database View we need to assign the data elements used in condition columns of the decision table to match the database fields of the Dynamic Database View.

Figure 31: Assign condition columns

Page 29: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

29

Again we can activate all objects and simulate the decision service. As a result we get the same information as before, plus an entry specific deduction.

Figure 32: Result of the decision service including deduction

Page 30: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

30

Input Parameters

Now we want to use input parameters that contribute to the calculated fields in the result view. For that purpose the decision service has an input parameter VARIANT as we noticed before.

To make use of that parameter, press Add Data Object in the Dynamic Database View, tab Input Parameters, and add data element VARIANT as an input parameter.

Figure 33: Result of the decision service including deduction

Page 31: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

31

Add data element VARIANT as an additional condition column to the Decision Table and maintain its content accordingly to reflect different deductions for different variants.

Figure 34: Adding condition column VARIANT to the Decision Table

Page 32: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

32

In the Database Lookup you need to assign the input parameter mapping, to map context parameters to respective input parameters.

Figure 35: Input parameter mapping

Page 33: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

33

Figure 36: The Database Lookup with parameter mapping

Page 34: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

34

Again activate all objects and simulate the decision service. This time you need to enter a value for input parameter variant.

Figure 37: Enter value for input parameter Variant

With variant V1 the result is the exact same as before.

Figure 38: Result of the decision service with variant V1

Page 35: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

35

Doing the same with variant V2 results in changed deduction values.

Figure 39: Result of the decision service with variant V2

Page 36: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

36

SAP HANA DATABASE INTEGRATION

Automatically generated objects

Those readers who are interested in technical backgrounds can find some information on HANA database integration in this section.

For each Dynamic Database View with calculated columns a Decision Table is generated in the Content area of the SAP HANA Studio. It can be found in package “system-local.abap.<SYSID>.BRFplus”.

Figure 40: Package for the automatically generated decision table in the SAP HANA Studio

Figure 41: Content of the generated decision table in the SAP HANA Studio

Figure 42: Data foundation of the generated decision table in the SAP HANA Studio

Page 37: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

37

For the runtime execution of this Decision Table an SQL script procedure is being generated in the Catalog area of the SAP HANA Studio under schema _SYS_BIC.

Figure 43: Schema for the generated SQL procedure in the SAP HANA Studio

Figure 44: SQL script coding for the generated SQL procedure in the SAP HANA Studio

The generated objects will be replaced automatically by new objects when they get obsolete due to changes in the decision service. The old obsolete objects will then be removed automatically after some time. Thus they must not be referred to directly by other objects in the HANA layer.

Table FDT_CC_H_0000 defines the mapping between the Dynamic Database View GUID and the generated names for the Decision Tables and Database SQL Procedures in the SAP HANA Studio.

Page 38: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

Dynamic Database View Capability of SAP NetWeaver Decision Service Management

38

Generating reusable objects

A reusable Decision Table in Rules on HANA can be generated for a Dynamic Database View with report FDT_HANA_DT_CREATE_FROM_DDBV.

Figure 45: Selection screen of report FDT_HANA_DT_CREATE_FROM_DDBV

.

Figure 46: The generated reusable decision table in the SAP HANA studio

Page 39: Dynamic Database View Capability of SAP NetWeaver Decision Service Management

© 2013 SAP AG. All rights reserved.

SAP, R/3, SAP NetWeaver, Duet, PartnerEdge, ByDesign, SAP

BusinessObjects Explorer, StreamWork, SAP HANA, and other SAP

products and services mentioned herein as well as their respective

logos are trademarks or registered trademarks of SAP AG in Germany

and other countries.

Business Objects and the Business Objects logo, BusinessObjects,

Crystal Reports, Crystal Decisions, Web Intelligence, Xcelsius, and

other Business Objects products and services mentioned herein as

well as their respective logos are trademarks or registered trademarks

of Business Objects Software Ltd. Business Objects is an SAP

company.

Sybase and Adaptive Server, iAnywhere, Sybase 365, SQL

Anywhere, and other Sybase products and services mentioned herein

as well as their respective logos are trademarks or registered

trademarks of Sybase Inc. Sybase is an SAP company.

Crossgate, m@gic EDDY, B2B 360°, and B2B 360° Services are

registered trademarks of Crossgate AG in Germany and other

countries. Crossgate is an SAP company.

All other product and service names mentioned are the trademarks of

their respective companies. Data contained in this document serves

informational purposes only. National product specifications may vary.

These materials are subject to change without notice. These materials

are provided by SAP AG and its affiliated companies ("SAP Group")

for informational purposes only, without representation or warranty of

any kind, and SAP Group shall not be liable for errors or omissions

with respect to the materials. The only warranties for SAP Group

products and services are those that are set forth in the express

warranty statements accompanying such products and services, if

any. Nothing herein should be construed as constituting an additional

warranty.

www.sap.com