SAP CAP: Side Effects, Actions, Dynamic Expressions and Singleton

11marzo

Resumen:

Este webinar aborda conceptos avanzados de CAP (Cloud Application Programming Model), incluyendo efectos secundarios, acciones, expresiones dinámicas y la gestión de operaciones CRUD en una entidad singleton. Se explica cómo generar un proyecto CAP, definir entidades y servicios, usar anotaciones CDS para crear una interfaz de usuario (list report page), y cómo implementar lógica personalizada con JavaScript. Se detalla cómo crear value helps, aplicar efectos secundarios para actualizaciones en tiempo real, usar expresiones dinámicas para controlar la visibilidad y el estado de los campos y botones, y cómo usar una entidad singleton para gestionar configuraciones globales. Se enfatiza la reutilización de código y se muestra un ejemplo práctico de creación de una aplicación para gestionar datos de empleados.

Puedes ver la clase gratuita sobre este tema en nuestro canal de YouTube, donde podrás escuchar al docente hablar sobre este tema y las explicaciones que tiene para darte. Ver video aquí

Índice:

  1. Introducción
  2. Generación del Proyecto CAP
  3. Definición de Entidades y Servicios
  4. Anotaciones CDS y la UI
  5. Efectos Secundarios (Side Effects)
  6. Acciones (Actions)
  7. Expresiones Dinámicas (Dynamic Expressions)
  8. Entidad Singleton

Conceptos Clave:

  • CAP (Cloud Application Programming Model): Framework para crear servicios OData versión 4 optimizados para la conexión con SAP.
  • Efectos Secundarios (Side Effects): Actualizaciones en tiempo real de campos que se activan tras la modificación de otro campo.
  • Acciones (Actions): Funciones personalizadas que se pueden ejecutar en la interfaz de usuario, a menudo para activar efectos secundarios.
  • Expresiones Dinámicas (Dynamic Expressions): Condiciones que se evalúan en tiempo de ejecución para controlar la visibilidad, el estado (habilitado/deshabilitado, solo lectura) de campos y botones.
  • Entidad Singleton: Entidad que permite tener valores globales accesibles desde cualquier parte de la aplicación.
  • Value Helps: Listas de valores predefinidos que ayudan a los usuarios a seleccionar datos en un formulario.
  • CDS (Core Data Services): Lenguaje para definir modelos de datos y servicios en CAP.
  • Anotaciones CDS (CDS Annotations): Metadatos que se utilizan para configurar la interfaz de usuario y el comportamiento de la aplicación.
  • Reutilización de Código: Práctica de diseñar entidades y servicios de manera que puedan ser reutilizados en diferentes partes de la aplicación.
  • npm start: Comando para iniciar la ejecución del proyecto CAP en un entorno local.
  • CDS deploy: comando para implementar en base de datos.
  • Common.TextArrangement: anotación para determinar cómo mostrar los textos.
  • @Common.ValueList: anotación para crear listas de valores.
  • Core.OperationAvailable: anotación para bloquear/desbloquear botones.

saphana

  1. Introducción Webinar CAP: Conceptos Avanzados

Este webinar, presentado por Jorge Briseño del equipo de Logali Group, explora aspectos avanzados de CAP, incluyendo efectos secundarios, acciones, expresiones dinámicas, y la gestión de operaciones CRUD con una entidad singleton

saphana

Imagen1.1

saphana

Referencia de imagen: Why do we need Extensibility

  1. Generación del Proyecto CAP

Se inicia creando un proyecto CAP con el comando cds init. Se configuran las dependencias (@sap/cds, express, @sap/cds-dk, sqlite3) en el archivo package.json y se define un perfil de desarrollo en .cdsrc.json para usar una base de datos SQLite.

saphana

3. Definición de Entidades y Servicios

Se define una estructura base para la reutilización de código, creando un “aspecto” (reuse) que contiene entidades como documentType, genders, countries, nationalities, y status. Estas entidades sirven como “value helps” (listas de valores). Se crea una entidad principal person que hereda de este aspecto y contiene los datos del empleado. Finalmente, se define un servicio (employ) que expone estas entidades.

saphana

  1. Anotaciones CDS y la UI

Se utilizan anotaciones CDS para configurar la interfaz de usuario (list report page). Se definen etiquetas para los campos, se crea una tabla y un formulario (FieldGroup), y se configuran “value helps” para los campos documentType, gender, y placeOfBirth, usando @Common.ValueList y @Common.TextArrangement. Se habilita el modo borrador con @odata.draft.enabled

saphana

  1. Efectos Secundarios (Side Effects)

Se implementa un efecto secundario para actualizar la nacionalidad en tiempo real cuando se cambia el país de nacimiento. Se usa JavaScript (service.js) para capturar el evento de actualización (before(‘UPDATE’, …)) y realizar una consulta a la base de datos para obtener la nacionalidad correspondiente. La anotación @cds.on se usa con sourceProperty y targetProperty para disparar la actualización automática.

saphana

  1. Acciones (Actions)

Se crean acciones para activar e inactivar un usuario (activateUser, inactivateUser). Se utilizan DataFieldForAction para definir los botones en la tabla y se implementa la lógica en service.js. Se introduce el concepto de parámetro de referencia ($self) para mantener la referencia a la entidad dentro de la acción, y utilizar de igual manera el efecto secundario.

saphana

  1. Expresiones Dinámicas (Dynamic Expressions)

Se utilizan expresiones dinámicas para controlar la visibilidad y el estado de los campos y botones. Se usa @Common.FieldControl para bloquear campos (nationality, status) basándose en el valor de $env.isActiveEntity. Se usa @Core.OperationAvailable para bloquear/desbloquear los botones de acción (activateUser, inactivateUser) dependiendo del estado del usuario. Se explica la sintaxis de las expresiones edm.json, con operadores como if, or, equal.

cccc

saphana

Referencia de imagen: Adaptation – Custom Code Migration

  1. Entidad Singleton

Se crea una entidad singleton (configuration) para almacenar configuraciones globales, como un indicador de si el usuario actual es administrador (xAdmin). Se usa la anotación @odata.singleton. Se muestra cómo acceder a los valores de esta entidad desde las expresiones dinámicas para controlar la visibilidad de los botones “Crear” y “Editar”.

Conclusión:

El webinar proporciona una introducción sólida a varios conceptos avanzados de CAP. La combinación de explicaciones teóricas y ejemplos prácticos permite comprender cómo implementar funcionalidades complejas en aplicaciones CAP. La reutilización de código, el uso de efectos secundarios, acciones y expresiones dinámicas son herramientas poderosas para construir aplicaciones SAP Fiori robustas y fáciles de mantener. La gestión de configuraciones globales con entidades singleton añade una capa adicional de flexibilidad.

Recomendación de Curso:

Curso Recomendado: SAP CAP – Cloud Application Programming Model con NodeJS

Justificación: Este curso, tal como se describe en la página de Logali Group (Ver aquí) es el más relevante para profundizar en los temas tratados en el webinar. Cubre desde los fundamentos de CAP hasta temas avanzados como la creación de servicios OData, el uso de CDS, la implementación de lógica de negocio con JavaScript, y la creación de interfaces de usuario con SAP Fiori elements. El webinar actúa como una excelente introducción a los conceptos que se desarrollan en profundidad en este curso.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Wishlist 0
Continue Shopping