AMDP
AMDP
Contents
ABAP MANAGED DATABASE PROCEDURES (AMDP) ..................................................................................... 1
AMDP Procedures: .................................................................................................................................... 3
AMDP Functions........................................................................................................................................ 5
1. Table Functions: ................................................................................................................................ 5
2. CDS Functions: .................................................................................................................................. 7
References: ................................................................................................................................................. 11
BY DATABASE PROCEDURE
Defines an AMDP procedure implementation for implementing a database procedure
BY DATABASE FUNCTION
Defines an AMDP function implementation for implementing a database function
FOR db
Defines the database system for which the AMDP method is used ‘HDB’.
LANGUAGE db_lang
Defines the database-specific language in which the AMDP is implemented ‘SQL SCRIPT’.
OPTIONS db_options
Defines the database-specific options for the AMDP procedure or function ‘READ- ONLY’.
USING db_entities
Defines the database objects managed by ABAP accessed in the AMDP procedure or function.
Table Data
AMDP Procedures:
It allows import, export and changing parameters, but return parameter is not allowed.
It can perform READ, INSERT, and UPDATE.
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_amdp_marker_hdb .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
METHOD get_po_hd BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY
USING ztb_po_hd.
it_po_hd = SELECT * FROM ztb_po_hd WHERE po_num = im_po AND client = im_mandt;
ENDMETHOD.
UPDATE ztb_po_hd SET status = im_status WHERE po_num = im_po AND client =
im_mandt;
it_po_hd = SELECT * FROM ztb_po_hd WHERE po_num = im_po AND client = im_mandt;
ENDMETHOD.
ENDCLASS.
lr_obj->get_po_hd(
EXPORTING
im_po = '1000000001'
im_mandt = sy-mandt
IMPORTING
it_po_hd = DATA(it_po_hd) ).
cl_demo_output=>display( it_po_hd ).
lr_obj->update_po_hd(
EXPORTING
im_po = '1000000001'
im_mandt = sy-mandt
im_status = 'B'
IMPORTING
it_po_hd = DATA(it_po_hd1) ).
cl_demo_output=>display( it_po_hd1 ).
AMDP Functions
It can have multiple importing parameters and return exactly one result.
It can perform READ only.
Functions are Table and CDS Functions
1. Table Functions:
PUBLIC SECTION.
INTERFACES if_amdp_marker_hdb .
METHOD get_po_hd_tb_fn BY DATABASE FUNCTION FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-
ONLY USING ztb_po_hd.
RETURN select * from ztb_po_hd WHERE po_num = im_po and client = im_mandt;
ENDMETHOD.
ENDMETHOD.
ENDCLASS.
lr_obj->get_po_hd_db_pr(
EXPORTING
im_po = '1000000001'
im_mandt = sy-mandt
IMPORTING
it_po_hd = DATA(it_po_hd) ).
cl_demo_output=>display( it_po_hd ).
3. Output
INTERFACES if_amdp_marker_hdb .
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
cl_demo_output=>display( it_po ).
3. Output
2. CDS Functions:
}
implemented by method
zcl_amdp_cds_fun=>get_po;
PUBLIC SECTION.
INTERFACES if_amdp_marker_hdb .
CLASS-METHODS GET_PO FOR TABLE FUNCTION ZAMDP_CDS_FUNCTION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
RETURN SELECT client, po_num, org, status, vendor, plant FROM ztb_po_hd WHERE
po_num = po AND client = clnt;
ENDMETHOD.
ENDCLASS.
4. Output
}
implemented by method
zcl_amdp_cds_fun=>get_po;
PUBLIC SECTION.
INTERFACES if_amdp_marker_hdb .
CLASS-METHODS get_po FOR TABLE FUNCTION zamdp_cds_function.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
* RETURN SELECT client, po_num, org, status, vendor, plant FROM ztb_po_hd WHERE
po_num = po AND client = clnt;
it_po = select client, po_num, org, status, vendor, plant FROM ztb_po_hd;
endmethod.
ENDCLASS.
TRY.
DATA(l_where) = cl_shdb_seltab=>combine_seltabs(
EXPORTING it_named_seltabs = VALUE #( ( name = 'PO_NUM' dref = REF #( so_
po[] ) ) ) iv_client_field = 'CLIENT' ).
CATCH cx_shdb_exception.
ENDTRY.
4. Output
Email: [email protected] 10 | P a g e
Prepared by Yogi Pavan - SAP ABAP Consultant Linkedin – Bandi Yogi Pavan Kumar Reddy
References:
https://help.sap.com/doc/abapdocu_750_index_htm/7.50/en-US/abenamdp.htm
https://help.sap.com/doc/abapdocu_750_index_htm/7.50/en-
US/abapmethod_by_db_proc.htm
Email: [email protected] 11 | P a g e