SAP Fiori Elements y floorplans

Anotaciones de UI

Las anotaciones de UI son términos de metadatos del vocabulario OData UI de SAP, como UI.LineItem, UI.SelectionFields y UI.HeaderInfo, que describen cómo deben presentarse los datos: qué columnas muestra una tabla, qué campos aparecen en la barra de filtros y qué muestra la cabecera de una object page. SAP Fiori elements las lee en tiempo de ejecución y genera la página en consecuencia.

Datos clave

Tipo
Anotaciones de vocabulario OData (vocabulario UI de SAP)
Capa
Servicios y API; se definen en el modelo de datos y las consume la UI
Dónde se definen
ABAP CDS (preferiblemente metadata extensions), archivos CDS de CAP o archivos de anotaciones XML locales en la aplicación
Las consume
SAP Fiori elements para OData V2 y V4
Herramientas
ABAP Development Tools; SAP Fiori tools en VS Code o SAP Business Application Studio
Quién trabaja con ello
Desarrolladores ABAP y CAP, desarrolladores SAP Fiori
Se aplica a
SAP S/4HANA (todas las opciones de implementación), SAP BTP
Capa: Servicios y APIDónde se ubica ▾
Dónde se ubica: L4 · Servicios y APICapa: Servicios y API. También abarca: Lógica de negocio y modelo de datos, Aplicaciones de UI.L1L2L3L4L5L6BTP

Capa: Servicios y API

También abarca: Lógica de negocio y modelo de datos, Aplicaciones de UI

Abrir el mapa de arquitectura →

¿Cómo funcionan las anotaciones de UI?

Las anotaciones de UI viajan del modelo de datos a la pantalla en cuatro pasos:

  1. Un desarrollador anota entidades y campos en el modelo del back-end: ABAP CDS en SAP S/4HANA o en el entorno ABAP de SAP BTP, o archivos CDS en un proyecto CAP.
  2. Cuando el modelo se expone como servicio OData, el back-end traduce esas anotaciones a términos del vocabulario OData en XML, que se entregan con los metadatos del servicio o como un documento de anotaciones independiente.
  3. La aplicación SAP Fiori elements carga los metadatos del servicio y las fuentes de anotaciones adicionales declaradas en su app descriptor (manifest.json).
  4. Las plantillas de floorplan, como el list report y la object page, leen los términos y construyen la página: las columnas de tabla a partir de UI.LineItem, los campos de filtro a partir de UI.SelectionFields y el título de la object page a partir de UI.HeaderInfo.

SAP describe el vocabulario UI como relativo a cómo se usan los datos en una interfaz de usuario, no a controles de UI concretos, y por eso la misma anotación puede definir una tabla de escritorio y una lista en un teléfono. Por tanto, las anotaciones de UI son un contrato entre el servicio y la plantilla, no código que la aplicación ejecuta.

¿Qué anotaciones de UI son las más importantes?

Término ODataQué controlaNotación en ABAP CDS
UI.LineItemColumnas de una tabla o lista@UI.lineItem en cada elemento, con una posición
UI.SelectionFieldsCampos que se muestran por defecto en la barra de filtros@UI.selectionField en cada elemento
UI.HeaderInfoNombre del tipo de objeto y título en la cabecera de la object page@UI.headerInfo en la entidad
UI.FacetsSecciones de la object page@UI.facet
UI.Identification, UI.FieldGroupGrupos de campos que se muestran en las secciones de la object page@UI.identification, @UI.fieldGroup
Common.Label, Common.TextEtiquetas de campo y textos descriptivos@EndUserText.label, @ObjectModel.text.element

Dos detalles ahorran tiempo. ABAP CDS usa una notación a nivel de elemento que la exposición del servicio convierte en el término OData a nivel de entidad. Además, un mismo término puede existir varias veces con distintos qualifiers, por ejemplo dos line items para dos tablas. Conocer estas seis familias cubre la mayor parte de lo que un list report y una object page necesitan de las anotaciones de UI.

¿Dónde se definen las anotaciones de UI?

  • ABAP CDS (RAP y su modelo predecesor): las anotaciones de UI pueden estar en la data definition o en una metadata extension. SAP recomienda las metadata extensions, que mantienen legible el modelo de datos y permiten que los metadatos de UI evolucionen por separado.
  • CAP: las anotaciones se escriben en CDS con annotate ... with @(...), usando directamente los nombres de los términos OData; CAP recomienda archivos .cds separados en las carpetas de la aplicación, aparte de la definición del servicio.
  • Archivo de anotaciones local: un archivo XML dentro de la aplicación SAP Fiori, registrado como fuente de anotaciones adicional en manifest.json.
  • Servicios SAP Gateway más antiguos (OData V2): anotaciones modeladas en el repositorio de vocabularios del Service Builder (SEGW) o proporcionadas por una clase annotation provider registrada con /IWBEP/REG_VOCAN.

Cuando el mismo término existe en un archivo local y en el back-end, la definición local sustituye a la del back-end término por término. La recomendación de SAP es mantener las anotaciones de UI en el back-end, junto al modelo de datos y con su mismo ciclo de vida, y usar archivos locales cuando no hay acceso al back-end o una sola aplicación necesita una sobrescritura.

¿Por qué mis anotaciones de UI no aparecen en la aplicación?

