ABAP-Managed Database Procedures (AMDP) with Example

 

Syntax of AMDP Classes

An AMDP is implemented in an AMDP class with a regular static method or instance method in any visibility section.

CLASS <my_amdp_class> DEFINITION.

  PUBLIC SECTION.
* Marker interface with SAP HANA DB as database type
  INTERFACES IF_AMDP_MARKER_<DB_TYPE>.
   ...
   	
  METHODS <my_amdp_method>.
   ...
     
ENDCLASS.


CLASS <my_amdp_class> IMPLEMENTATION.

...

* AMDP method 
  METHOD <my_amdp_method> BY DATABASE PROCEDURE 
		FOR <db_type>
		LANGUAGE <db_language>
 		OPTIONS <db_options>  
     	USING   <db_entity>.
     	
  	"Implementation of the procedure in a DB-specific language 
 	...

  ENDMETHOD.
	...

ENDCLASS. 
 

Example:

Click on File->New->ABAP Class


CLASS zvb_amdp_class DEFINITION

PUBLIC

  FINAL

  CREATE PUBLIC .

 

  PUBLIC SECTION.

    TYPES:BEGIN OF ty_stu,

            id   TYPE numc10,

            name TYPE char20,

          END OF ty_stu.

    TYPES:tt_stu TYPE STANDARD TABLE OF ty_stu.

    INTERFACES:if_amdp_marker_hdb.

    CLASS-METHODS:fetch_data IMPORTING

                               VALUE(iv_id)  TYPE zvb_stu-id

                             EXPORTING

                               VALUE(et_stu) TYPE tt_stu.

ENDCLASS.

 

CLASS zvb_amdp_class IMPLEMENTATION.

  METHOD fetch_data BY DATABASE PROCEDURE

                    FOR HDB

                    LANGUAGE SQLSCRIPT

                    OPTIONS READ-ONLY

                    USING zvb_stu.

    et_stu = select id,name from zvb_stu WHERE id = :iv_id;

  ENDMETHOD.

ENDCLASS.

 

Call AMDP Class in Report Program

REPORT zvb_amdp_program.

PARAMETERS:p_id TYPE zvb_stu-id.

zvb_amdp_class=>fetch_data(
  EXPORTING iv_id p_id
  IMPORTING et_stu DATA(lt_stu).

cl_demo_output=>display_dataname 'Student Details' value lt_stu ).
 


Output:

 

 

 

Comments

Popular posts from this blog

Passing Dynamic Variables to SO10 TEXT

Implicit Enhancement with Example

TMG Events