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_data( name = 'Student Details' value = lt_stu ).
Output:
Comments
Post a Comment