Enterprise Resource Planning Blogs by Members
Gain new perspectives and knowledge about enterprise resource planning in blog posts from community members. Share your own comments and ERP insights today!
cancel
Showing results for 
Search instead for 
Did you mean: 
 

I would like to explain about creation of SAP HANA Procedure Object to ABAP Perspective by step by step procedure. This blog Post is mainly useful for beginners.

An SAP HANA procedure is a database-stored procedure that gives you programming functionality with the help of SAP HANA SQL Script, similar to ABAP functions. Now I guide you through the creation of SAP HANA data flows with the help of calculation views (graphical and SQL Script-based views), as well as some pitfalls you may run into.

The first calculation view is a plain graphical view. Right-click your development package and select New and then Calculation View as shown in

Following are the Steps involved to extract SAP HANA Procedure Object to ABAP Perspective

Step -1 : Open HANA development and Create your Own Package ,Under that Create a Calculation View in that Select Script based View.


 


 

 


 

Step-2 :  After creating a Script View , A modeller will be opened to write Script that you want.  


 

Below Image shows Sample Script in the Console

Note :

  1. While Creating Script View In the Console , Try to create Column Names Exactly same as mentioned in the Script that is Written based on Columns taken from Particular Table. Otherwise the Created View will not be Activated.


Below Image shows ,How to Create Columns in Script based View

 


 

 


Click on save and active button  and click on data preview drop down select open data preview editor.


 


 

click on ok and select RAW DATA


 

Step -3 : After Completion of Script View ,Create a Stored Procedure on top of Script View . 

Select the HANA Database system and click on SAP HANA DEVELOPMENT

Below images shows, How to create XML Procedure

First of all to create XML procedure Go to repositories


Next RightClick on Package->New->Others


 

Now Select SAP HANA-> Database Development -> Stored Procedure



Now Select XML Procedure Option in File Format


After that Select the target Schema present in Catlog


Now the created object is visible at the target Package


Below Image is sample procedure that is created in one package


Note:

Difference between .hdb procedure and XML procedure is that in XML procedure there is two options, one is to write SQL script and other is Local table types but in .hdb procedure we have only SQL script option.


 

  1. Here in this procedure I am passing output parameter to get required fields from a table. So in local table type ,create a table with same name given in output parameter for reference. After this Execute the stored Procedure ,this will automatically create Xml Procedure and place that object in the target Package that is created.



 

Step-4: Now call this XML Stored Procedure in the ABAP Perspective.

To call the Stored procedure into ABAP Environment first connect the SAP HANA System to ABAP by below steps.

Goto->ABAP repository


 

Give the SAP HANA System and connect through your User credentials to ABAP Environment.


 

Now Go to-> Project Explorer->Local Objects ->New->Others


Type Proxy Procedure and search for it in ABAP Repository Object


Now this will open Database Procedure Proxy


Note : While selecting XML Procedure into Proxy Procedure

1.In HANA procedure option press “Ctrl+Space” to get all the Procedures from HANA perspective.

After calling the stored procedure into ABAP Environment , a new Proxy Procedure will be created as shown below


The object will be Visible in Repository as shown below


Create and implement an ABAP Report consuming Procedure We will now call the database procedure proxy from an ABAP program. We will implement a simple report which will just output the result with a WRITE statement.

The following steps are performed in the ABAP perspective. a. Create a new ABAP Program in the package of your choice by just right-clicking on it and selecting “New -> ABAP Program" from the context menu. Enter a name (e.g. zstore_procedure ) and a description (e.g. “Display Top and Flop Customers”).

Press on Next and then on Finish on the dialog step.


Store Procedure via report.
*&---------------------------------------------------------------------*
*& Report zstore_procedure
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zstore_procedure.

types: begin of out_var,
mandt type c length 3,
matnr type c length 40,
meins type c length 3,
ntgew type i,
end of out_var.

PARAMETERS: p_matnr TYPE mara-matnr.

*Define parameters using the created DPP interfaces ZIF_ZMARA1
DATA : lv_data TYPE zif_zproxy=>matnr,
lt_data TYPE STANDARD TABLE OF zif_zproxy=>out_var,
ls_data TYPE zif_zproxy=>out_var,
Lt_fcat TYPE slis_t_fieldcat_alv,
ls_fcat TYPE slis_fieldcat_alv.

