Introduction: AMDP (ABAP Managed Database Procedures) is a framework in SAP that allows ABAP developers to write and execute database-specific SQL Script code (mainly for SAP HANA) directly from ABAP classes. It gives ABAP the ability to run complex, high-performance database operations on HANA using SQL Script, instead of pulling data into ABAP memory.
INSERT (Adding Data):
Use the INSERT statement to add new rows to a table. You can insert single rows or multiple
rows using INSERT INTO ... SELECT
METHOD insert_data
BY DATABASE PROCEDURE FOR HDB
LANGUAGE SQLSCRIPT
USING ZPS_TEST.
IF NOT EXISTS ( SELECT *
FROM ZPS_TEST
WHERE eno = :e_no )
THEN
INSERT INTO ZPS_TEST VALUES (
session_context('CLIENT'),
:e_no,
:e_name,
session_context('SAP_SYSTEM_DATE'),
session_context('APPLICATIONUSER'),
TO_VARCHAR(CURRENT_TIME, 'HH24MISS'),
session_context('APPLICATIONUSER'),
TO_VARCHAR(CURRENT_TIME, 'HH24MISS')
);
i_msg = 'Success';
ELSE
i_msg = 'Unsuccessful';
END IF;
ENDMETHOD.UPDATE (Modifying Data):
Use the UPDATE statement to modify existing rows in a table. Use the WHERE clause to
specify which rows to update. Be careful not to omit the WHERE clause, as that would
update all rows in the table.
METHOD update_data
BY DATABASE PROCEDURE FOR HDB
LANGUAGE SQLSCRIPT
USING ZPS_TEST.
IF EXISTS ( SELECT * FROM ZPS_TEST WHERE eno = :e_no ) THEN
UPDATE ZPS_TEST SET
ename = :e_name,
euperson = session_context('APPLICATIONUSER'),
eutime = TO_VARCHAR(CURRENT_TIME, 'HH24MISS')
WHERE eno = :e_no;
i_msg = 'Success';
ELSE
i_msg = 'Unsuccessful';
END IF;
ENDMETHOD.DELETE (Removing Data):
Use the DELETE statement to remove rows from a table. As with UPDATE, use the WHERE
clause carefully to avoid deleting unintended rows.
METHOD delete_data
BY DATABASE PROCEDURE FOR HDB
LANGUAGE SQLSCRIPT
USING ZPS_TEST.
IF EXISTS ( SELECT * FROM ZPS_TEST WHERE eno = :e_no ) THEN
DELETE FROM ZPS_TEST
WHERE eno = :e_no;
i_msg = 'Success';
ELSE
i_msg = 'Unsuccessful';
END IF;
ENDMETHOD.Program to Call Above Methods in ABAP:
REPORT zrj_amdp_emp_crud.
PARAMETERS : i_ono TYPE zde_ono OBLIGATORY.
PARAMETERS : i_name TYPE zde_ename MODIF ID a1.
PARAMETERS pr1 TYPE c RADIOBUTTON GROUP r1 DEFAULT 'X'.
PARAMETERS pr2 TYPE c RADIOBUTTON GROUP r1.
PARAMETERS pr3 TYPE c RADIOBUTTON GROUP r1.
DATA : lv_insert TYPE string.
DATA : lv_update TYPE string.
DATA : lv_delete TYPE string.
START-OF-SELECTION.
IF pr1 = 'X'.
zps_c_emp=>insert_data(
EXPORTING
e_no = i_ono
e_name = i_name
IMPORTING
i_msg = lv_insert
).
IF lv_insert = 'Success' .
WRITE : TEXT-001 , i_ono.
ELSE.
WRITE : TEXT-002 .
ENDIF.
ENDIF.
IF pr2 = 'X'.
zps_c_emp=>delete_data(
EXPORTING
e_no = i_ono
IMPORTING
i_msg = lv_update
).
IF lv_update = 'Success' .
WRITE : TEXT-003 , i_ono.
ELSE.
WRITE : TEXT-004 .
ENDIF.
ENDIF.
IF pr3 = 'X'.
zps_c_emp=>update_data(
EXPORTING
e_no = i_ono
e_name = i_name
IMPORTING
i_msg = lv_delete
).
IF lv_delete = 'Success' .
WRITE : TEXT-005 , i_ono.
ELSE.
WRITE : TEXT-006 .
ENDIF.
ENDIF.
AT SELECTION-SCREEN OUTPUT.
IF pr3 ='X'.
LOOP AT SCREEN.
IF screen-group1 = 'A1'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.Conclusion:
AMDP allows ABAP developers to perform powerful database operations directly in SAP HANA using SQL Script. By embedding SQL Script inside ABAP classes, AMDP enables fast execution of SELECT, INSERT, UPDATE, and DELETE operations at the database level, avoiding data transfer to the ABAP layer.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 12 | |
| 11 | |
| 9 | |
| 8 | |
| 8 | |
| 7 | |
| 6 | |
| 6 | |
| 5 | |
| 5 |