AMDP ABAP Tutorial desde cero

AMDP ABAP

Un procedimiento AMDP (ABAP Managed Database Procedure) es un método dentro de una clase ABAP que contiene código SQLScript para ser ejecutado directamente en SAP HANA. Los procedimientos AMDP son útiles cuando necesitamos optimizar operaciones complejas de procesamiento de datos que involucren grandes volúmenes de información.

En este tutorial, aprenderás cómo crear y ejecutar un Procedimiento AMDP en ABAP, optimizando el rendimiento de tu base de datos SAP HANA. AMDP permite implementar lógica de base de datos directamente en SAP HANA utilizando ABAP, lo que mejora el rendimiento al reducir la transferencia de datos entre la base de datos y la aplicación.

¿Cuándo utilizar AMDP ABAP?

Cuando la base de datos necesita funciones específicas que no están disponibles en Open SQL, es necesario utilizar AMDP dentro de CDS. Por ejemplo, si se requiere realizar cálculos complejos en CDS, como ordenar o eliminar datos duplicados, podemos hacerlo a través de AMDP.

Requisitos previos para crear un AMDP

  • Sistema SAP con SAP HANA como base de datos.
  • SAP NetWeaver 7.4 o superior.
  • Conocimientos básicos de ABAP y SQLScript.

Crear una Clase ABAP

Abrir el entorno de desarrollo ABAP (ADT o SE24).

Crear una nueva clase:

  • Abre el Eclipse IDE para ABAP.
  • Seleccional la siguiente ruta: File -> New -> ABAP Class.
  • Ingresar datos de la clase: Nombre y descripción.
  • Seleccionamos el botón “Add” en la sección de interfaces y agregamos la interfaz if_amdp_marker_hdb.
  • Seleccionar transporte y finalizar.
CLASS zcl_amdp_demo DEFINITION PUBLIC FINAL CREATE PUBLIC.
  PUBLIC SECTION.
    INTERFACES if_amdp_marker_hdb.
    METHODS:
      get_data FOR HDB LANGUAGE SQLSCRIPT
      USING my_table.
ENDCLASS.

Explicación:

  • if_amdp_marker_hdb: Esta interfaz marca la clase como AMDP para que el código se ejecute en la base de datos SAP HANA.
  • get_data: Método que implementará el procedimiento AMDP.
  • USING my_table: Lista las tablas que serán usadas en el procedimiento.

Implementar el Procedimiento AMDP

En el método de implementación, añade el siguiente código SQLScript:

AMDP ABAP example

CLASS zcl_amdp_demo IMPLEMENTATION.
METHOD get_data BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY USING my_table.

result = SELECT column1, column2
FROM my_table
WHERE condition = 'X';

ENDMETHOD.
ENDCLASS.

Explicación:

  • BY DATABASE PROCEDURE FOR HDB: Define que el método es un procedimiento AMDP para HANA.
  • LANGUAGE SQLSCRIPT: Especifica que el lenguaje del procedimiento es SQLScript.
  • OPTIONS READ-ONLY: El procedimiento solo consulta datos, sin modificar la base de datos.
  • result: Contendrá los resultados de la consulta.

Invocar el Procedimiento AMDP ABAP

Para ejecutar el procedimiento desde un programa ABAP, sigue estos pasos:

  1. Crea un programa ABAP en la transacción SE38.
  2. Usa el siguiente código para llamar al procedimiento AMDP:
DATA: lt_result TYPE TABLE OF my_table.

CALL METHOD zcl_amdp_demo=>get_data
  IMPORTING
    result = lt_result.

LOOP AT lt_result INTO DATA(ls_row).
  WRITE: / ls_row-column1, ls_row-column2.
ENDLOOP.

Explicación:

  • lt_result: Tabla interna para almacenar los resultados del AMDP.
  • CALL METHOD: Llamada al procedimiento AMDP.
  • WRITE: Muestra los resultados en la consola de SAP.

Probar y Depurar el Procedimiento AMDP ABAP

  1. Ejecuta el programa para probar el AMDP.
  2. Verifica que los datos se muestren correctamente.
  3. Para depurar el procedimiento AMDP, puedes utilizar las herramientas de análisis de rendimiento en HANA o depurar el código ABAP estándar.

Ventajas de usar un AMDP ABAP

  • Optimización del rendimiento: Al ejecutar el código SQLScript directamente en la base de datos, reduces la transferencia de datos.
  • Integración nativa con SAP HANA: Aprovechas las capacidades de SAP HANA, como el procesamiento paralelo y la alta eficiencia de consultas.
  • Escalabilidad: Ideal para trabajar con grandes volúmenes de datos y operaciones complejas.

Conclusión

Este tutorial paso a paso te ha guiado en la creación de un procedimiento AMDP en ABAP, aprovechando las capacidades avanzadas de SAP HANA para mejorar el rendimiento de las consultas de bases de datos. Con AMDP, puedes implementar lógica compleja directamente en la base de datos, minimizando la sobrecarga en el servidor de aplicaciones.

A medida que vayas familiarizándote con AMDP, podrás aprovechar todo el potencial de SAP HANA y mejorar la eficiencia de tus aplicaciones ABAP.

Información detallada sobre la evolución de CDS y AMDP, sus funciones y cuándo utilizarlas en distintos escenarios de desarrollo en SAP HANA:
SAP Community

Explicaciones sobre cuándo usar Open SQL, CDS y AMDP, con énfasis en la reutilización y la necesidad de lógica compleja como bucles en SQL Script:
SAP Q&A

Un tutorial práctico sobre cómo usar funciones útiles de AMDP en CDS, especialmente en escenarios que requieren manipulación de datos duplicados o complejos:
ERP Q&A

Tags: ABAP Managed Database Procedure, SAP HANA ABAP, Procedimientos AMDP en ABAP, Tutorial AMDP ABAP, SQLScript en SAP HANA, Optimización ABAP HANA.