• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
SAP S/4HANA

Cómo ejecutar un procedimiento almacenado de HANA en SAP Data Warehouse Cloud desde SAP Analytics Cloud

By s4pcademy 


Hay situaciones en las que es posible que sea necesario ejecutar algunos cálculos de back-end a partir de una historia en SAP Analytics Cloud (SAC). Por ejemplo, cuando queremos ejecutar lógica o cálculos complejos a datos o parámetros que han sido actualizados.

En esta publicación, mostraré cómo usar las acciones múltiples en SAP Analytics Cloud para llamar a un procedimiento almacenado que reside en SAP HANA Cloud o SAP Data Warehouse Cloud (DWC).

Para ello utilizaré el blog recientemente publicado sobre cómo crear una API en Cloud Foundry para llamar a procedimientos almacenados en SAP HANA Cloud, utilizando el modelo SAP Cloud Application Programming (CAP). En esa publicación, creé un procedimiento almacenado que agrega un registro a una tabla HISTORIAL DE LLAMADAS con la marca de tiempo actual y alguna información adicional. Aquí se utilizará el mismo procedimiento, pero implementado en SAP Data Warehouse Cloud. Usaré la historia de acciones múltiples en SAP Analytic Cloud para llamar a esa API. Se creará una vista en SAP DWC para mostrar el contenido de HISTORIAL DE LLAMADAS en la misma historia de SAC.

El procedimiento almacenado de HANA se implementará en un contenedor HDI que puede residir en SAP HANA Cloud o dentro de SAP Data Warehouse Cloud. Este contenedor tendrá los artefactos nativos de HANA: tabla y procedimientos.

Además de eso, se utilizará el modelo de programación de aplicaciones en la nube para proporcionar el servicio API, así como la autenticación de usuario en Cloud Foundry.

Opción 1: contenedor HDI en SAP HANA Cloud

Este escenario está completamente cubierto en el blog: cómo crear una API en Cloud Foundry para llamar a procedimientos almacenados en SAP HANA Cloud, utilizando el modelo SAP Cloud Application Programming (CAP).

En las próximas secciones usaré el nombre DWC_API_Servicio_Prueba para la aplicación y los servicios, que es exactamente lo mismo que el HANA_API_Servicio_Prueba creado en ese blog, pero que apunta a una instancia de HANA Cloud dentro de SAP Data Warehouse Cloud, como se describe en la siguiente opción.

Opción 2: Contenedor HDI dentro de SAP Data Warehouse Cloud

En este caso el mismo blog (cómo crear una API en Cloud Foundry para llamar a procedimientos almacenados en SAP HANA Cloud, utilizando el modelo SAP Cloud Application Programming (CAP)), se utilizará como línea de base. Sin embargo, dado que el proyecto se implementará en la instancia de HANA Cloud dentro de SAP Data Warehouse Cloud, hay algunas consideraciones adicionales a tener en cuenta:

  • El espacio BTP debe estar conectado al inquilino de SAP DWC.
  • El contenedor HDI debe implementarse en la instancia de HANA Cloud del inquilino de SAP DWC.
  • El contenido de HDI (tabla y procedimientos almacenados) debe ser accesible desde SAP DWC agregando roles al proyecto. Estos roles deben proporcionar SELECCIONE y SELECCIONAR METADATOS privilegios para leer la tabla y EJECUTAR privilegio para ejecutar los procedimientos de la tienda.

Todas estas consideraciones se explican en el blog: Desarrolle en SAP Data Warehouse Cloud usando SAP HANA Deployment Infrastructure (HDI)por Nidhi Sawhney

Una vez que el servicio API se implementa en Cloud Foundry, se puede encontrar en BTP Cockpit, dentro de las aplicaciones espaciales. Mi aplicación se llama DWC_API_Service_Test-srv, que aparece como:

BTP%20Cockpit%20-%20Aplicaciones

Cabina SAP BTP – Aplicaciones

Al abrir la aplicación DWC_API_Service_Test-srv, se puede encontrar la URL de la API en las rutas de la aplicación.

BTP%20Cubierta%20-%20API%20URL

Cockpit de SAP BTP: URL de la API

Aparte de eso, se necesitará la información de autenticación del usuario, que se describe en las instancias de los servicios. En mi caso, este es el servicio DWC_API_Service_Test-auth:

BTP%20Cockpit%20-%20Servicios%20Instancias

Cockpit de SAP BTP: instancias de servicios

Al hacer clic en Ver credenciales (arriba a la derecha), se muestran todos los detalles. Solo se necesitan los tres primeros parámetros: ID de cliente, secreto de cliente, y URL

BTP%20Cockpit%20-%20Servicio%20Credenciales

Cockpit de SAP BTP: credenciales de servicio

Con toda esta información estamos listos para crear una conexión a la API en SAC.

En SAP Analytics Cloud, crearé una nueva conexión para la API HTTP:

SAP%20Analytics%20Cloud%20-%20New%20Conexión

SAP Analytics Cloud: nueva conexión

