Avalados por :

Agregando funcionalidad full stack a tu proyecto CAP: Calculation Views y Stored Procedures

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 5 Vistas
0
Cargando...
Hola de nuevo a la comunidad de SAP. Espero se encuentren bien y que hayan tenido tiempo de leer el primer blog que escribí acerca del CAP aquí. Hoy me gustaría agregarle funcionalidad al blog que hice acerca de las aplicaciones full stack en el framework de CAP. Nuevos artefactos de la base de datos como lo son las calculation views y stored procedures para hacerlo ver más como una aplicación real. Para leer este blog en inglés ve aquí




Empecemos agregando un calculation view. Como ya deben saber, los calculation views representan datos de tablas/vistas múltiples para presentar un modelo de datos. Recuerda que, cuando creas nuevos objetos, debes hacer un build (cds build) a nivel de proyecto para poder hacer el deployment asegurándote de que no haya nada malo en el HDI.

Para agregar un calculation view a tu proyecto de CAP sigue los siguientes pasos:
  1. Crea un calculation view dentro del folder db/src del proyecto.

Desde el command palette, escribe >hana: para abrir el menú de sugerencias y seleccionar del drop down “Create SAP HANA Database Artifact”
  1. Sigue los pasos del wizard para añadir la información correspondiente al tipo de objeto db, nombre, path, etc.


Una vez que hayas creado el modelo de datos, necesitamos reconstruir el proyecto antes de hacer el deploying. Para reconstruir el proyecto, desde la terminal, escribe: cds build

*Nota que las tablas y el nuevo view sean reconstruidos (lo puedes ver desde el output de la terminal)

Una vez que los objetos sean construidos, puedes usar el icono de cohete desde la herramienta BAS para hacer deploy – pon el ratón al nivel de proyecto y no al nivel de objeto.



Una vez que se haga el deployment, puedes verificar si el calc view se creó correctamente dentro de la instancia de HANA usando el explorador de bases de datos (desde la sección de Column views)


Y también puedes hacer un query al view desde la consola de SQL


O también desde la terminal usando la herramienta de hana-cli


El siguiente paso es agregar el calculation view al archivo de modelos de la DB y hacer referencia a él desde el servicio de OData. Ya que el CV existe en el sistema, debemos incluir anotaciones al archivo de cds de la BD para que el sistema sepa que es un objeto ya existente.

Usando la herramienta de hana-cli tool, inspeccionemos el view. Usando el de output cds (-o flag) Podemos generar este view como si fuera un view de CDS. Como ya lo mencioné anteriormente, y que ya existe el objeto, la herramienta de hana-cli incluye esas anotaciones al calculation view (@cds.persistence annotations arriba del nombre de la Entity) juega con el comando para ver que otras opciones puedes usar y también para ver la definición completa del mismo


Con esta definición de CDS, continuamos hacia el archivo de CDS. Nota los cambios que quitamos el namespace y lo añadimos como context en la estructura abajo. Eso se hace para no tener que poner un namespace en el calculation view.


Una vez que el view se haya incluido en esta definición, continuemos al servicio de OData.

Lo incluimos aquí para poder exponerlo como un endpoint diferente. La anotación @readonly se incluyó en el servicio pues muestra que solo es para leer y el consumidor del servicio no trate de crear o manipular los datos desde este endpoint.


El siguiente paso es asegurarnos que funcione la construcción y deployment de la aplicación como lo hicimos anteriormente. Después de que se haya hecho el deployment, corre el servicio desde la
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

Sin respuestas

No hay respuestas para mostrar No hay respuestas para mostrar Se el primero en responder

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?