*Set the value of procedure input parameters
lv_data = p_matnr.

*Call the created database procedure proxy
CALL DATABASE PROCEDURE zproxy
EXPORTING matnr = lv_data
IMPORTING out_var = lt_data.

PERFORM build_fieldcatalog.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = lt_fcat "PASS FIELD CATALOG TO ALV
TABLES
t_outtab = lt_data.

FORM build_fieldcatalog.
ls_fcat-col_pos = '1'.
ls_fcat-fieldname = 'MANDT' .
ls_fcat-tabname = 'LT_DATA' .
ls_fcat-seltext_m = 'MANDT' .
APPEND ls_fcat TO Lt_fcat .
CLEAR ls_fcat.
ls_fcat-col_pos = '2' .
ls_fcat-fieldname = 'MATNR' .
ls_fcat-tabname = 'LT_DATA' .
ls_fcat-seltext_m = 'MATNR' .
APPEND ls_fcat TO LT_FCAT.
CLEAR ls_fcat.
ls_fcat-col_pos = '3' .
ls_fcat-fieldname = 'meins' .
ls_fcat-tabname = 'LT_DATA' .
ls_fcat-seltext_m = 'meins' .
APPEND ls_fcat TO Lt_fcat .
CLEAR ls_fcat.
ls_fcat-col_pos = '4' .
ls_fcat-fieldname = 'ntgew' .
ls_fcat-tabname = 'LT_DATA' .
ls_fcat-seltext_m = 'ntgew' .
APPEND ls_fcat TO Lt_fcat .
CLEAR ls_fcat.
ENDFORM.

Save  and Activate  your report.

You can now run the report (press on F8) – and by the way see the result of your effort .


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.

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



Click on FINISH button.



Calling HANA Procedure in AMDP
CLASS zcall_amdp DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .

PUBLIC SECTION.
* Makes interface for Database Procedures
INTERFACES IF_AMDP_MARKER_HDB.

*Structure
TYPES:
BEGIN OF ty_DATA,
MANDT TYPE MANDT,
MATNR TYPE MATNR,
MEINS TYPE MEINS,
NTGEW TYPE NTGEW,
END OF ty_DATA.
* Table type
TYPES: Lt_DATA TYPE TABLE OF ty_DATA .

* Method Definition
CLASS-METHODS GET_DETAILS
IMPORTING
VALUE(LV_MATNR) TYPE MATNR
EXPORTING
VALUE(OUT_VAR) TYPE LT_DATA.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.


CLASS zcall_amdp IMPLEMENTATION.

METHOD GET_DETAILS BY DATABASE PROCEDURE
FOR HDB
LANGUAGE SQLSCRIPT.

call "_SYS_BIC"."ZPRO_VIEW/ZSTORE" (:LV_MATNR,OUT_VAR );

ENDMETHOD.
ENDCLASS.


REPORT:


 
AMDP Report:
*&---------------------------------------------------------------------*
*& Report zcall_abap_report
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zcall_abap_report.


TYPES:
BEGIN OF ty_data,
mandt TYPE mandt,
matnr TYPE matnr,
meins TYPE meins,
ntgew TYPE ntgew,
END OF ty_data.

* Table type
DATA: lt_data TYPE TABLE OF ty_data.

PARAMETERS : p_matnr TYPE matnr DEFAULT '28'.

DATA : r_amdp TYPE REF TO zcall_amdp,
* out_var TYPE TABLE OF ty_data,
r_salv TYPE REF TO cl_salv_table.

CREATE OBJECT r_amdp.

r_amdp->get_details(
EXPORTING
lv_matnr = p_matnr
IMPORTING
out_var = lt_data
).

TRY.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = r_salv
CHANGING
t_table = lt_data.
CATCH cx_salv_msg .
ENDTRY.

r_salv->display( ).

Conclusion:    

I hope this blog Post helps to SAP HANA Procedure Object to ABAP Perspective.

 
1 Comment
Labels in this area