Thursday 15 December 2016

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

ABAP Managed Database Procedure

Database Procedures are stored and executed in the Database. We can create and execute database procedures in HANA database through ABAP using AMDP Class and AMDP Method called ABAP Managed Database Procedures. SQL SCRIPT is the language for creating stored procedures in HANA. Main benefit of using SQL Script is to allow the execution of complex calculations inside HANA database. The language is varies from one database system to another.The ABAP Managed Database procedures should be created using ABAP Development Tools (Eclipse or HANA Studio).

Creation of ABAP Managed Database Procedure in ABAP

1. Open ABAP Development Tool ( Eclipse or HANA studio ) and Go to ABAP Perspective.           Create new ABAP Class.

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

2. Provide Name and Description. Click on NEXT Button.

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

3. Click on Finish button.

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

4. AMDP Class Definition

An AMDP is implemented in an AMDP class with a regular static method or instance method in any visibility section. The editing environment for AMDP is the ABAP class editor.
The AMDP class must contain the appropriate tag interface. IF_AMDP_MARKER_HDB is Marker Interface for DB Procedures.

Example:

a. In Class Definition provide interface IF_AMDP_MARKER_HDB.
b. Define the table type TT_ORDER and structure type TY_ORDER.
c. Define the method GET_SALESORDER_DETAILS (Method parameters should be Passed       by value).

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

Logic:

CLASS zcl_salesorder_details DEFINITION
 PUBLIC
 FINAL
 CREATE PUBLIC.
PUBLIC SECTION.
*Marker interface for Database Procedures
 INTERFACES: if_amdp_marker_hdb.
*Structure
 TYPES:
 BEGIN OF ty_order,
   vbeln      TYPE vbeln,    “Sales Order Number
   posnr      TYPE posnr_va, “Item Number
   vkorg      TYPE vkorg,    “Sales Organization
   item_price TYPE netwr_ap, “Item Price
   status         TYPE char30,   “Delivery Status
 END OF ty_order.
* Table type
 TYPES:
  tt_order TYPE STANDARD TABLE OF ty_order WITH EMPTY KEY.
* Method Definition
 CLASS-METHODS get_salesorder_details
    IMPORTING
      VALUE(iv_vbeln) TYPE vbeln
    EXPORTING
      VALUE(et_order) TYPE tt_order.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.

5. Implementaion of AMDP Method in AMDP Class

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

Logic:

CLASS zcl_salesorder_details IMPLEMENTATION.
METHOD get_salesorder_details BY DATABASE PROCEDURE
                             FOR HDB
                             LANGUAGE SQLSCRIPT
                             OPTIONS READ–ONLY
                             USING vbak vbap vbup.
*To get Sales Order details
et_order = SELECT vbak.vbeln,
                  vbap.posnr,
                  vbak.vkorg,
                  vbap.netwr as item_price,
                  CASE LFSTA
                       WHEN ‘ ‘ then ‘Not Relevant’
                       WHEN ‘A’ then ‘Not yet processed’
                       WHEN ‘B’ then ‘Partially processed’
                       WHEN ‘C’ then ‘Completely processed’
                  END AS status
            FROM vbak AS vbak INNER JOIN vbap AS vbap
                  ON vbak.vbeln = vbap.vbeln
            INNER JOIN vbup AS vbup
                  ON vbup.vbeln = vbap.vbeln AND vbup.posnr = vbap.posnr
            WHERE vbak.vbeln = iv_vbeln;ENDMETHOD.
ENDCLASS.

6. Activate the AMDP Class and Check the created class in Transaction SE24.

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

Execute the ABAP Managed Database Procedure through Report

1. Create a New ABAP Program.

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

2. Provide Name and Description. Click on NEXT button.

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

3. Click on Finish button.

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

4. Call the AMDP Method in ABAP editor.

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

Logic:

REPORT zr_call_amdp.
PARAMETER p_vbeln TYPE vbeln.
* To Call AMDP Method
zcl_salesorder_details=>get_salesorder_details(
                EXPORTING iv_vbeln = p_vbeln
                IMPORTING et_order = data(lt_order) ).
* To display Sales Order Details
cl_demo_output=>display_data( name = ‘Sales Order Details’
                              value = lt_order ).

