Launchpad y contenido

Semantic Object

Un semantic object en SAP Fiori es el nombre de una entidad de negocio, como PurchaseOrder o SalesOrder, que forma la primera mitad de un intent de navegación. Combinado con una acción, como en PurchaseOrder-display, el semantic object permite al launchpad encontrar un target mapping coincidente sin que la app que realiza la llamada sepa qué aplicación se abrirá.

Datos clave

Tipo
Metadatos de navegación (identificador de entidad de negocio)
Capa
Contenido, navegación y acceso
Se define en
/UI2/SEMOBJ_SAP (entregados por SAP) y /UI2/SEMOBJ (personalizados) en ABAP; inbounds del app descriptor en SAP BTP
Lo usan
Tiles, target mappings, inbounds y outbounds del app descriptor, smart links
Ejemplo
PurchaseOrder con las acciones display, manage y displayFactSheet
Quién trabaja con ello
Administradores del launchpad, desarrolladores SAP Fiori
Se aplica a
SAP S/4HANA (todas las opciones de implementación), SAP BTP
Capa: Contenido, navegación y accesoDónde se ubica ▾
Dónde se ubica: L2 · Contenido, navegación y accesoCapa: Contenido, navegación y acceso.L1L2L3L4L5L6BTP

Capa: Contenido, navegación y acceso

Abrir el mapa de arquitectura →
Qué ocurre cuando un usuario hace clic en un tile
Paso 1 de 4: El usuario abre el launchpadHighlighted: L1 · Punto de entrada y experiencia, L2 · Contenido, navegación y accesoL1L2L3L4L5L6BTP
  1. El usuario abre el SAP Fiori Launchpad. El launchpad carga los spaces, pages y tiles que le conceden sus business roles. Todavía no se ejecuta ningún código de aplicación.

    Relacionadas:SAP Fiori Launchpad · Business Role · Spaces y Pages

  2. El tile no contiene ninguna app. Dispara un intent —un semantic object más una acción, como PurchaseOrder-display— con parámetros opcionales.

    Relacionadas:Tile · Semantic Object · Navegación basada en intents

  3. El launchpad busca los target mappings en los catálogos de los roles del usuario y los filtra por tipo de dispositivo y por parámetros. Si nada coincide, el usuario ve un error de navegación.

    Relacionadas:Target Mapping · Catálogos (technical y business) · /UI2/FLIA

  4. El target mapping coincidente inicia el destino: una app SAPUI5 o SAP Fiori elements, una transacción de SAP GUI for HTML, una aplicación Web Dynpro ABAP o una URL.

    Relacionadas:Target Mapping · SAP Fiori Elements · SAP GUI for HTML (Web GUI)

¿Cómo funciona un semantic object?

Un semantic object es el sustantivo de la navegación de SAP Fiori; la acción es el verbo. Juntos forman un intent, que se escribe en la URL del launchpad como #SemanticObject-action, seguido opcionalmente de parámetros.

  1. Un tile, un enlace o una app solicita un intent, por ejemplo #PurchaseOrder-display?PurchaseOrder=4500000123.
  2. El launchpad busca target mappings con el mismo semantic object y la misma acción entre los catálogos de los roles del usuario.
  3. El target mapping coincidente decide qué app se abre.

Un semantic object suele tener muchas acciones. En la SAP Fiori Apps Reference Library, PurchaseOrder-display se resuelve en la transacción clásica ME23N mediante SAP GUI for HTML, PurchaseOrder-manage en la app Manage Purchase Orders y PurchaseOrder-displayFactSheet en un fact sheet de pedido de compra. La app que realiza la llamada solo indica el objeto de negocio y la operación prevista. Por tanto, un semantic object es un nombre estable para una entidad de negocio, independiente de la tecnología de UI que acabe gestionándola.

¿Dónde se definen los semantic objects?

  • Launchpad basado en ABAP (on-premise, Private Edition): SAP entrega semantic objects con los componentes de UI; la transacción /UI2/SEMOBJ_SAP los muestra. Los semantic objects personalizados se crean con /UI2/SEMOBJ o con la actividad de Customizing para semantic objects personalizados en SPRO (UI Technologies, SAP Fiori, contenido del launchpad). Una entrada personalizada con la misma clave que una entregada por SAP sobrescribe sus atributos.
  • SAP BTP y SAP Build Work Zone: cada app declara los semantic objects y acciones que acepta como inbounds en su app descriptor (sap.app → crossNavigation → inbounds), donde el semantic object y la acción son obligatorios. Los semantic objects proceden de estos descriptores y no de una transacción de mantenimiento ABAP.
  • SAP S/4HANA Cloud Public Edition: los semantic objects entregados por SAP se usan tal como se suministran. Para una app personalizada, el desarrollador define el tile, incluido su intent, como parte de la aplicación antes de desplegarla.

El semantic object se define una vez por landscape y después se referencia en todos los lugares donde la navegación lo necesita.

Los semantic objects impulsan algo más que los tiles. En SAP Fiori elements, un campo anotado con un semantic object (Common.SemanticObject en OData o CAP, @Consumption.semanticObject en ABAP CDS) se muestra como enlace cuando el semantic object es válido en el launchpad. Al hacer clic en él se listan todas las acciones a las que el usuario puede acceder para ese objeto; cuando solo existe un destino, la app navega directamente.

