Skip to Content
Author's profile photo Archana Shukla

Decision Table on HANA Database Tables

Just simulation to observe the trend does not suffice all the productive use cases. You may still want to manage the tremendous amount of data contained in tuples in SAP HANA  – in real time, with significant turnaound time and basic knowledge on SQL Language. This blog introduces you to Decision Table modeling on single tuple or multiple tuples with joins.

In real world database, you would find data spanning across multiple tuples – more often we find the case that certain columns are predominantly used and remaining have low usage. In such cases, you use Data Foundation of Decision Table to model business rules on selected columns of database tables. Data Foundation handles the tuples efficiently by providing the options of joins and selection of a fixed set of prime columns on which the rules could be written and executed. Decision Table modeled on database tables have capabilities to update the content of the database.

Let us model business rules to calculate discount on an electronics gadget. To start with, first you have to create the decision table and construct Data Foundation.  What you see here is snapshot of Data Foundation. Few things to mark –

  • The tuples in HANA Studio could be seen in HANA Studio at: HANA System/Catalog/<your-schema>/Tables
  • Two tuples SALES.ORDER and SALES.PRODUCT are joined together where SALES as schema and ORDER and PRODUCT are tuples in that schema
  • Only selective columns from two tuples have been considered as Condition and Actions

/wp-content/uploads/2013/10/3_1_294805.png

          Figure 3.1 – Data Foundation view where in left pane ORDER and PRODUCT tuples JOINed together and

                              right pane has the vocabulary for the decision table, together with columns selected as Conditions and Actions                             
                  

Next you fill the Condition and Action Values in the Decision table

     /wp-content/uploads/2013/10/3_2_294818.png

          Figure 3.2 – Decision table with values

Finally – Save, Validate and Activate the decision table. Your decision table is now ready to be consumed ! Let us do a quick sneak-peek into the data content, of PRODUCT and ORDER tuples respectively, before the decision table is executed so that you are able to trace the difference. Note the DISCOUNT column – all the values are 0:

/wp-content/uploads/2013/10/3_3_294819.png

     Figure 3.3 – Content of PRODUCT (top) and ORDER (bottom) tuples

Now, execute the decision table by making a call to the generated procedure and note the DISCOUNT column again. You see that the DISCOUNT column values in the database has changed as per the decision table evaluation.

     /wp-content/uploads/2013/10/3_4_294820.png

     Figure 3.4 – SQL Editor showing the call statement (top) executed to comsume decision table and the content of ORDER tuple (below) after consumption

You may be wondering – is it that simple ? And answer is Yes. The additional advantage lies in simplicity to design, no technical details and easy adaptation.

Let me summarize the steps again to model a decision table using database columns:

  1. Create Decision table in HANA Studio
  2. Drag and Drop database tables onto Data Foundation section
  3. Join the tables (if there are more than 1 table) using database join
  4. Add selective columns as Conditions and Actions of the decision table
  5. Set the values of Condition and Action
  6. Save, Validate and Activate

For more refer http://help.sap.com/hana_platform > HANA Developers Guide > Setting up the Analytical Model > Creating Decision Tables

Compared to use of Parameters, business rules modeled on decision tables – based on tuples – can update millions of records efficiently in quick real time and the impact can be directly accessed by the applications where decision have to made quick decisions – based on changing market.

In conclusion, it is important that you know your purpose for modeling business rules and consequently model the decision table based on Parameters and/or  Tuples. The two approaches enables use of Decision Tables for analysis and/or actual data revisions and offers opportunities for completely new applications. Get started with decision table modeling and comsumption – and share with us your feedback and let us know if you need support.

Other Related Blogs

Upcoming Blogs in Store

