List Report
Un list report es un floorplan de SAP Fiori elements para encontrar, filtrar y procesar grandes conjuntos de business objects, compuesto por una barra de filtros, la gestión de variantes y una tabla o un gráfico que el framework genera a partir de anotaciones OData. Un list report suele ser la página de entrada de una app y pasa cada objeto a una object page.
Datos clave
- Tipo
- Floorplan de SAP Fiori elements (plantilla de página)
- Capa
- Aplicaciones de UI
- Controlado por
- UI.SelectionFields, UI.LineItem, selection variants y presentation variants
- Se configura en
- Anotaciones de UI (CDS o XML) más ajustes de página en manifest.json
- Combinación típica
- Object page (el patrón LROP)
- Quién trabaja con ello
- Desarrolladores SAP Fiori, desarrolladores ABAP y CAP, diseñadores de UX, usuarios finales (variantes)
- 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 un list report?
Un list report es adecuado cuando los usuarios parten de un conjunto grande y abierto de business objects y deben acotarlo antes de poder trabajar: revisar los pedidos pendientes de entrega, procesar un conjunto de pedidos de compra, detectar documentos con bloqueo de pago o repetir una selección de cierre de mes mediante una variante guardada.
El criterio de decisión es la forma de la búsqueda. Si los usuarios combinan varios criterios de filtro antes de que la lista tenga sentido, encaja un list report. Si los elementos ya se conocen y son pocos, un worklist es más ligero. Si los usuarios deben analizar con gráficos antes de actuar, la analytical list page encaja mejor.
Ejemplo: los compradores de Alder Manufacturing filtran los pedidos de compra por proveedor y fecha de entrega para encontrar los pedidos retrasados de Cedar Office Supply y, después, abren cada uno en su object page. Un list report es la elección correcta cuando filtrar es el primer paso de la tarea.
¿Cuáles son las partes de un list report?
Una página de list report se compone de partes estándar, de arriba abajo:
- Título y gestión de variantes: un control de vistas en el que los usuarios guardan valores de filtro, orden de clasificación y columnas.
- Barra de herramientas de la cabecera: acciones genéricas de la página, incluido un menú Share.
- Barra de filtros: los campos de UI.SelectionFields más todos los campos de filtro obligatorios. La búsqueda se ejecuta cuando el usuario elige Go, salvo que esté configurado el modo en vivo.
- Área de contenido: una tabla, un gráfico o ambos, opcionalmente como varias vistas que se alternan con un botón segmentado o con pestañas.
- Navegación: elegir una fila abre la object page, opcionalmente en paralelo en el flexible column layout.
Con un servicio con draft habilitado, el framework añade un filtro Editing Status y muestra qué filas tienen un draft o están bloqueadas por otro usuario. Todas las partes de un list report se generan a partir de metadatos, por lo que los list reports se comportan de forma similar en todas las apps.
¿Qué anotaciones controlan un list report?
| Anotación | Qué controla |
|---|---|
| UI.SelectionFields | Los campos por defecto de la barra de filtros |
| UI.LineItem | Las columnas de la tabla, su orden y las acciones por fila |
| UI.HeaderInfo | Los nombres del tipo de objeto; en OData V2, TypeNamePlural fija la cabecera de la tabla, que OData V4 también puede fijar en manifest.json |
| UI.SelectionVariant | Selecciones de datos predefinidas, usadas para definir varias vistas |
| UI.SelectionPresentationVariant, UI.PresentationVariant | Vistas que además definen el orden de clasificación o la visualización |
| UI.Chart | Un gráfico en el área de contenido |
| Vocabulario Capabilities | Si el servicio admite filtrado; sin él, no se muestra ninguna barra de filtros |
En ABAP CDS, las dos primeras aparecen como @UI.selectionField y @UI.lineItem en cada elemento; CAP usa los nombres de término de OData. El comportamiento de la página, como la carga inicial, la edición masiva, las vistas y el tipo de tabla, se configura en manifest.json. Las anotaciones deciden qué muestra un list report; el app descriptor decide cómo se comporta el list report.
¿Cómo se controlan la carga inicial y la edición masiva en un list report?
Carga inicial. Cuando la app se inicia con un contexto de navegación, como parámetros procedentes de otra app o del target mapping, los datos se cargan de inmediato. En caso contrario, decide la variante por defecto del usuario mediante su ajuste Apply Automatically; solo la variante Standard sigue lo indicado en manifest.json:
| Comportamiento | OData V4: initialLoad | OData V2: loadDataOnAppLaunch |
|---|---|---|
| Cargar solo si existen valores de filtro por defecto | Auto (por defecto) | ifAnyFilterExist (por defecto) |
| Cargar siempre | Enabled | always |
| Esperar a Go | Disabled | never |
Los usuarios pueden sobrescribir el ajuste por vista. SAP recomienda valores de filtro por defecto para que la página no se abra vacía.
La edición masiva está desactivada hasta que un desarrollador la habilita. En OData V4, enableMassEdit funciona en el list report (para registros activos sin un draft pendiente) y en la object page en modo de edición; visibleFields o ignoredFields limitan el diálogo. En OData V2, multiEdit funciona solo en el list report, para tablas responsive y grid. Ambos comportamientos del list report son decisiones de configuración deliberadas, no valores por defecto que aceptar sin examinarlos.
¿Se puede extender un list report?
Sí, y las opciones dependen de quién sea el propietario de la app:
- App propia, OData V4: los extension points añaden columnas, acciones y campos de filtro personalizados, contenido de cabecera sobre la barra de filtros y vistas personalizadas como pestañas adicionales; los building blocks y las custom pages del flexible programming model cubren carencias mayores.
- App propia, OData V2: las extensiones registradas en manifest.json cubren áreas comparables, como columnas, acciones y filtros.
- Una app 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, compruebe cuáles de estas vías admite SAP para la app y el release. Prueba de decisión: si se necesita código propio más allá de unas pocas columnas, acciones o filtros, reconsidere la elección del floorplan. Extender un list report es barato en los márgenes y caro en el núcleo.
¿Cuáles son los errores de diseño habituales en un list report?
- Cargar todo al iniciar. Cargar siempre un entity set muy grande hace lento cada arranque; los valores de filtro por defecto son la mejor palanca.
- Abrir con una tabla vacía sin explicación. Cuando los usuarios notifican "no hay datos", compruebe por este orden: el contexto de navegación, la variante por defecto y su indicador Apply Automatically, el ajuste del manifest y, después, los filtros obligatorios (en OData V2, un filtro obligatorio vacío bloquea la carga inicial).
- Sobrecargar la barra de filtros. Veinte campos de selección ocultan los tres que importan.
- Confundir variantes y vistas. Las variantes las guardan los usuarios; las vistas múltiples son pestañas definidas por los desarrolladores.
- Habilitar la edición masiva para todos los campos. Limite el diálogo a un field group que sea seguro modificar en bloque.
- Usar un list report para una cola de trabajo. Un conjunto breve y conocido de tareas encaja mejor en un worklist.
La mayoría de los problemas de un list report son problemas de configuración y de diseño de la selección, más que defectos del framework.
List report vs. worklist vs. analytical list page: ¿cuál es la diferencia?
| List report | Worklist | Analytical list page | |
|---|---|---|---|
| Tarea principal | Encontrar objetos en un conjunto grande y actuar sobre ellos | Procesar un conjunto conocido de elementos de trabajo | Analizar datos y luego actuar sobre los elementos |
| Filtrado | Barra de filtros completa con variantes | Poco o ningún filtrado, a menudo pestañas por estado | Filtros visuales y una barra de filtros compacta |
| Visualización principal | Tabla, opcionalmente un gráfico | Tabla | Gráfico y tabla juntos |
| En SAP Fiori elements para OData V4 | Floorplan propio | Configuración del list report | Configuración del list report |
Los tres patrones comparten tecnología pero responden a preguntas distintas: qué encontrar, qué procesar y qué analizar.
Preguntas frecuentes
¿Qué significa LROP en SAP Fiori?
LROP son las siglas de list report object page, el patrón de app más habitual de SAP Fiori elements. Un list report permite a los usuarios encontrar business objects, y una object page muestra, edita o crea uno de ellos. Ambos floorplans se configuran en la misma app y se conectan mediante navegación.
¿Por qué mi list report de SAP Fiori se abre con la tabla vacía?
En la mayoría de los casos, el list report está esperando a que el usuario elija Go. El ajuste de carga inicial (initialLoad en OData V4, loadDataOnAppLaunch en OData V2), el indicador Apply Automatically de la variante por defecto del usuario y la falta de valores de filtro por defecto u obligatorios deciden si los datos se cargan al iniciar.
¿Pueden los usuarios guardar sus propios ajustes de filtro en un list report?
Sí. La gestión de variantes de un list report permite a los usuarios guardar valores de filtro, orden de clasificación y columnas como vistas con nombre, marcar una como predeterminada y decidir si carga datos automáticamente. Las vistas pueden ser privadas o públicas; por defecto, cualquier usuario puede hacer pública una vista, y un ajuste de SAPUI5 flexibility puede restringirlo a los key users.
¿Admite un list report la edición de varios registros a la vez?
Sí, cuando los desarrolladores habilitan la edición masiva. En SAP Fiori elements para OData V4 el ajuste es enableMassEdit; en OData V2 es multiEdit. Los usuarios seleccionan filas, abren un diálogo y fijan nuevos valores que se aplican a cada registro seleccionado que se pueda modificar.
¿Necesita un list report un servicio con draft habilitado?
No. Un list report funciona con servicios con draft habilitado y sin draft. Con draft, SAP Fiori elements añade un filtro Editing Status y muestra en la tabla qué objetos tienen cambios no guardados o están bloqueados por otro usuario.
Fuentes
- SAPUI5 SDK: List Report Page (SAP Fiori elements for OData V4)
- SAPUI5 SDK: Loading Behavior of Data on Initial Launch of the Application (OData V4)
- SAPUI5 SDK: Loading Behavior of Data on Initial Launch of the Application (OData V2)
- SAPUI5 SDK: Enabling Editing Using a Dialog (Mass Edit) (OData V4)
- SAPUI5 SDK: Configuring Filter Bars (OData V4)
- 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