ABAP Managed Database Procedures (AMDPS) – 2ªPARTE
En la primera parte de este tema comentábamos los conceptos básicos para entender qué es un AMDP y sus características principales. En esta segunda parte, nuestra intención es entender las ventajas de los tipos de métodos AMDP.
Para comprender mejor como beneficiarnos de este tipo de métodos es conveniente saber que son las técnicas de modelado “Bottom-Up Approach” y “Top-Down Approach”.
1. Bottom-Up approach o Enfoque Ascendente
En este tipo de enfoque, se pueden crear vistas (vista de cálculo, vista de atributos, vista analítica) en la capa BD de HANA con “HANA Modeling” y estas vistas se exponen y utilizan en la capa ABAP a través de vistas externas.
También puede utilizarse este enfoque para procedimientos de BD.
El consumo ABAP es posible mediante:
– Vistas externas:
- Son sólo de lectura.
- Están Supervisadas por el diccionario ABAP.
- Se pueden utilizar en los programas ABAP para acceder a los datos disponibles en forma de Vistas de información en SAP HANA BD.
- Más optimizado que los procedimientos almacenados. (se discute más adelante).
– Proc. BD Proxy: Los procedimientos HANA de BD pueden ser expuestos como proxys de BD. en la capa del Diccionario ABAP.
Inconvenientes principales
- Se necesita licencia adicional para crear vistas en la capa BD (para ABAP y BD HANA ambas).
- Mantenimiento dual.
- Es necesaria una sincronización de cambios (cualquier cambio realizado en la capa BD (modelos) debe reflejarse en la capa App.
- Gestión de transporte (necesita transportes separados para moverse a través de ABAP y HANA BD si se realizan cambios en ambos).
- Costo de licencia adicional (mantenimiento de la capa HANA y ABAP).
Antes de ABAP 7.4 estábamos utilizando este enfoque.
Para evitar estos problemas se pensó en utilizar otro tipo de Modelado, el “Top-Down Approach” o enfoque descendente.
2. Top-Down approach o Enfoque descendente.
En este tipo de enfoque, creamos objetos utilizando el código ABAP que puede aprovechar la potencia de SAP HANA.
En este escenario cobran importancia los Core Data Services (CDS) y los ABAP Managed Database Procedures (AMDP).
Recordamos algunos de los conceptos y funciones principales de las CDS y los AMDP.
CDS (Core Data Services)
- Definidos en el repositorio ABAP utilizando la sintaxis SQL DDL.
- Utilizan Lenguaje Open SQL.
- Las CDS son ejecutadas como una instrucción individual, por lo tanto, no permiten introducir un punto de “debugging” dentro.
- Más información.
AMDP (ABAP Managed Database Procedures)
- Son métodos de clase ABAP simple que contienen código de procedimiento específico de BD.
- Utilizan Lenguaje Nativo SQL.
- Permiten introducir puntos de “debugging” en su interior.
- El código dentro del método se inserta en la capa de base de datos y se ejecuta dentro de la base de datos
- Deben utilizarse solo si se necesita acceder a funciones específicas de la base de datos que no existen en SQL abierto.
AMDP VS CDS.
En los AMDPs, podemos llamar a una función dentro de la otra, esto nos resulta muy útil para devolver múltiples conjuntos de resultados en lógicas complejas. Mientras que las CDS están dedicadas para un solo conjunto de lógica y devuelve solo un conjunto de resultados.
Está permitido crear vistas de CDS para leer y procesar datos en la capa BD.
Mientras que los AMDPs se pueden crear para procesar y modificar datos en la capa BD.
Los AMDP se utilizan para trabajar con procedimientos almacenados, que luego van a la capa HANA BD y lo ejecutan.
Esta funcionalidad no se puede lograr con Open SQL y CDS.
Beneficios modelo “Top-Down Approach” (enfoque descendente) con AMDPs y CDS.
- Se permiten crear y utilizar procedimientos de BD en AMDPs y vistas en CDS sin tener acceso a la capa BD HANA.
- AMDP y CDS se pueden crear en eclipse únicamente, no en GUI. Para ello se necesita la herramienta ADT (ABAP Development Tools) que se utiliza también en HANA Studio.
- Las CDS y los AMDPs no necesitan la licencia de HANA, cuando se ejecuta por primera vez, se crean automáticamente vistas y procedimientos respectivamente en la BD HANA.
- Al transferir datos a otros sistemas, CDS creará vistas y AMDP creará procedimientos automáticamente en el nuevo sistema.
De esta forma, concluimos a la espera de que el tema haya sido de vuestro interés.
Como comentábamos en la primera parte del artículo, confiamos en profundizar más a fondo y mostraros más en el futuro sobre el tema.