Output:

Provide the sales order number as the input

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

Stored in HANA Database

1. Check the DB Connection in tcode DBACOCKPIT.

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

2. Database procedure will create in HANA DB at the first call of AMDP Method .
3. Go to SAP HANA Development perspective –> HANA DB System –> Catalog –>
    Schema –> Procedures.
    The AMDP Method Implementation will be stored as Database procedure
    and Table Types of AMDP Class also stored under Schema ‘SAPABAP1’.

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

4. The Table Type ‘TT_ORDER ‘ of AMDP Class will be stored as                              “ZCL_SALESORDER_DETAILS=>GET_SALESORDER_DETAILS=>P00000#

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

5.The AMDP Method ‘GET_SALESORDER_DETAILS‘ of AMDP Class
   ‘ZCL_SALESORDER_DETAILS‘ will be stored as Database procedure
   ‘ZCL_SALESORDER_DETAILS=>GET_SALESORDER_DETAILS’ as shown below.

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

Logic:

create procedure
  “ZCL_SALESORDER_DETAILS=>GET_SALESORDER_DETAILS”
(
  in “IV_VBELN” NVARCHAR (000010),
  out “ET_ORDER” “ZCL_SALESORDER_DETAILS=>GET_SALESORDER_DETAILS=>P00000#ttyp”
)
language sqlscript sql security invoker reads sql data as begin
–To get Sales Order details
  et_order = SELECT vbak.vbeln,
                    vbap.posnr,
                    vbak.vkorg,
                    vbap.netwr as item_price,
                    CASE LFSTA
                        WHEN ‘ ‘ then ‘Not Relevant’
                        WHEN ‘A’ then ‘Not yet processed’
                        WHEN ‘B’ then ‘Partially processed’
                        WHEN ‘C’ then ‘Completely processed’
                    END AS status
             FROM “ZCL_SALESORDER_DETAILS=>VBAK#covw” AS vbak
             INNER JOIN “ZCL_SALESORDER_DETAILS=>VBAP#covw” AS vbap
                        ON vbak.vbeln = vbap.vbeln
             INNER JOIN “ZCL_SALESORDER_DETAILS=>VBUP#covw” AS vbup
                        ON vbup.vbeln = vbap.vbeln AND vbup.posnr = vbap.posnr
                        WHERE vbak.vbeln = iv_vbeln;
end; 

6. ZCL_SALESORDER_DETAILS=>GET_SALESORDER_DETAILS#stb2#20160831121018   and ZCL_SALESORbDER_DETAILS=>GET_SALESORDER_DETAILS#stub#20160831121018   are for calling Database procedure “ZCL_SALESORDER_DETAILS=>GET_SALESORDER_DETAILS”

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

Logic:

create procedure
  “ZCL_SALESORDER_DETAILS=>GET_SALESORDER_DETAILS#stb2#20160831121018”
(
  in “IV_VBELN” NVARCHAR (000010)
)
language sqlscript sql security invoker reads sql data as begin
   call “ZCL_SALESORDER_DETAILS=>GET_SALESORDER_DETAILS” (
     “IV_VBELN” => :IV_VBELN ,
     “ET_ORDER” => :ET_ORDER
   );
   select * from :ET_ORDER;
end;

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

Logic:

create procedure
   “ZCL_SALESORDER_DETAILS=>GET_SALESORDER_DETAILS#stub#20160831121018”
(
   in “IV_VBELN” NVARCHAR (000010)
)
language sqlscript sql security invoker reads sql data as begin
  call “ZCL_SALESORDER_DETAILS=>GET_SALESORDER_DETAILS” (
   “IV_VBELN” => :IV_VBELN ,
   “ET_ORDER” => :ET_ORDER
  );
  select * from :ET_ORDER;
end;


7. The database tables VBAK VBAP and VBUP are used in AMDP Method will be created as          VIEWS in HANA Database system.

i) ZCL_SALESORDER_DETAILS=>VBAK#covw

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

ii) ZCL_SALESORDER_DETAILS=>VBAP#covw

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

iii) ZCL_SALESORDER_DETAILS=>VBUP#covw

Step-by-Step procedure for creation, execution and storing of ABAP Managed Database Procedures in HANA

2 comments: