SAP Fiori Elements et floorplans

Flexible Programming Model

Le flexible programming model est l'approche de SAP Fiori elements pour OData V4 qui combine, dans une même application, des building blocks pilotés par les métadonnées, des points d'extension, des extensions de contrôleur et des pages personnalisées avec du code SAPUI5 freestyle. Le flexible programming model supprime le choix du tout ou rien entre un floorplan généré et une application SAPUI5 entièrement écrite à la main.

L'essentiel

Type
Approche de développement de SAP Fiori elements pour OData V4
Couche
Applications d'interface
Outils principaux
Building blocks (sap.fe.macros), pages personnalisées (sap.fe.core.fpm), extensions de contrôleur
Prérequis
Service OData V4 avec annotations d'interface
Construit avec
SAP Fiori tools dans SAP Business Application Studio ou Visual Studio Code
Qui l'utilise
Développeurs SAP Fiori, développeurs CAP et RAP, designers UX
S'applique à
SAP S/4HANA on-premise et Private Edition, SAP BTP
Couche : Applications d'interfaceOù se situe-t-il ? ▾
Où se situe-t-il ?: L3 · Applications d'interfaceCouche : Applications d'interface.L1L2L3L4L5L6BTP

Couche : Applications d'interface

Ouvrir la carte d'architecture →

Comment fonctionne le flexible programming model ?

Le flexible programming model n'est pas un framework distinct, mais un ensemble d'options que SAP Fiori elements pour OData V4 propose pour aller au-delà des floorplans tout en laissant le framework aux commandes :

  1. Les points d'extension des list reports et des object pages acceptent des sections, des colonnes et des actions personnalisées écrites en SAPUI5.
  2. Les building blocks placent des éléments pilotés par les métadonnées, tels qu'un tableau, une barre de filtres ou un champ, là où c'est nécessaire.
  3. Les extensions de contrôleur et l'ExtensionAPI permettent au code personnalisé de réagir aux événements du framework, tels que la sauvegarde ou la navigation.
  4. Les pages personnalisées (custom pages) ajoutent au routage de l'application une page dotée de sa propre vue XML. La page s'exécute sur le runtime SAP Fiori elements (composant sap.fe.core.fpm), avec le contexte de binding OData, la navigation vers les pages standard et la prise en charge des building blocks.

Le flexible programming model est donc une échelle graduée entre interface générée et interface écrite à la main, décidée page par page et section par section.

Que sont les building blocks dans SAP Fiori elements ?

Les building blocks sont des éléments d'interface réutilisables et pilotés par les annotations de SAP Fiori elements pour OData V4, les mêmes éléments que le framework utilise pour assembler ses floorplans.

  • Non pas des contrôles, mais des modèles. Un building block est un ensemble d'instructions de templating. À l'exécution, il produit des contrôles adaptés aux données liées : un texte pour une propriété de type chaîne, un sélecteur de date pour une date.
  • Configurés à trois endroits. Les annotations du service définissent le comportement par défaut, les attributs XML en ligne l'affinent, et le manifest prévaut sur les deux en cas de conflit.
  • Référencés par chemin de métadonnées. Un building block pointe vers un entity set, une propriété ou une annotation au lieu de lier des colonnes à la main.
  • Exemples : Table, FilterBar, Chart, Field, Share et Page.

Comme ils lisent les mêmes annotations que les floorplans, les building blocks héritent de la gestion des variantes, de la personnalisation et de la prise en compte du draft. Les building blocks sont la raison pour laquelle une page personnalisée peut encore ressembler à une page SAP Fiori elements standard et se comporter comme elle.

Quand utiliser le flexible programming model ?

La recommandation de SAP est d'utiliser autant de SAP Fiori elements que possible et autant de SAPUI5 freestyle que nécessaire :

BesoinPoint de départ
Un list report et une object page conviennent à la tâcheFloorplan pleine page ; n'ajoutez des points d'extension que pour combler les manques
Le floorplan convient, mais une zone nécessite une visualisation spécifiqueSection ou colonne personnalisée dans le floorplan
La mise en page est spécifique, mais le filtrage, les tableaux et les formulaires sont standardPage personnalisée avec des building blocks
L'interaction est unique et les données ne sont pas en OData V4Page SAPUI5 freestyle

Les quatre peuvent coexister dans une même application : un cockpit fournisseurs chez Alder Manufacturing pourrait combiner un graphique personnalisé avec un building block Table standard, puis ouvrir une object page standard.

Test de décision : si une page que vous prévoyez de construire en freestyle contient une barre de filtres et un tableau standard, essayez d'abord une page personnalisée avec des building blocks. Le flexible programming model est le bon choix lorsque la mise en page est personnalisée mais que les composants sont standard.

Quels sont les points forts du flexible programming model ?

  • Pas de choix rigide. Les équipes n'ont pas à abandonner SAP Fiori elements dès qu'une exigence sort du cadre d'un floorplan.
  • Comportement standard fourni d'office. Les building blocks apportent depuis le framework le filtrage, les variantes, les messages, la gestion des drafts et l'accessibilité.
  • Les annotations restent la source de vérité. Un libellé modifié dans les annotations du service met à jour aussi bien les pages de floorplan que les pages personnalisées.
  • Surface d'extension prise en charge. Les extensions de contrôleur et l'ExtensionAPI offrent au code personnalisé des points d'ancrage documentés, plus faciles à maintenir stables lors des mises à niveau SAPUI5.

Pour les applications OData V4, le flexible programming model est le moyen le plus direct d'ajouter une interface personnalisée sans renoncer à ce que SAP Fiori elements fournit déjà.

Où s'arrête le flexible programming model ?

  • OData V4 uniquement. Les building blocks et les pages personnalisées relèvent de SAP Fiori elements pour OData V4. Une application OData V2 conserve les points d'extension V2 ; adopter le modèle implique de faire passer l'application et le service en V4.
  • Dépendant de la version. Les building blocks arrivent release après release : une application ne peut donc utiliser que ce que propose la version SAPUI5 du système cible ; l'API Reference indique la release dans laquelle chaque building block est devenu disponible.
  • Toutes les fonctionnalités des floorplans ne sont pas reprises. SAP documente par exemple que la création d'une card pour la section Insights de My Home n'est pas disponible lorsque le building block Table se trouve dans une page personnalisée ou une section personnalisée.
  • L'usage en freestyle a des prérequis. Les building blocks peuvent figurer dans des applications SAPUI5 freestyle, mais la configuration requise par chaque building block doit être vérifiée dans la documentation SAPUI5 de la release utilisée.
  • SAP S/4HANA Cloud Public Edition suit ses propres règles d'extensibilité pour les applications développées par les clients ; consultez la documentation de cette édition avant d'en planifier une.

Le flexible programming model élargit ce que SAP Fiori elements peut faire ; il ne supprime pas la dépendance à OData V4 et à des annotations bien conçues.

Quelles sont les erreurs courantes avec le flexible programming model ?

  1. Reconstruire à la main des éléments standard. Un tableau personnalisé doté de sa propre logique de filtrage duplique les building blocks Table et FilterBar. Configurez plutôt le building block.
  2. Configurer à trois endroits. Lorsque les annotations, les attributs XML et les paramètres du manifest décrivent le même tableau, le manifest l'emporte et les autres semblent défaillants. Choisissez un seul endroit par paramètre.
  3. Charger les fragments de la mauvaise manière. SAP exige que les fragments chargés dynamiquement qui contiennent des building blocks soient chargés via la méthode loadFragment de l'ExtensionAPI.
  4. Corriger l'interface au lieu du service. Un libellé manquant est généralement un problème d'annotation ; le corriger dans du code personnalisé le masque pour toutes les autres pages.
  5. Ignorer la version SAPUI5 de la production. Des building blocks testés sur la release la plus récente peuvent être absents du serveur front-end.

La plupart des problèmes liés au flexible programming model sont des erreurs de configuration ou de répartition entre couches, et non des limites du modèle lui-même.

Flexible programming model ou SAPUI5 freestyle : quelle différence ?

Flexible programming modelSAPUI5 freestyle
RuntimeSAP Fiori elements pour OData V4Framework d'application SAPUI5 seul
Ce que les développeurs écriventAnnotations, utilisation de building blocks, vues personnalisées et extensions de contrôleurVues, contrôleurs et accès aux données, tout à la main
Comportement standardBarre de filtres, tableaux, variantes, draft et messages fournis par le frameworkImplémenté ou raccordé par l'équipe
Source de donnéesService OData V4 avec annotationsToute source : OData V2 ou V4, REST, données locales
MaintenancePartagée : composants du framework maintenus par SAP, composants personnalisés par l'équipeEntièrement à la charge de l'équipe

Le flexible programming model conserve le runtime SAP Fiori elements et ajoute du code personnalisé là où c'est nécessaire ; SAPUI5 freestyle part du code personnalisé et n'ajoute des éléments standard que si l'équipe les construit.

Questions fréquentes

Le flexible programming model est-il disponible pour les applications OData V2 ?

Non. Les building blocks et les pages personnalisées font partie de SAP Fiori elements pour OData V4. Les applications sur SAP Fiori elements pour OData V2 étendent leurs floorplans via les points d'extension V2 ; utiliser le flexible programming model exige donc un service OData V4 et le runtime V4.

Le flexible programming model est-il la même chose que SAPUI5 freestyle ?

Non. SAPUI5 freestyle consiste à écrire des vues et des contrôleurs directement sur le framework SAPUI5. Le flexible programming model conserve le runtime SAP Fiori elements pour OData V4 et permet aux développeurs d'ajouter des vues personnalisées, des extensions de contrôleur et des building blocks, de sorte que le comportement standard provient toujours du framework.

Qu'est-ce qu'une custom page dans SAP Fiori elements ?

Une page personnalisée (custom page) est une page dotée de sa propre vue XML, ajoutée à une application SAP Fiori elements pour OData V4 via la configuration de routage du manifest. Une page personnalisée s'exécute sur le runtime SAP Fiori elements, reçoit le contexte de binding OData et peut contenir des building blocks.

Peut-on utiliser des building blocks dans une application SAPUI5 freestyle ?

Oui, dans certaines limites. SAP documente certains building blocks, tels que Share, pour les applications SAPUI5 freestyle et encourage à combiner building blocks et code freestyle. Les exigences, telles qu'un modèle OData V4 et le composant d'application, diffèrent selon le building block et la release SAPUI5.

Le flexible programming model remplace-t-il les floorplans SAP Fiori elements ?

Non. SAP recommande un floorplan pleine page chaque fois qu'il convient, car il réutilise le plus de design et de logique standard. Le flexible programming model ajoute des sections personnalisées, des pages personnalisées et des building blocks pour ce qu'un floorplan ne couvre pas, au sein de la même application.

Sources

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

Pour aller plus loin

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.