Object Page
Una object page es un floorplan de SAP Fiori elements que muestra, edita y crea un único business object. Se compone de una cabecera con los datos clave, una barra de navegación y secciones de contenido que el framework genera a partir de anotaciones OData como UI.HeaderInfo y UI.Facets. Normalmente se accede a una object page desde un list report y admite la gestión de draft.
Datos clave
- Tipo
- Floorplan de SAP Fiori elements (plantilla de página)
- Capa
- Aplicaciones de UI
- Basada en
- UI.HeaderInfo, UI.HeaderFacets, UI.Facets, field groups y line items
- Se configura en
- Anotaciones de UI (CDS o XML) más ajustes de página en manifest.json
- Combinación típica
- List report (el patrón LROP); subobject pages para las posiciones
- Quién trabaja con ello
- Desarrolladores SAP Fiori, desarrolladores ABAP y CAP, diseñadores UX
- Se aplica a
- SAP S/4HANA (todas las opciones de implementación), SAP BTP
Capa: Aplicaciones de UIDónde se ubica ▾
Capa: Aplicaciones de UI
Abrir el mapa de arquitectura →¿Cuándo conviene usar una object page?
Una object page encaja siempre que la tarea gira en torno a un único business object: modificar un pedido de cliente y sus posiciones, crear un pedido de compra como draft, liberar una factura bloqueada o comparar un draft con la versión guardada. El floorplan sirve tanto para unos pocos campos como para objetos complejos con muchas secciones y tablas relacionadas.
Dos criterios ayudan a decidir:
- Si los usuarios necesitan contexto primero, como el estado del objeto, sus cifras clave y los elementos relacionados, encaja la object page estándar.
- Si los usuarios solo introducen datos y no necesitan cabecera ni navegación entre secciones, la form entry object page, una variante que oculta ambas, es más ligera.
Ejemplo: un comprador de Alder Manufacturing abre un pedido de compra para Bright Freight, revisa los datos de la cabecera y luego edita dos posiciones. Una object page encaja cuando la pregunta es "¿qué pasa con este objeto concreto?"
¿Qué partes tiene una object page?
Una object page se compone de cinco áreas, de arriba abajo:
- Título de cabecera: el título y el subtítulo del objeto, una imagen opcional, el estado de edición cuando existe un draft y una barra de herramientas con acciones como Edit, Delete, Related Apps y Share.
- Facets de cabecera: datos clave como pares etiqueta-valor o pequeños elementos visuales, como un micro chart o una valoración. SAP recomienda un máximo de cinco pares etiqueta-valor.
- Barra de navegación: anclas que saltan a cada sección dentro de una única página con desplazamiento, o pestañas que muestran una sección cada vez.
- Área de contenido: secciones y subsecciones con formularios, tablas de elementos relacionados, gráficos o componentes reutilizables.
- Barra de herramientas del pie: en modo de edición, Save o Create, las acciones determinantes y el botón de mensajes.
Al elegir una fila en una tabla de posiciones se abre una subobject page para la entidad hija, con botones de paginación para pasar de una posición a otra. Cada área de una object page responde a una pregunta: qué es esto, qué importa, dónde está y cómo termino.
¿Qué anotaciones definen una object page?
| Anotación | Qué define |
|---|---|
| UI.HeaderInfo | Título, descripción, imagen y nombre del tipo de objeto |
| UI.HeaderFacets | Facets de cabecera, como reference facets a data points, field groups o gráficos |
| UI.Facets | Secciones y subsecciones: los collection facets agrupan, los reference facets apuntan al contenido |
| UI.FieldGroup, UI.Identification | Formularios dentro de las secciones |
| UI.LineItem de la entidad de posición | Tablas de elementos relacionados |
| UI.Hidden en un facet | Mostrar u ocultar una sección de forma dinámica |
En ABAP CDS, todos estos facets se escriben como entradas @UI.facet con un tipo, como una referencia a un field group o una colección, y un propósito que distingue los facets de cabecera de las secciones estándar. Solo se representan dos niveles de collection facets. La elección entre anclas y pestañas es un ajuste de manifest.json, sectionLayout, con Page como valor predeterminado en OData V4. Por tanto, la estructura de la object page se define casi por completo en UI.Facets.
¿Cómo funcionan los drafts y la edición en una object page?
Con un servicio habilitado para draft, la object page crea un draft en cuanto un usuario empieza a editar o crear. El draft se guarda en segundo plano mientras el usuario trabaja, lo que da lugar a cuatro comportamientos:
- el trabajo no guardado sobrevive a una interrupción o a un fallo, y el usuario puede retomarlo más tarde;
- el draft actúa como bloqueo, de modo que otros usuarios ven que el objeto se está editando;
- las validaciones y el control de campos se ejecutan durante la edición, no solo al final;
- Save convierte el draft en la versión activa.
SAP Fiori elements para OData V4 distingue los drafts exclusivos, propiedad de un usuario, de los drafts colaborativos que varios usuarios pueden editar juntos; SAP documenta los drafts colaborativos solo para servicios basados en RAP. Tanto RAP como CAP proporcionan la gestión de draft en el lado del servicio. Sin draft, nada llega al back-end hasta que el usuario guarda, y SAP recomienda aplicaciones sin draft solo para flujos sencillos. El soporte de draft es la decisión de servicio que más determina cómo se percibe la edición en una object page.
¿Se puede extender una object page?
Sí. Las opciones dependen de quién es el propietario de la aplicación:
- Su propia aplicación: los puntos de extensión añaden secciones y subsecciones personalizadas, facets de cabecera, elementos de formulario, acciones y columnas de tabla; se pueden colocar componentes reutilizables en las secciones; con OData V4, los building blocks y las custom pages del flexible programming model cubren carencias mayores.
- Una aplicación entregada por SAP: adaptation projects (SAP Fiori tools) o adaptación key user, sin modificar el código de SAP.
En SAP S/4HANA Cloud Public Edition, las vías disponibles siguen los modelos de extensibilidad de SAP para esa edición; consulte la documentación de extensibilidad de su release.
Las secciones personalizadas tienen un coste de rendimiento. OData V4 ofrece request groups y carga diferida (lazy loading) para las object pages; en OData V2, la carga diferida debe activarse para cada sección personalizada. Una prueba práctica: si la mayoría de las secciones son personalizadas, una custom page o SAPUI5 freestyle puede ser más honesto que una object page muy extendida.
¿Cuáles son los errores de diseño más comunes en una object page?
- Demasiadas secciones en una única página con desplazamiento. Agrupe secciones o cambie a pestañas, que SAP recomienda para las grid tables.
- Cabeceras sobrecargadas. Más de unos pocos datos de cabecera convierten la cabecera en un segundo formulario.
- Anidamiento profundo de facets. Los collection facets por debajo del segundo nivel se ignoran, y un collection facet que envuelve un único reference facet puede representarse mal; use directamente el reference facet.
- Comas en los títulos de sección. SAP Fiori elements usa las comas como delimitadores al agrupar mensajes, así que evítelas en los títulos de secciones y subsecciones.
- Editar sin draft. Los usuarios pierden la posibilidad de retomar el trabajo y la información de bloqueo.
Cuando falta una sección, compruebe en este orden: la anotación UI.Facets en los metadatos del servicio, el nivel del facet, su target qualifier, cualquier condición UI.Hidden y un archivo de anotaciones local que pueda sustituir el UI.Facets del back-end. La mayoría de los defectos de una object page son problemas de estructura de facets, no errores de representación.
¿En qué se diferencian una object page y un fact sheet?
| Fact sheet | Object page | |
|---|---|---|
| Qué es | Tipo original de aplicación SAP Fiori que muestra información contextual sobre un business object | Floorplan de SAP Fiori elements para mostrar, editar y crear un objeto |
| Tecnología | SAP Business Suite: search models en el back-end ABAP sobre SAP HANA; en SAP S/4HANA, a menudo aplicaciones SAP Fiori elements | Páginas SAPUI5 generadas a partir de un servicio OData, anotaciones y el app descriptor |
| Acceso típico | Resultados de búsqueda en el launchpad, otros fact sheets, aplicaciones transaccionales o analíticas | Un list report u otra aplicación, mediante navegación basada en intents |
| Edición | Orientado a la visualización; los cambios se hacen en las aplicaciones transaccionales o transacciones vinculadas | Edición y creación en la propia página, con soporte de draft |
| En SAP S/4HANA | En gran parte sustituido; algunos fact sheets se declararon obsoletos o se reemplazaron | Floorplan estándar para aplicaciones de SAP S/4HANA y SAP BTP |
La SAP Fiori Apps Reference Library agrupa ambos bajo un mismo tipo de aplicación, pero una object page es un floorplan del framework, mientras que un fact sheet era una tecnología heredada independiente.
Preguntas frecuentes
¿Una object page es lo mismo que un fact sheet?
No. Los fact sheets eran uno de los tres tipos originales de aplicación SAP Fiori, construidos sobre search models y centrados en mostrar información contextual. Una object page es un floorplan de SAP Fiori elements que además edita y crea objetos. En SAP S/4HANA, las object pages asumieron en gran parte el papel de los fact sheets.
¿Puede una object page crear un nuevo business object?
Sí. Una acción Create en el list report suele abrir una object page vacía en modo de creación, y la creación mediante diálogo es una alternativa para objetos sencillos. Una form entry object page puede iniciar la aplicación directamente en modo de creación, sin list report.
¿Puede una object page mostrar pestañas en lugar de una página larga?
Sí. En SAP Fiori elements para OData V4, el ajuste sectionLayout del manifest cambia de Page, donde todas las secciones se desplazan en una única página, a Tabs, donde cada sección de primer nivel tiene su propia pestaña. Para aplicaciones OData V2, consulte en la documentación de V2 el ajuste equivalente.
¿Qué es una subobject page en SAP Fiori elements?
Una subobject page es una object page para una entidad hija, como una posición de pedido de compra, que se abre al elegir una fila de una tabla en la object page padre. Usa el mismo floorplan y las mismas anotaciones y ofrece botones de paginación para pasar de una posición a otra de la lista.
¿Necesita una object page un servicio habilitado para draft?
No, pero la mayoría de las aplicaciones SAP Fiori elements editables lo usan. Sin draft, una object page envía los cambios solo al guardar y no puede mostrar que otro usuario está editando el objeto. Con draft, el trabajo se guarda en segundo plano y puede retomarse más tarde.
Fuentes
- SAPUI5 SDK: Object Page (SAP Fiori elements for OData V4)
- SAPUI5 SDK: Defining and Configuring Sections (OData V4)
- SAP Help Portal: Fact sheets based on search models (SAP Fiori for SAP Business Suite)
- SAPUI5 SDK: Draft Handling (OData V4)
- SAP Help Portal: SAP Fiori application types (transactional apps, analytical apps, fact sheets)
- 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