HomeSAPABAPHow to Successfully Implement AMDP in SAP for Optimal Performance

How to Successfully Implement AMDP in SAP for Optimal Performance

⚙️ 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

Compiles to:
HANA View
  • Database independent
  • Support Open SQL
  • Advanced view building
  • Returns single output

AMDP SAP Features

Generates:
Stored Procedure
  • 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 🌍

📘 CLASS DEFINITION
CLASS zbbs_oamdp_class1 DEFINITION PUBLIC.
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.
⚙️ CLASS IMPLEMENTATION
CLASS zbbs_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;
ENDMETHOD.
ENDCLASS.
💡
This AMDP class filters the 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

🖥️ ABAP Report (Consumer)
REPORT zbb_sr_ocamdp1.
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( ).
🔍 Fuzzy Search via AMDP
CLASS zbb_sr_oamdp_class1 DEFINITION PUBLIC.
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.
📄 Purchase Document Details AMDP
CLASS zbb_sr_oamdp_class2 DEFINITION PUBLIC.
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.
💡
Implementation Notes: This example demonstrates efficient data retrieval patterns using AMDP methods in ABAP with SAP HANA capabilities including fuzzy search.

AMDP vs CDS Views

CDS vs AMDP Comparison

CDS Views Features

Compiles to:
HANA View
  • Database independent
  • Support Open SQL
  • Advanced view building
  • Returns single output

AMDP Features

Generates:
Stored Procedure
  • 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.

To learn SAP ABAP please click here

To learn SAP Data sphere please click here

To learn SQL for native HANA please click here

To learn SAP SAC from SAP please click here

RELATED ARTICLES
- Advertisment -

Most Popular

Recent Comments