Trabaje desde el servicio hacia fuera antes de tocar la UI:

  1. Compruebe los metadatos del servicio. Abra el documento de metadatos o de anotaciones del servicio y busque el término. Si no está, el problema está en el back-end.
  2. Compruebe el tipo de service binding (RAP). Un binding de la categoría Web API no incluye metadatos específicos de UI. Una aplicación Fiori elements necesita un binding de UI.
  3. Compruebe la metadata extension. La entidad debe permitir extensiones con @Metadata.allowExtensions: true, y la extensión debe estar activa.
  4. Compruebe si hay una sobrescritura local. Un UI.LineItem en un archivo de anotaciones local sustituye todo el UI.LineItem del back-end, de modo que una columna añadida en CDS nunca aparece.
  5. Compruebe los qualifiers. Una anotación con qualifier solo se usa donde se hace referencia a ese qualifier.
  6. Vacíe las cachés. Las cachés de metadatos de Gateway y el navegador pueden servir metadatos antiguos. Ejecute /IWFND/CACHE_CLEANUP en el hub de SAP Gateway y /IWBEP/CACHE_CLEANUP en el back-end (ambas en un sistema embedded) y, después, vuelva a cargar la aplicación.

La mayoría de las anotaciones de UI que no aparecen se deben a problemas de exposición o de precedencia, no a errores de sintaxis.

¿Dónde llegan a su límite las anotaciones de UI?

Las anotaciones de UI son la razón por la que las aplicaciones SAP Fiori elements pueden construirse rápido y tener un aspecto coherente: el diseño sigue las directrices de diseño de SAP Fiori, la accesibilidad y el diseño adaptable vienen con la plantilla, y la aplicación se mantiene estable en las actualizaciones de SAPUI5 porque contiene poco código.

El mismo diseño marca los límites:

  • Solo lo que la plantilla admite. Las anotaciones seleccionan y organizan; no pueden inventar un diseño que el floorplan no ofrece. Todo lo que vaya más allá necesita puntos de extensión o SAPUI5 freestyle.
  • Presentación, no comportamiento. Las validaciones, las acciones y la lógica de autorización residen en RAP o CAP; una anotación puede mostrar un botón, no implementarlo.
  • Repartidas entre capas. Los archivos del back-end, las metadata extensions y los archivos locales se combinan en tiempo de ejecución, lo que dificulta revisar el resultado final.
  • Riesgo de desalineación. Las anotaciones locales dejan de funcionar sin avisar cuando se cambia el nombre de una propiedad en el back-end.

Las anotaciones de UI funcionan mejor cuando el equipo las trata como parte del modelo de datos y las revisa junto con él.

¿En qué se diferencian las anotaciones de UI en ABAP CDS, en CAP CDS y en un archivo de anotaciones local?

ABAP CDS (RAP)CAP CDSArchivo de anotaciones local
Dónde se escribenData definition o metadata extension en el sistema ABAPArchivos CDS en el proyecto CAPArchivo XML dentro de la aplicación SAP Fiori
NotaciónAnotaciones @UI, en parte a nivel de elemento (p. ej., @UI.lineItem)Nombres de términos OData (p. ej., UI.LineItem)XML de OData (Annotation Term="UI.LineItem")
Ciclo de vidaSe transporta con el modelo de datosSe despliega con el servicio CAPSe despliega con la aplicación de UI
PrecedenciaLos archivos locales la sobrescriben término por términoLos archivos locales la sobrescriben término por términoPrevalece en los términos que define
Ideal paraMetadatos de UI reutilizables para SAP S/4HANA y servicios ABAPServicios y aplicaciones construidos en SAP BTPSobrescrituras para una sola aplicación o sin acceso al back-end

Las tres producen los mismos términos OData; la elección determina quién es el propietario de los metadatos de UI y hasta qué punto se reutilizan.

Preguntas frecuentes

¿Las anotaciones de UI son lo mismo que las anotaciones CDS?

No. Las anotaciones CDS son una familia amplia que también abarca los ajustes del catálogo ABAP, el control de acceso, el análisis y la exposición OData. Las anotaciones de UI son el subconjunto que describe la presentación para SAP Fiori elements, escritas como anotaciones @UI en ABAP CDS o como términos del vocabulario UI en CAP y XML.

¿Las anotaciones locales sobrescriben las anotaciones del back-end?

Sí, término por término. Si un archivo de anotaciones local define UI.LineItem para una entidad, esa definición sustituye por completo el UI.LineItem del back-end, mientras que los términos del back-end que el archivo local no define siguen vigentes.

¿Qué herramientas ayudan a escribir anotaciones de UI?

SAP Fiori tools en Visual Studio Code y SAP Business Application Studio ofrece el Page Map, Guided Development y editores de anotaciones para archivos CAP CDS y XML. Para ABAP CDS, Guided Development ayuda a generar las anotaciones y ABAP Development Tools las valida.

¿Se pueden añadir anotaciones de UI a una aplicación SAP Fiori elements entregada por SAP?

Sí, mediante un adaptation project cuando la aplicación está habilitada para ello. El adaptation project puede añadir archivos de anotaciones locales sin modificar la aplicación entregada por SAP ni su servicio de back-end.

¿Las anotaciones de UI funcionan tanto con OData V2 como con OData V4?

Sí. SAP Fiori elements existe para OData V2 y OData V4, y ambos leen anotaciones de UI, pero los términos y las funciones admitidos difieren entre las dos variantes, así que consulte la documentación de la versión de OData que usa la aplicación.

Fuentes

Se aplica a
SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition · SAP BTP
Última revisión

Para profundizar

SAP, SAP Fiori, SAPUI5, SAP S/4HANA, SAP BTP y los demás productos y servicios de SAP mencionados son marcas comerciales o marcas registradas de SAP SE (o de una empresa afiliada de SAP) en Alemania y otros países. Esta guía es independiente y no está afiliada, patrocinada ni respaldada por SAP SE.