⚙️ ABAP Managed Database Procedures (AMDP)
ABAP Managed Database Procedures (AMDP) is a powerful framework in SAP HANA that enables developers to create database procedures using the ABAP language. AMDP serves as an alternative to SQLScript, the traditional approach for creating database procedures in HANA.
With SAP HANA AMDP, ABAP developers can write database procedures using ABAP syntax, which provides the ability to use familiar ABAP constructs such as loops, conditions, and function modules. This makes it easier for ABAP developers to work with HANA database objects and enables them to leverage their existing ABAP skills.
🔧 AMDP Procedure Types
AMDP Methods
Used to perform database updates and modifications. These procedures can change data in the database and are defined within ABAP classes with special syntax and annotations.
AMDP Functions
Used to perform read-only operations. These functions retrieve data without modifying it and are also defined within ABAP classes using specific AMDP annotations.
✅ Advantages of AMDP
- ✓ Familiar ABAP syntax makes it easier for ABAP developers to work with HANA database objects
- ✓ Seamless integration with ABAP data types and structures
- ✓ Ability to leverage ABAP development tools such as code completion and debugging
- ✓ Can use existing ABAP function modules and classes within the database procedure
- ✓ Improved productivity for ABAP developers working with SAP HANA
🔚 Conclusion
ABAP Managed Database Procedures (AMDP) can be used in conjunction with other SAP HANA development technologies such as Core Data Services (CDS) and Business Objects (BOBJ) to create powerful, efficient, and high-performance applications in SAP HANA environment.
ABAP Managed Database Procedures
CDS Views Features
- ✓ Database independent
- ✓ Support Open SQL
- ✓ Advanced view building
- ✓ Returns single output
AMDP SAP Features
- ✓ Database dependent (HANA)
- ✓ Supports only HANA SQL
- ✓ Method in a class
- ✓ Can return multiple outputs
Architecture Note: CDS Views become database-agnostic HANA Views when deployed, while AMDP methods transform into native HANA Stored Procedures, explaining their different capabilities and use cases.
AMDP Tutorial
🔍 Object: Display Customer Details by Country 🌍
PUBLIC SECTION.
INTERFACES IF_AMDP_MARKER_HDB.
TYPES TT_KNA1 TYPE TABLE OF KNA1.
CLASS-METHODS AMDP_METHOD1 IMPORTING
VALUE(I_LAND1) TYPE KNA1-LAND1
EXPORTING
VALUE(E_IT) TYPE TT_KNA1.
ENDCLASS.
METHOD AMDP_METHOD1 BY DATABASE PROCEDURE
FOR HDB
LANGUAGE SQLSCRIPT
OPTIONS READ-ONLY
USING KNA1.
E_IT = SELECT * FROM KNA1 WHERE LAND1 = :I_LAND1;
ENDMETHOD.
ENDCLASS.
KNA1
table by country code using ⚡ HANA SQLScript.🚀 ABAP Program to consume the data from AMDP SAP method
Data retrieval with fuzzy search and purchase document processing
PARAMETERS P_LAND1 TYPE KNA1-LAND1.
DATA IT_KNA1 TYPE TABLE OF KNA1.
CALL METHOD ZBB_SR_OAMDP_CLASS1=>amdp_method1
EXPORTING i_land1 = P_LAND1
IMPORTING e_it = IT_KNA1.
* Display the output
CL_SALV_TABLE=>factory(
IMPORTING r_salv_table = DATA(OB_SALV)
CHANGING t_table = IT_KNA1 ).
OB_SALV->DISPLAY( ).
PUBLIC SECTION.
INTERFACES IF_AMDP_MARKER_HDB.
TYPES TT_KNA1 TYPE TABLE OF KNA1.
CLASS-METHODS AMDP_METHOD1 IMPORTING
VALUE(I_LAND1) TYPE KNA1-LAND1
VALUE(I_NAME1) TYPE KNA1-NAME1
EXPORTING VALUE(E_IT) TYPE TT_KNA1.
ENDCLASS.
CLASS zbb_sr_oamdp_class1 IMPLEMENTATION.
METHOD AMDP_METHOD1 BY DATABASE PROCEDURE
FOR HDB
LANGUAGE SQLSCRIPT
OPTIONS READ-ONLY
USING KNA1.
E_IT = SELECT * FROM KNA1
WHERE LAND1 = :I_LAND1
AND CONTAINS(NAME1, :I_NAME1, FUZZY(0.4));
ENDMETHOD.
ENDCLASS.
PUBLIC SECTION.
INTERFACES IF_AMDP_MARKER_HDB.
TYPES TT_EKKO TYPE TABLE OF EKKO.
TYPES TT_EKPO TYPE TABLE OF EKPO.
CLASS-METHODS AMDP_METHOD IMPORTING
VALUE(I_EBELN) TYPE EKKO-EBELN
EXPORTING VALUE(ET_EKKO) TYPE TT_EKKO
VALUE(ET_EKPO) TYPE TT_EKPO.
ENDCLASS.
CLASS zbb_sr_oamdp_class2 IMPLEMENTATION.
METHOD AMDP_METHOD BY DATABASE PROCEDURE
FOR HDB
LANGUAGE SQLSCRIPT
OPTIONS READ-ONLY
USING EKKO EKPO.
ET_EKKO = SELECT * FROM EKKO WHERE EBELN = :I_EBELN;
ET_EKPO = SELECT * FROM EKPO WHERE EBELN = :I_EBELN;
ENDMETHOD.
ENDCLASS.
AMDP vs CDS Views
CDS Views Features
- ✓ Database independent
- ✓ Support Open SQL
- ✓ Advanced view building
- ✓ Returns single output
AMDP Features
- ✓ Database dependent (HANA)
- ✓ Supports only HANA SQL
- ✓ Method in a class
- ✓ Can return multiple outputs
Architecture Note: CDS Views become database-agnostic HANA Views when deployed, while AMDP methods transform into native HANA Stored Procedures, explaining their different capabilities and use cases.