Assigned Tags

      15 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      hi

      if I want create decision table on data base table in my schema which is coming by SLT say example on VBKD table, after save and validate will my VBKD original will get change? if not on which table changes will happen after execute the procedure?

      Author's profile photo Archana Shukla
      Archana Shukla
      Blog Post Author

      The database table on which the decision table is modeled would change after you run the rules. In your case, the answer is - VBKD table that is replicated in HANA would be changed not the backend ERP VBKD table.

      Author's profile photo Former Member
      Former Member

      Thanks for your time Archana

      you mean table  wont change in ECC, it will change in HANA studio under the schema as per business logic right?

      in that case, if I want to use the original VBKD table in some other hana view do I need to replicate again from ECC to HANA (because the existing VBKD table has changed as we applied business logic  for decision table )

      Thanks in Advance

      Author's profile photo Archana Shukla
      Archana Shukla
      Blog Post Author

      Hello,

      Yes you have to but I do not understand your usecase, if you do not wish to change the table then why do you apply the rules ? - and now after applying rule you would want to view the original version. Strange !

      Author's profile photo Former Member
      Former Member

      Hi,

      Yes, you are right, I just want to confirm

      kind of a scenario ,incase if I change my decision to revert back to original  after apply rules

      Thanks

      Author's profile photo Former Member
      Former Member

      good document

      Author's profile photo Former Member
      Former Member

      Hi , Archana!

      Thanks a lot for this document!

      I have 2 quesnons to you

      1. How can I transprot Decision Table form dev system to prod. ? (DT is not available form Delivery Unit . I need to transport just one DT ( in DU i can transport only all package)

      2.For example, I have two conditions ( flag1 and flag2) . I need to create action like -

      If flag1 = 1 then ... ( I mean that flag2 can be any value)

      if lag1 =2 and flag2 = 3 then ...

      ...

      regards!!!

      Author's profile photo Wout de Jong
      Wout de Jong

      Hi All,

      There are curently 2 types of Decision Tables in HANA.

      The one described above (with repo extension .hdbdectab) and the new(er) one based on HANA Rule Framework (with the extension .hprrule). The DecTab from HRF provides more options, I believe, although a lot of the concepts remain the same of course.

      Noam Gilady can you comment?

      Author's profile photo Noam Gilady
      Noam Gilady

      Hi Wout,

      The Decision Table on HANA which is mentioned here - was consolidated into HANA Rules Framework. So the same UIs (described here by Archana) in the latest HANA versions, create HANA Rules Framework's design time artifacts (hprrule, hprruleservice, hprvocabulary) and generate HANA run-time code (procedure) in the same manner like HRF's Web app and/or HRF's UI controls (embedded into UI5 app)...

      BR, Noam

      Author's profile photo José Sánchez
      José Sánchez

      Hi Archana Shukla! Nice Job explaining this subjects.

      I'm new to developing in HANA. I've had this same scenario in a demo program. I completed successfully the DT with data foundation. The problem I'm facing, and I haven't been able to solve, is how should be the sentence to call this DT in a, for instance, calculation view (or another stored procedure)?

       

       

      Author's profile photo Archana Shukla
      Archana Shukla
      Blog Post Author

      Hello Jose,
      As the runtime artefact for decision is a stored procedure, so you need to call the stored procedure generated after activating the decision table, in your calculation view.  Also, decision table on HANA is no more supported, instead use SAP HANA Rules Framework for future developments in rules on HANA. Here is the link and tutorials HANA Rules Framework

      Author's profile photo Vijay Chintarlapalli
      Vijay Chintarlapalli

      Hello Archana Shukla ,

      Can we achieve this using CDS views  what is the best alternative to calculation views ?

      Thanks,
      Viajy

      Author's profile photo Archana Shukla
      Archana Shukla
      Blog Post Author

      Hello  Vijaya,
      Please use SAP Cloud Platform Business Rules for future rules implementation. Read my blogs. Through SCP Business Rules you can directly import CDS views from S/4HANA and build your rules.

      Author's profile photo Vincent Morris
      Vincent Morris

      Hello,

      In creating a decision table off a model combining multiple tables, null cells are to be expected after a union. what language is used in the column cell to denote a NULL value is expected?

      example:

      Condition 1:

      AWTYP = VBRK

      Condition 2: BWART = NULL

      Action: EVENT_ID = 8.1.1

      The action value is currently null, but should be 8.1.1.

       

      Any help would be amazing!

       

      Regards,

      Vince

      Author's profile photo Asheesh Sharma
      Asheesh Sharma

      Hi Archana,

      I am planning to automate the decision table data load process.Can we use HANA Table to load decision table rules?

      Regards,

      Asheesh