Las apps SAPUI5 freestyle usan el servicio de navegación del shell (sap.ushell.services.Navigation) para consultar qué enlaces existen para un semantic object y para navegar. En ambos casos, la lista de enlaces se calcula por usuario a partir de los target mappings de los roles de ese usuario, de modo que dos usuarios que hacen clic en el mismo campo de proveedor pueden ver opciones distintas.

Un semantic object en un campo es una solicitud de opciones de navegación, y los roles del usuario deciden qué opciones aparecen.

¿Cuándo conviene crear un semantic object personalizado?

Aplique este criterio de decisión: ¿la entidad ya existe como objeto de negocio de SAP?

  • Reutilice el semantic object de SAP cuando una app personalizada trabaja sobre la misma entidad, por ejemplo una app personalizada de aprobación de pedidos de compra en Alder Manufacturing. Reutilizar PurchaseOrder permite que la app personalizada aparezca en las mismas listas de enlaces que las apps estándar y reciba navegación desde ellas. Añada una acción distinta en lugar de un nuevo semantic object.
  • Cree un semantic object personalizado cuando la entidad no tenga equivalente en SAP, como una solicitud de utillaje personalizada que solo existe en la extensión de Alder Manufacturing. Siga las convenciones de nomenclatura acordadas para el landscape.
  • No cree uno por app. Un semantic object con el nombre de una app en lugar de una entidad fragmenta la navegación y oculta la app personalizada de los enlaces estándar.

Un semantic object personalizado se justifica por una nueva entidad de negocio, no por una nueva aplicación.

¿Cuáles son los errores habituales con los semantic objects?

  1. Diferencias de ortografía y de mayúsculas. SAP describe los target mappings como sensibles a mayúsculas y minúsculas, por lo que un tile que envía PurchaseOrder puede no resolverse contra un target mapping definido para Purchaseorder. Copie los semantic objects de la definición en lugar de escribirlos a mano.
  2. Esperar que un semantic object conceda acceso. Un semantic object no lleva ninguna autorización. El acceso procede de los catálogos de los roles del usuario, que contienen los target mappings para ese semantic object.
  3. Suponer que un enlace implica una app. Los smart links solo aparecen para destinos a los que el usuario puede acceder. Un enlace que aparece para un key user puede no aparecer para un administrativo, por diseño.
  4. Sobrescribir a la ligera semantic objects entregados por SAP. Una entrada personalizada con la misma clave cambia los atributos para todas las apps que usan el objeto.

Cuando la navegación de un semantic object se comporta de forma inesperada, ejecute /UI2/FLIA para el usuario y el intent afectados antes de cambiar ninguna definición. La mayoría de los problemas con semantic objects son problemas de nomenclatura o de roles, no de definición.

¿Qué diferencia hay entre un semantic object y un target mapping?

Semantic objectTarget mapping
Qué esNombre de una entidad de negocio usado en un intentRegla que resuelve un intent en una app
Dónde se define/UI2/SEMOBJ_SAP y /UI2/SEMOBJ en ABAP; app descriptor en SAP BTPTechnical catalogs en ABAP; inbounds del app descriptor en SAP BTP
¿Concede acceso?NoIndirectamente, a través de los catálogos de los roles del usuario
Cuántos por entidadUn semantic object, muchas accionesUno o más por semantic object y acción
Fallo típicoMal escrito o no definido, por lo que ningún intent coincideAusente de los catálogos del usuario o las reglas no coinciden

El semantic object nombra aquello sobre lo que el usuario quiere trabajar; el target mapping decide qué app realiza el trabajo.

Preguntas frecuentes

¿Un semantic object es lo mismo que un business object del back-end?

No. Un semantic object es un nombre de navegación que usa el SAP Fiori Launchpad. A menudo coincide con un business object del back-end, como un pedido de compra, pero no contiene datos, lógica ni autorizaciones. Solo identifica la entidad en un intent.

¿Un mismo semantic object puede abrir apps distintas?

Sí. Cada acción del semantic object puede resolverse en una app distinta, y el mismo semantic object y la misma acción pueden resolverse en apps distintas según el rol o el tipo de dispositivo, en función de qué target mappings contengan los catálogos del usuario.

¿Cómo averiguo qué semantic objects usa una app SAP Fiori?

La SAP Fiori Apps Reference Library muestra los intents de cada app, por ejemplo PurchaseOrder-display para la transacción ME23N. En un sistema ABAP, /UI2/FLIA muestra los intents disponibles para un usuario determinado, junto con sus catálogos y target mappings.

¿Necesito un semantic object personalizado para una app SAPUI5 personalizada?

Solo cuando la app trabaja sobre una entidad que SAP no modela. Si la app gestiona una entidad estándar, como un pedido de compra, reutilice el semantic object de SAP con su propia acción, para que la app personalizada participe en la navegación estándar.

¿Un semantic object controla quién puede abrir una app?

No. Un semantic object es solo un nombre. Quién puede abrir una app depende de los business catalogs de los roles del usuario, que contienen los target mappings para ese semantic object, y de las autorizaciones que la app comprueba en tiempo de ejecució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

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.