La URL del servicio de datos es la URL de la aplicación del paso anterior.

Para esta API, el tipo de autenticación es Credenciales de cliente de OAuth 2.0. Los siguientes tres parámetros son del servicio de autenticación:

  • ID de cliente de OAuth = Identificación del cliente
  • secreto = secreto del cliente
  • La URL del token es la autenticación del usuario. URL con la adición de /autorización/token

SAP%20Analytics%20Cloud%20-%20HTTP%20API%20conexión%20detalles

SAP Analytics Cloud: detalles de conexión de la API HTTP

Después de hacer clic en Aceptar, la conexión debería crearse correctamente.

El siguiente paso es crear una nueva Multi-Acciones, haciendo clic en Multi-Acciones en el menú de la izquierda. Lo llamé DWC_API_Service_Test y agregaré un paso API,

SAP%20Analytics%20Cloud%20-%20Acción múltiple

SAP Analytics Cloud: multiacción

Se debe dar un nombre al paso de la API. En mi caso usé Stored_Procedure_API.

En este momento, solo las API POST están permitidas en acciones múltiples. Por lo tanto, usaré el servicio: act_register_call_with_param (ver blog anterior: cómo crear una API en Cloud Foundry para llamar a procedimientos almacenados en SAP HANA Cloud, utilizando el modelo SAP Cloud Application Programming (CAP))

En la URL de la API, la URL de la aplicación se escribe con la adición de /catalog/

Todos los parámetros deben estar en el cuerpo:

{
    "comment": "Calling from SAC",
    "name": "Hernan",
    "value": 1
} 

Para los resultados de la ejecución, seleccioné «Retorno sincrónico» y lo guardé.

SAP%20Analytics%20Cloud%20-%20Multi-Action%20API%20Step

SAP Analytics Cloud: paso de API de acción múltiple

Para acceder a la tabla HISTORIAL DE LLAMADASel contenedor HDI debe agregarse al espacio SAP DWC:

SAP%20Data%20Warehouse%20Cloud%20-%20Space%20Gestión

SAP Data Warehouse Cloud: gestión del espacio

Una vez que se agrega el contenedor HDI, se puede crear una vista gráfica en Data Builder. Al crear una vista, la tabla debe estar visible yendo a las fuentes. Crearé una vista analítica con VALOR como un Medida para consumirlo desde SAP Analytics Cloud.

SAP%20Data%20Warehouse%20Cloud%20-%20New%20Graphical%20View

SAP Data Warehouse Cloud: nueva vista gráfica

Después de su implementación, debe ser accesible desde SAP Analytics Cloud.

En SAP Analytics Cloud, voy a crear una historia básica que se conecte a SAP Data Warehouse Cloud. Después de crear el nuevo lienzo, agrego datos de la fuente de datos, en este caso, datos en vivo de SAP Data Warehouse Cloud.

SAP%20Analytics%20Cloud%20-%20Data%20Fuente

SAP Analytics Cloud: fuente de datos

En este ejemplo, solo crearé una tabla para mostrar los datos y el Multi-acciones. La acción múltiple aparece en las opciones de inserción como una Disparador de planificación.

SAP%20Analytics%20Cloud%20-%20Insert%20Multi-Acción

SAP Analytics Cloud – Insertar multiacción

En la configuración de Multi-Acción solo tengo que seleccionar el nombre de Multi-Acción previamente definido.

Luego agrego una tabla para mostrar el Ver_HISTORIAL_DE_LLAMADAS de SAP DWC.

Configuración de SAP%20Analytics%20Cloud%20Story%20-%20Table%20

SAP Analytics Cloud Story: configuración de tablas

Ahora, al hacer clic en el control de acción múltiple, se activará la API. Una vez finalizada su ejecución, los datos se pueden actualizar haciendo clic en el botón Actualizar botón en la barra de herramientas.

SAP%20Analytics%20Cloud%20story%20-%20Refresh%20data

Historia de SAP Analytics Cloud: actualización de datos

Esta publicación de blog muestra un ejemplo sobre cómo desencadenar la ejecución de un procedimiento almacenado de HANA a través de la API de SAP Analytics Cloud. El procedimiento almacenado puede residir en SAP Data Warehouse Cloud, así como en una nube independiente de SAP HANA.

De esta forma, los usuarios comerciales pueden ejecutar la lógica en el backend directamente desde un informe. Por lo tanto, se pueden implementar casos de uso más complejos. Por ejemplo, las simulaciones de Monte Carlo que aprovechan la biblioteca de análisis predictivo (PAL) de SAP HANA podrían activarse directamente desde SAP Analytics Cloud.

quiero agradecer ian henry, María TZATSOU y Nektarios Vasileiou por todas las discusiones, experiencias compartidas y apoyo recibido en relación con esta publicación de blog.

Recursos adicionales

Verifique los recursos de la comunidad y haga preguntas sobre




Cómo calcular el stock de seguridad con SAP IBP para inventario
Previo
Genera código QR dinámico a partir de oDATA
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.