App Descriptor (manifest.json)
L'app descriptor est le fichier manifest.json d'une application, d'un composant ou d'une bibliothèque SAPUI5 : un document JSON qui déclare l'ID de l'application, sa version, ses sources de données, ses modèles, son routage, ses dépendances de bibliothèques et ses inbounds et outbounds de navigation croisée. L'app descriptor est ce que lisent SAPUI5, le SAP Fiori Launchpad et SAP Build Work Zone pour charger, connecter et lancer l'application.
L'essentiel
- Type
- Fichier de configuration (JSON) d'une application, d'un composant ou d'une bibliothèque SAPUI5
- Couche
- Applications d'interface ; Contenu, navigation et accès
- Namespaces principaux
- sap.app, sap.ui, sap.ui5, sap.fiori, sap.platform.abap, sap.platform.hcp
- Lu par
- Runtime SAPUI5, SAP Fiori Launchpad, SAP Build Work Zone, SAPUI5 application index
- Modifié avec
- Éditeur de code ou SAP Fiori tools (Page Map, Page Editor)
- Qui l'utilise
- Développeurs SAP Fiori, administrateurs du launchpad
- S'applique à
- SAP S/4HANA (toutes les options de déploiement), SAP BTP
Couche : Applications d'interfaceOù se situe-t-il ? ▾
Couche : Applications d'interface
Concerne aussi : Contenu, navigation et accès
Ouvrir la carte d'architecture →Que contient l'app descriptor ?
L'app descriptor regroupe ses attributs en namespaces, chacun relevant d'un consommateur différent :
| Namespace | Contenu type |
|---|---|
sap.app | ID d'application obligatoire, type (application, component, library ou card), titre, version, fichier i18n, sources de données, inbounds et outbounds de navigation croisée |
sap.ui | Types d'appareils obligatoires (desktop, tablet, phone), icônes, technologie, affichage pleine largeur dans le launchpad |
sap.ui5 | Dépendances obligatoires (version minimale de SAPUI5, bibliothèques), modèles, vue racine, routage, composant étendu, activation de la flexibilité (flexEnabled) |
sap.fiori | IDs d'enregistrement SAP Fiori et archétype obligatoire, par exemple transactionnel ou analytique |
sap.platform.abap, sap.platform.hcp | Valeurs propres à la plateforme, comme l'URI de l'application, renseignées lors du déploiement |
Un _version au niveau racine indique le schéma de manifest que suit le fichier. L'ID sap.app doit correspondre au namespace du composant dans Component.js, ne peut pas dépasser 70 caractères et doit être unique dans le système. L'app descriptor est donc l'endroit unique où sont déclarés l'identité d'une application, ses connexions aux données et son contrat de navigation.
Comment le SAP Fiori Launchpad utilise-t-il l'app descriptor ?
Le launchpad s'intéresse surtout à sap.app → crossNavigation :
- Les inbounds déclarent les intents que l'application accepte : un semantic object et une action, un titre et une icône de tile facultatifs, les types d'appareils, une signature de paramètres avec valeurs requises et valeurs par défaut, et une règle pour les paramètres supplémentaires (autorisés, ignorés ou non autorisés).
- Les outbounds déclarent les intents que l'application déclenche elle-même lorsqu'elle navigue vers d'autres applications.
La suite dépend de la plateforme :
- SAP BTP et SAP Build Work Zone : l'application est déployée avec son descriptor, par exemple dans le HTML5 Application Repository, et le site utilise les inbounds comme target mappings.
- Launchpad ABAP (SAP S/4HANA on-premise et Private Edition) : le target mapping d'un technical catalog, créé avec le launchpad app manager (/UI2/FLPAM), référence l'ID
sap.appde l'application. Le SAPUI5 application index, construit par /UI5/APP_INDEX_CALCULATE, lit les descriptors des applications déployées. - SAP S/4HANA Cloud Public Edition : les applications livrées par SAP comportent des descriptors comme toute application SAPUI5 ; les applications spécifiques sont déployées dans le SAPUI5 ABAP repository du tenant de développement, avec leur tile définie dans l'application, et un administrateur accorde l'accès via un business role.
L'application alder.mm.supplierrating d'Alder Manufacturing, avec un inbound d'illustration Supplier-rate, ne s'ouvre que si une tile déclenche exactement cet intent. L'app descriptor publie le contrat de navigation ; le contenu du launchpad décide qui peut l'utiliser.
Comment l'app descriptor est-il versionné ?
Le schéma du manifest évolue avec SAPUI5. Chaque version de schéma est comprise par une version SAPUI5 correspondante, et le SDK SAPUI5 publie cette correspondance, par exemple le schéma 1.60.0 pour SAPUI5 1.120 et versions ultérieures.
À partir de SAPUI5 1.136, une nouvelle version majeure 2 du manifest est disponible. Elle suit les bonnes pratiques actuelles et supprime des fonctionnalités que les versions précédentes avaient seulement déclarées obsolètes ; y passer est donc une migration, pas un simple changement de numéro. Le SDK liste les modifications nécessaires, et le UI5 linter signale les configurations de manifest obsolètes.
Deux paramètres liés sont souvent confondus :
_versiondécrit le schéma dans lequel le fichier est écrit.sap.ui5→dependencies→minUI5Versionindique la version SAPUI5 la plus basse dont l'application a besoin.
Critère de décision : fixez minUI5Version à la version SAPUI5 la plus basse parmi les systèmes sur lesquels l'application s'exécutera, et choisissez une version de schéma que cette version comprend. Un décalage entre le schéma de l'app descriptor et le runtime est une source fréquente de fonctionnalités qui, sans le signaler, ne font rien.
Quel rôle joue l'app descriptor dans SAP Fiori elements et l'adaptation ?
- SAP Fiori elements : le descriptor sélectionne le floorplan de chaque page via ses cibles de routage et porte les paramètres de page, comme le chargement initial, la gestion des variantes ou le type de table. Les annotations décrivent les données ; le descriptor décrit l'application.
- Variantes d'application : un projet d'adaptation ne modifie pas le fichier d'origine. Il crée une variante avec son propre fichier de modifications du descriptor (manifest.appdescr_variant), dans lequel l'ID
sap.appest l'ID de la variante etsap.ui5→componentNamepointe vers l'application de base. L'application d'origine reste intacte et continue de recevoir les mises à jour SAP. - Adaptation key user :
flexEnabledindique que l'application est activée pour la flexibilité SAPUI5, sur laquelle repose l'adaptation de l'interface à l'exécution.
SAP considère le descriptor comme étant en lecture seule après livraison ; c'est pourquoi les modifications des applications livrées par SAP passent par des variantes et des modifications de flexibilité. L'app descriptor est l'ancrage auquel se réfèrent les extensions, pas un fichier à corriger.
Quelles sont les erreurs courantes de l'app descriptor ?
Effectuez ces vérifications lorsqu'une application ne démarre pas ou ne navigue pas comme prévu :
- ID incohérent. L'ID
sap.appdiffère du namespace de Component.js : le composant est introuvable. - ID en double ou trop long. Les contrôles de cohérence du SAPUI5 application index signalent les IDs en double et les IDs de plus de 70 caractères.
- L'inbound ne correspond pas à la tile. Le semantic object, l'action ou la signature de paramètres diffère de l'intent que déclenche la tile ; une règle « not allowed » pour les paramètres supplémentaires rejette les paramètres en trop. Sur le launchpad ABAP, /UI2/FLIA montre comment l'intent a été résolu.
- Type d'appareil désactivé. L'inbound ou
sap.uiexclut les téléphones : l'application ne fonctionne que sur desktop. - Mauvaise source de données. L'URI de
dataSourcespointe vers un chemin de service qui n'existe pas dans le système cible ou qui n'y est pas routé. - Index obsolète. Une application modifiée n'est pas encore connue du SAPUI5 application index. Le déploiement depuis SAP Business Application Studio le met à jour automatiquement ; les SAP Notes, support packages, mises à niveau et certains imports de transports nécessitent /UI5/APP_INDEX_CALCULATE.
La plupart des problèmes d'app descriptor sont des incohérences de contrat entre le fichier, le contenu du launchpad et le back-end, pas des erreurs de syntaxe.
App descriptor, target mapping ou launchpad app descriptor item : quelle différence ?
| App descriptor (manifest.json) | Target mapping | Launchpad app descriptor item (LADI) | |
|---|---|---|---|
| Ce que c'est | Fichier JSON livré avec une application SAPUI5 | Règle qui résout un intent vers une application | Objet du launchpad ABAP qui regroupe un target mapping et des tiles |
| Où il se trouve | Dans l'application (ABAP repository ou HTML5 Application Repository) | Technical catalog ; sur SAP BTP, dérivé des inbounds | Technical catalog, maintenu avec le launchpad app manager |
| Qui le maintient | Développeur de l'application | Administrateur du launchpad ; développeur sur SAP BTP | Administrateur du launchpad |
| Question traitée | Qu'est-ce que cette application et de quoi a-t-elle besoin ? | Quelle application s'ouvre pour cet intent ? | Comment cette application est-elle lancée depuis le launchpad ? |
Malgré la ressemblance des noms, un launchpad app descriptor item est du contenu du launchpad, tandis que l'app descriptor fait partie de l'application elle-même.
Questions fréquentes
L'app descriptor et le manifest.json, est-ce la même chose ?
Oui. La documentation SAPUI5 emploie manifest, descriptor for applications, components and libraries et app descriptor pour désigner la même chose : le fichier manifest.json qui stocke les métadonnées d'une application au format JSON. Les bibliothèques, les composants réutilisables et les UI integration cards ont eux aussi un manifest.json.
Où les inbounds du launchpad sont-ils définis dans le manifest.json ?
Les inbounds sont définis dans le namespace sap.app, sous crossNavigation puis inbounds. Chaque inbound possède une clé et déclare un semantic object, une action, un titre et une icône facultatifs, des types d'appareils et une signature de paramètres, y compris le traitement des paramètres supplémentaires.
Peut-on modifier le manifest.json d'une application livrée par SAP ?
Pas directement. SAP considère le descriptor livré comme étant en lecture seule, et les modifications seraient écrasées par les mises à jour. Les changements passent par une variante d'application créée par un projet d'adaptation, qui stocke séparément les modifications du descriptor et référence l'application d'origine.
Qu'est-ce que la version 2 du manifest ?
La version 2 du manifest est la version majeure de schéma disponible à partir de SAPUI5 1.136. Elle supprime des fonctionnalités que les versions de schéma précédentes avaient déclarées obsolètes ; les applications nécessitent donc des étapes de migration avant de basculer. Le SDK SAPUI5 documente les modifications nécessaires, et le UI5 linter détecte les paramètres de manifest obsolètes.
Un launchpad app descriptor item est-il la même chose que l'app descriptor ?
Non. Un launchpad app descriptor item est un objet d'un technical catalog ABAP qui associe un target mapping à une ou plusieurs tiles. L'app descriptor est le manifest.json situé dans l'application. Le target mapping fait référence à l'application via son ID sap.app.
Sources
- SAPUI5 SDK: Manifest (descriptor for applications, components, and libraries)
- SAPUI5 SDK: Migration information for upgrading the manifest file
- SAP Help Portal: Launchpad app descriptor items (ABAP platform)
- SAP Help Portal: Calculation Report - Automatic Run vs. Manual Scheduling (SAPUI5 application index)
- SAP Help Portal: UI Development (SAP S/4HANA Cloud Public Edition)
- S'applique à
- SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition · SAP BTP
- Dernière relecture