Tout dépend de l'existant pour les questions d'entretien d'un développeur SAP Fiori. Une partie des postes porte sur des applications SAPUI5 écrites à la main, avec leurs vues XML, leurs contrôleurs et un service OData V2 généré dans SEGW. Les projets S/4HANA récents passent plutôt par Fiori Elements. L'écran est alors produit à partir d'annotations posées sur des vues CDS, et le service OData V4 vient d'un modèle RAP. Les deux demandent des réflexes différents.
« Fiori » recouvre trois activités sur un CV : configurer le launchpad et les rôles, développer des écrans, étendre une application standard de SAP. Demandez laquelle. Un profil venu de l'ABAP connaît souvent bien OData et les CDS, avec un JavaScript resté ancien. Un profil venu du front maîtrise JavaScript et bute sur les annotations et le draft.
Regardez aussi les outils cités. SAP Web IDE a laissé la place à SAP Business Application Studio et à VS Code avec les SAP Fiori tools, et un CV qui ne mentionne que Web IDE date un peu. Le PDF contient un cas de 20 minutes sur un écran de validation des commandes d'achat.
L'outillage d'un développeur Fiori / UI5
SAPUI5 et OpenUI5
Le framework JavaScript de SAP pour les applications web. Une application se compose de vues XML, de contrôleurs et d'un composant décrit dans le fichier manifest.json. OpenUI5 en est la version open source. Les anciennes API, comme le chargement synchrone ou jQuery.sap, sont dépréciées : un code qui en contient encore demandera du travail avant une montée de version.
Fiori Elements
Des modèles d'écrans (List Report, Object Page, Worklist, Overview Page, Analytical List Page) générés à partir des métadonnées du service et de ses annotations. On écrit peu de JavaScript. Le savoir-faire consiste à placer la bonne annotation et à ajouter une extension sans casser l'écran généré.
OData V2 et V4
Le protocole qui relie l'écran au back-end SAP. Les deux versions cohabitent dans les systèmes, avec deux modèles UI5 qui ne s'utilisent pas de la même façon. Demandez sur laquelle la personne a travaillé, et si elle a déjà basculé de l'une à l'autre.
SEGW et RAP
Les deux façons de produire le service côté ABAP. SEGW, le Gateway Service Builder, génère des services V2 que l'on complète dans des classes ABAP. RAP, le modèle de programmation ABAP RESTful, est la voie actuelle sur S/4HANA, avec draft et actions déclarés dans le comportement. Beaucoup d'offres attendent que le développeur Fiori sache écrire les deux.
Vues CDS et annotations UI
Les vues CDS décrivent les données côté ABAP. Les annotations @UI (colonnes, filtres, sections de l'Object Page) pilotent l'écran Fiori Elements et se rangent souvent dans des metadata extensions. Un développeur qui les maîtrise ajoute une colonne en quelques lignes au lieu de toucher au code de l'écran.
Fiori launchpad et SAP Build Work Zone
Le point d'entrée des utilisateurs. Les applications y sont rangées en catalogues, espaces et pages, et ouvertes par des intentions de navigation. L'accès passe par les rôles PFCG sur un système installé sur site. Sur BTP, le launchpad est fourni par SAP Build Work Zone.
Business Application Studio et SAP Fiori tools
L'environnement de développement actuel, dans le navigateur ou sous forme d'extensions VS Code. Les générateurs créent une application à partir d'un service, l'UI5 Tooling gère le build et le déploiement. Les projets d'adaptation pour étendre une application standard se font aussi là.
QUnit, OPA5 et mock server
Les outils de test du monde UI5. QUnit pour la logique, OPA5 ou wdi5 pour les enchaînements d'écrans, et un mock server qui simule le service OData à partir de ses métadonnées. Peu d'équipes les utilisent vraiment, ce qui en fait un bon indicateur de rigueur.
Le développeur SAP Fiori / UI5 travaille sur ECC ou S/4HANA, le plus souvent en mission ou en TMA, avec des consultants fonctionnels qui rédigent les spécifications. La plupart des offres le veulent full stack : écrans en SAPUI5 ou Fiori Elements, services OData et vues CDS côté ABAP, parfois les rôles et le paramétrage du launchpad. Sur les projets S/4HANA, une part du travail consiste à reprendre des développements faits en transactions classiques ou en freestyle et à les ramener vers des applications standard étendues ou vers Fiori Elements. Précisez dans l'offre la version du système, la part de front et de back attendue, et s'il s'agit de créer des applications ou d'étendre celles de SAP.
Les compétences à vérifier chez un développeur SAPUI5
- SAPUI5 : MVC, composants et routage
- Data binding et modèles
- OData V2 et V4, SEGW et RAP
- Fiori Elements et annotations CDS
- Extension des applications standard
- Performance, tests et déploiement
Les questions de l'entretien Fiori, avec la réponse attendue
Chaque question vient avec ce qu'une bonne réponse contient et le signal qui doit vous alerter. Pas besoin d'être technique pour les poser : écoutez si le candidat raconte du vécu.
Question 1 · confirmé
Une liste affiche vingt commandes. L'utilisateur modifie un champ dans l'écran de détail, revient à la liste, et la valeur n'a pas changé. Quelles pistes regardez-vous ?
Une bonne réponseIl vérifie d'abord que la modification est partie au serveur : avec un ODataModel V2, les changements restent en attente dans un groupe différé tant que submitChanges n'est pas appelé. Ensuite, que la liste et le détail utilisent le même modèle et le même chemin d'entité, et pas une copie dans un JSONModel. Il connaît le mode de binding par défaut (OneWay sur l'ODataModel V2, TwoWay sur le JSONModel) et sait rafraîchir le seul binding concerné.
Signal d'alerte« Je fais un refresh(true) sur tout le modèle » ou un rechargement de la page. Recopier les données à la main d'un écran à l'autre.
Question 2 · confirmé à senior
Le projet démarre en OData V4, alors que vous avez surtout travaillé sur des services V2 générés dans SEGW. Qu'est-ce qui change pour vous côté UI5 ?
Une bonne réponseLe modèle V4 n'a plus de méthodes read ou create sur le modèle lui-même. On passe par les bindings et leurs contextes : création avec create() sur un list binding, lecture avec requestObject, paramètres $select et $expand déclarés sur le binding. Les requêtes partent par groupes ($auto, $direct ou un groupe nommé). Côté back, le service V4 vient en général d'un modèle RAP publié par un service binding, pas de SEGW.
Signal d'alerte« C'est la même chose, on change l'URL du service. » Ou un code V4 qui cherche encore oModel.read().
Question 3 · junior à confirmé
Le métier veut une colonne et un filtre de plus sur une List Report Fiori Elements. Où intervenez-vous ?
Une bonne réponseDans les annotations, pas dans du JavaScript. Une annotation @UI.lineItem avec sa position pour la colonne, @UI.selectionField pour le filtre, posées dans une metadata extension de la vue CDS ou dans le fichier d'annotations local de l'application. Il vérifie que le champ est bien exposé par la vue de projection et ajoute si besoin une aide à la saisie avec @Consumption.valueHelpDefinition.
Signal d'alerteRecopier l'application en freestyle pour garder la main, ou modifier le code généré de l'application.
Question 4 · confirmé
Une application Fiori standard de SAP doit afficher un champ supplémentaire propre au client. Comment l'ajoutez-vous sans modifier le standard ?
Une bonne réponseIl commence par la fiche de l'application dans la SAP Fiori apps reference library, qui indique ses possibilités d'extension. Si le champ existe déjà, une adaptation par un key user (Adapt UI) peut suffire. Sinon, un projet d'adaptation dans Business Application Studio, avec une extension de contrôleur ou un fragment au point d'extension prévu. Le champ lui-même arrive dans le service par l'application Custom Fields ou par une extension du service côté back.
Signal d'alerteCopier l'application standard ou modifier son code dans le dépôt BSP, ce qui sera perdu ou en conflit à la prochaine mise à jour.
Question 5 · junior à confirmé
Comment une application UI5 passe-t-elle d'une liste à un détail ? Et que se passe-t-il quand l'utilisateur colle l'URL du détail dans un nouvel onglet ?
Une bonne réponseLe routage est déclaré dans manifest.json : routes, patterns avec paramètres, cibles. La liste appelle navTo avec la clé de l'objet. Le détail s'abonne à patternMatched, relit la clé dans l'URL et fait un bindElement sur l'entité. Le lien direct fonctionne parce que le détail charge ses propres données à partir de la clé. Il prévoit une cible « non trouvé » pour une clé inexistante.
Signal d'alerteDes données passées par une variable globale ou un modèle rempli par la liste. Le détail s'affiche vide après un rechargement.
Recevez la fiche d'entretien complète en PDF
La fiche pour mener l'entretien de bout en bout, prête à imprimer ou à partager avec le manager.
- 30 questions sur 6 axes, avec la bonne réponse, le signal d'alerte et la relance
- Le niveau visé pour chaque question
- Une mise en situation de 20 minutes et ce qu'on attend du candidat
- La grille d'évaluation de 1 à 4, axe par axe
Recruter un développeur Fiori / UI5 : vos questions
Un développeur ABAP peut-il tenir un poste Fiori / UI5 ?
Oui, s'il a déjà écrit du JavaScript moderne et pas seulement des services OData. Le back lui sera familier : CDS, SEGW, RAP, autorisations. L'écart se voit sur l'asynchrone, le binding et le routage, où un profil purement ABAP reproduit parfois une logique de transaction SAP dans le navigateur. Demandez-lui de commenter un contrôleur qu'il a écrit. Sur un poste orienté Fiori Elements, la marche est plus courte, car le travail passe surtout par les annotations.
Que demander à un développeur SAPUI5 en test technique ?
Un exercice court en direct vaut mieux qu'un projet à rendre. Donnez une petite application avec un binding qui ne se met pas à jour, un routage sans lien direct possible et une liste filtrée en JavaScript, et demandez de corriger en expliquant. Pour un profil Fiori Elements, faites ajouter une colonne, un filtre et une aide à la saisie par annotations. Prévoyez un système de démonstration ou un mock server, car l'accès à vos systèmes SAP ne se donne pas à un candidat.
OData V4 et RAP doivent-ils figurer sur le CV ?
Seulement si votre système et vos projets les utilisent. Sur un ECC ou un S/4HANA ancien, la plupart des applications tournent en V2 avec SEGW, et un profil qui connaît bien ce socle sera plus utile. Pour des développements neufs sur S/4HANA, RAP et V4 deviennent la norme, et l'expérience compte. Un CV qui cite les deux mérite une question précise sur ce qui change entre les deux modèles UI5.
Faut-il savoir configurer le launchpad pour être développeur Fiori ?
Il doit au minimum savoir rendre son application visible : catalogue, target mapping, rôle et autorisation sur le service. La gestion complète des espaces, des pages et des rôles revient souvent à un consultant Basis ou sécurité. Si votre équipe n'a personne sur ce sujet, dites-le dans l'offre et posez la question en entretien, car un développeur qui n'a jamais touché au launchpad perdra du temps à chaque mise en production.
Pour structurer vos autres entretiens, consultez aussi nos pages sur les questions d'entretien de recrutement, la méthode de l'entretien structuré et la grille d'évaluation d'entretien.


