Launchpad et contenu

Semantic Object

Un semantic object dans SAP Fiori est le nom d'une entité métier, comme PurchaseOrder ou SalesOrder, qui constitue la première moitié d'un intent de navigation. Combiné à une action, comme dans PurchaseOrder-display, le semantic object permet au launchpad de trouver un target mapping correspondant sans que l'application appelante sache quelle application va s'ouvrir.

L'essentiel

Type
Métadonnées de navigation (identifiant d'entité métier)
Couche
Contenu, navigation et accès
Défini dans
/UI2/SEMOBJ_SAP (livrés par SAP) et /UI2/SEMOBJ (spécifiques) sur ABAP ; inbounds de l'app descriptor sur SAP BTP
Utilisé par
Tiles, target mappings, inbounds et outbounds de l'app descriptor, smart links
Exemple
PurchaseOrder avec les actions display, manage et displayFactSheet
Qui l'utilise
Administrateurs du launchpad, développeurs SAP Fiori
S'applique à
SAP S/4HANA (toutes les options de déploiement), SAP BTP
Couche : Contenu, navigation et accèsOù se situe-t-il ? ▾
Où se situe-t-il ?: L2 · Contenu, navigation et accèsCouche : Contenu, navigation et accès.L1L2L3L4L5L6BTP

Couche : Contenu, navigation et accès

Ouvrir la carte d'architecture →
Ce qui se passe lorsqu'un utilisateur clique sur une tile
Étape 1 sur 4: L'utilisateur ouvre le launchpadHighlighted: L1 · Point d'entrée et expérience, L2 · Contenu, navigation et accèsL1L2L3L4L5L6BTP
  1. L'utilisateur ouvre le SAP Fiori Launchpad. Le launchpad charge les spaces, les pages et les tiles accordés par les business roles de l'utilisateur. Aucun code applicatif ne s'exécute encore.

    Associés :SAP Fiori Launchpad · Business Role · Spaces et pages

  2. La tile ne contient pas d'application. Elle déclenche un intent — un semantic object associé à une action, par exemple PurchaseOrder-display — avec des paramètres facultatifs.

    Associés :Tile · Semantic Object · Navigation basée sur les intents

  3. Le launchpad recherche les target mappings dans les catalogues des rôles de l'utilisateur et les filtre par type d'appareil et par paramètres. Si rien ne correspond, l'utilisateur voit une erreur de navigation.

    Associés :Target Mapping · Catalogues (technical et business) · /UI2/FLIA

  4. Le target mapping correspondant lance la cible : une application SAPUI5 ou SAP Fiori elements, une transaction SAP GUI for HTML, une application Web Dynpro ABAP ou une URL.

    Associés :Target Mapping · SAP Fiori Elements · SAP GUI for HTML (Web GUI)

Étape 1 sur 7Voir le parcours complet sur la carte d'architecture →

Comment fonctionne un semantic object ?

Un semantic object est le substantif de la navigation SAP Fiori ; l'action en est le verbe. Ensemble, ils forment un intent, écrit dans l'URL du launchpad sous la forme #SemanticObject-action, éventuellement suivi de paramètres.

  1. Une tile, un lien ou une application demande un intent, par exemple #PurchaseOrder-display?PurchaseOrder=4500000123.
  2. Le launchpad recherche des target mappings ayant le même semantic object et la même action parmi les catalogues des rôles de l'utilisateur.
  3. Le target mapping correspondant détermine quelle application s'ouvre.

Un semantic object porte généralement de nombreuses actions. Dans la SAP Fiori Apps Reference Library, PurchaseOrder-display est résolu vers la transaction classique ME23N via SAP GUI for HTML, PurchaseOrder-manage vers l'application Manage Purchase Orders et PurchaseOrder-displayFactSheet vers une fact sheet de commande d'achat. L'application appelante ne nomme que le business object et l'opération voulue. Un semantic object est donc un nom stable pour une entité métier, indépendant de la technologie d'interface qui la prendra finalement en charge.

Où les semantic objects sont-ils définis ?

  • Launchpad basé sur ABAP (on-premise, Private Edition) : SAP livre les semantic objects avec les composants d'interface ; la transaction /UI2/SEMOBJ_SAP les affiche. Les semantic objects spécifiques sont créés avec /UI2/SEMOBJ ou avec l'activité de Customizing dédiée aux semantic objects spécifiques dans SPRO (UI Technologies, SAP Fiori, contenu du launchpad). Une entrée spécifique ayant la même clé qu'une entrée livrée par SAP en remplace les attributs.
  • SAP BTP et SAP Build Work Zone : chaque application déclare les semantic objects et les actions qu'elle accepte comme inbounds dans son app descriptor (sap.app → crossNavigation → inbounds), où le semantic object et l'action sont obligatoires. Les semantic objects proviennent de ces descripteurs plutôt que d'une transaction de maintenance ABAP.
  • SAP S/4HANA Cloud Public Edition : les semantic objects livrés par SAP sont utilisés tels quels. Pour une application spécifique, le développeur définit la tile, y compris son intent, dans le cadre de l'application avant de la déployer.

Le semantic object est défini une fois par paysage système, puis référencé partout où la navigation en a besoin.

Les semantic objects ne servent pas qu'aux tiles. Dans SAP Fiori elements, un champ annoté avec un semantic object (Common.SemanticObject en OData ou CAP, @Consumption.semanticObject en ABAP CDS) est rendu sous forme de lien lorsque le semantic object est valide dans le launchpad. Un clic sur ce lien liste toutes les actions que l'utilisateur peut atteindre pour cet objet ; lorsqu'une seule cible existe, l'application navigue directement.

Les applications SAPUI5 freestyle utilisent le service de navigation du shell (sap.ushell.services.Navigation) pour savoir quels liens existent pour un semantic object et pour naviguer. Dans les deux cas, la liste des liens est calculée par utilisateur à partir des target mappings de ses rôles : deux utilisateurs qui cliquent sur le même champ fournisseur peuvent donc voir des options différentes.

Un semantic object sur un champ est une demande d'options de navigation, et les rôles de l'utilisateur décident des options qui apparaissent.

Quand faut-il créer un semantic object spécifique ?

Appliquez ce critère de décision : l'entité existe-t-elle déjà en tant que business object SAP ?

  • Réutilisez le semantic object SAP lorsqu'une application spécifique travaille sur la même entité, par exemple une application spécifique de validation des commandes d'achat chez Alder Manufacturing. Réutiliser PurchaseOrder permet à l'application spécifique d'apparaître dans les mêmes listes de liens que les applications standard et de recevoir la navigation depuis celles-ci. Ajoutez une action distincte plutôt qu'un nouveau semantic object.
  • Créez un semantic object spécifique lorsque l'entité n'a pas d'équivalent SAP, comme une demande d'outillage spécifique qui n'existe que dans l'extension d'Alder Manufacturing. Respectez les conventions de nommage convenues pour le paysage système.
  • N'en créez pas un par application. Un semantic object nommé d'après une application plutôt que d'après une entité fragmente la navigation et masque l'application spécifique des liens standard.

Un semantic object spécifique se justifie par une nouvelle entité métier, pas par une nouvelle application.

Quelles sont les erreurs fréquentes avec les semantic objects ?

  1. Écarts d'orthographe et de casse. SAP décrit les target mappings comme sensibles à la casse : une tile qui envoie PurchaseOrder peut donc ne pas être résolue face à un target mapping défini pour Purchaseorder. Copiez les semantic objects depuis leur définition au lieu de les saisir.
  2. Attendre d'un semantic object qu'il accorde un accès. Un semantic object ne porte aucune autorisation. L'accès provient des catalogues des rôles de l'utilisateur, qui contiennent les target mappings de ce semantic object.
  3. Supposer qu'un lien signifie une application. Les smart links n'apparaissent que pour les cibles que l'utilisateur peut atteindre. Un lien visible pour un key user peut ne pas apparaître pour un employé administratif, et c'est voulu.
  4. Remplacer à la légère des semantic objects livrés par SAP. Une entrée spécifique ayant la même clé modifie les attributs pour toutes les applications qui utilisent l'objet.

Lorsque la navigation d'un semantic object se comporte de façon inattendue, exécutez /UI2/FLIA pour l'utilisateur et l'intent concernés avant de modifier une définition. La plupart des problèmes de semantic objects sont des problèmes de nommage ou de rôles plutôt que de définition.

Semantic object ou target mapping : quelle différence ?

Semantic objectTarget mapping
Ce que c'estNom d'une entité métier utilisé dans un intentRègle qui résout un intent vers une application
Où il est défini/UI2/SEMOBJ_SAP et /UI2/SEMOBJ sur ABAP ; app descriptor sur SAP BTPTechnical catalogs sur ABAP ; inbounds de l'app descriptor sur SAP BTP
Accorde l'accès ?NonIndirectement, via les catalogues des rôles de l'utilisateur
Combien par entitéUn semantic object, plusieurs actionsUn ou plusieurs par semantic object et action
Défaillance typeMal orthographié ou non défini, donc aucun intent ne correspondAbsent des catalogues de l'utilisateur, ou règles non concordantes

Le semantic object nomme ce sur quoi l'utilisateur veut travailler ; le target mapping décide quelle application fait le travail.

Questions fréquentes

Un semantic object est-il la même chose qu'un business object dans le back-end ?

Non. Un semantic object est un nom de navigation utilisé par le SAP Fiori Launchpad. Il correspond souvent à un business object back-end, comme une commande d'achat, mais il ne porte ni données, ni logique, ni autorisation. Il identifie seulement l'entité dans un intent.

Un même semantic object peut-il ouvrir différentes applications ?

Oui. Chaque action du semantic object peut être résolue vers une application différente, et le même semantic object avec la même action peut être résolu vers des applications différentes selon le rôle ou le type de terminal, en fonction des target mappings que contiennent les catalogues de l'utilisateur.

Comment savoir quels semantic objects une application SAP Fiori utilise ?

La SAP Fiori Apps Reference Library liste les intents de chaque application, par exemple PurchaseOrder-display pour la transaction ME23N. Dans un système ABAP, /UI2/FLIA affiche les intents disponibles pour un utilisateur donné, avec leurs catalogues et leurs target mappings.

Faut-il un semantic object spécifique pour une application SAPUI5 spécifique ?

Uniquement lorsque l'application travaille sur une entité que SAP ne modélise pas. Si l'application traite une entité standard comme une commande d'achat, réutilisez le semantic object SAP avec sa propre action, afin que l'application spécifique participe à la navigation standard.

Un semantic object contrôle-t-il qui peut ouvrir une application ?

Non. Un semantic object n'est qu'un nom. La possibilité d'ouvrir une application dépend des business catalogs des rôles de l'utilisateur, qui contiennent les target mappings de ce semantic object, et des autorisations que l'application vérifie à l'exécution.

Sources

S'applique à
SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition · SAP BTP
Dernière relecture

SAP, SAP Fiori, SAPUI5, SAP S/4HANA, SAP BTP et les autres produits et services SAP mentionnés sont des marques commerciales ou des marques déposées de SAP SE (ou d'une société affiliée à SAP) en Allemagne et dans d'autres pays. Ce guide est indépendant ; il n'est ni affilié à SAP SE, ni sponsorisé, ni approuvé par SAP SE.