Aller au contenu principal

Ajouter un composant à une solution

Objectif​

Ajouter un composant (une table, un formulaire ou une vue, par exemple) à une solution — soit en en créant un nouveau dans son concepteur, soit en ajoutant un composant existant — depuis l’explorateur de solutions.

Prérequis​

  • Vous êtes connecté au Centre de contrôle d’administration en tant qu’administrateur de la plateforme.
  • La solution existe et appartient à un éditeur (voir Créer une solution).

Étapes​

  1. Ouvrez la page Solutions depuis la navigation de la barre latérale.
  2. Sélectionnez Ouvrir sur la ligne de la solution. L’explorateur de solutions présente les composants de la solution sous forme d’un onglet par type — Tables (8), Applications (2), Rapports (1), etc. — et fait de cette solution votre solution de travail. Chaque nom d’onglet indique combien d’éléments de ce type la solution contient, ce qui vous donne la forme de toute la solution sans rien ouvrir ; sélectionner un onglet liste ces composants. Seuls les types que la solution contient réellement ont un onglet.
  3. Pour créer un nouveau composant, utilisez le menu Nouveau (par exemple Nouvelle table ou Nouvelle application). Cela ouvre le concepteur correspondant, où le composant que vous créez est ajouté à cette solution de travail.
  4. Pour ajouter un composant qui existe déjà dans l’environnement, utilisez Ajouter un existant : choisissez le type de composant — Table, Groupe d’options, Application, Script, Écran Studio, Variable d’environnement, Stratégie de données, Rapport, Requête enregistrée, API personnalisée, Portail, Application personnalisée, Contrôle personnalisé, Ressource web ou Rôle — puis choisissez le composant dans la liste. Chaque choix se fait dans un sélecteur ; vous ne saisissez jamais de nom logique. Sélectionnez Ajouter un existant.
  5. Le composant apparaît sous l’onglet de son type, dont le compteur augmente d’une unité. Si la solution n’avait encore aucun composant de ce type, l’onglet apparaît maintenant.
remarque

Votre sélection appartient à l’onglet dans lequel vous l’avez faite. Les commandes en haut de la page — Gérer les composants, Dépendances, Retirer de la solution — agissent sur le composant sélectionné ; changer d’onglet efface donc la sélection. C’est voulu : une commande armée pour un composant que vous ne voyez plus est une commande que vous pourriez exécuter par erreur.

remarque

Un rapport et une requête enregistrée sont classés sous la table qu’ils lisent, à côté des formulaires et des vues de cette table. Vous n’avez pas à préciser laquelle : celui que vous choisissez la connaît déjà, et il est ajouté sous elle. C’est pourquoi ils apparaissent à la fois ici et dans le sélecteur de composants d’une table — deux chemins vers la même appartenance, pour les deux façons dont on les cherche.

remarque

Un rôle n’est pas un pointeur : son entrée vous emmène donc quelque part. Un rôle figure dans une solution parce que cette solution lui accorde quelque chose — une autorisation, sur une table, pour une opération — si bien que choisir Rôle ouvre la page Rôles de la solution, où cela se décide. Ajouter une ligne qui n’accorderait rien prétendrait que le rôle voyage, alors que le paquet ne transporterait qu’un nom vide.

Ouvrir un composant​

Sélectionnez le nom d’un composant pour l’ouvrir.

  • Un composant doté de son propre concepteur — une table, une requête enregistrée, un script, un rapport, un écran Studio, un processus, un rôle — s’ouvre dans ce concepteur.
  • Un composant modifié dans un tiroir sur sa propre page de liste — un groupe d’options, une application, une stratégie de données, une variable d’environnement, une API personnalisée, un portail — ouvre cette liste avec le composant sélectionné et son éditeur déjà ouvert, au lieu de vous laisser le retrouver une seconde fois dans une liste de trente éléments.
  • Une application personnalisée, un contrôle personnalisé ou une ressource web n’a pas d’éditeur — on le téléverse, on ne le crée pas ici — et ouvre donc sa liste avec la ligne sélectionnée, prête pour les commandes qui agissent dessus.

Vous pouvez aussi cocher la case de la ligne et choisir Ouvrir en haut de la page. Les deux font la même chose. Le nom est un lien ordinaire : vous pouvez donc aussi l’ouvrir dans un nouvel onglet.

remarque

Les règles métier sont l’exception. Une règle métier appartient au formulaire sur lequel elle s’exécute, et la vue d’ensemble ne sait pas de quel formulaire il s’agit — ses lignes ne s’ouvrent donc pas. Accédez à une règle métier par le formulaire de sa table, avec l’action Événements du concepteur de formulaires.

Choisir quels composants d’une table inclure​

Une table est plus qu’une seule chose : elle a des champs, des formulaires, des vues et des relations. Vous n’êtes pas obligé de tous les inclure. Lorsque vous ajoutez une table avec Ajouter un existant, un sélecteur de composants s’ouvre et liste les champs, formulaires, vues et relations de la table, chacun avec une case à cocher. Sélectionnez ceux que cette solution doit transporter et choisissez Enregistrer — la table elle-même est toujours incluse, et seuls les sous-composants cochés voyagent avec elle.

Vous pouvez revenir sur ce choix à tout moment, même une fois la table dans la solution. Deux chemins y mènent :

  • Sélectionnez la table sous l’onglet Tables et choisissez Gérer les composants.
  • Choisissez à nouveau la table sous Ajouter un existant — une table déjà présente dans la solution y est toujours proposée, et la choisir rouvre son sélecteur au lieu de l’ajouter deux fois.

Le sélecteur se rouvre en montrant ce qui se trouve actuellement dans la solution : vous pouvez donc ajouter ou retirer des champs, formulaires, vues et relations un par un chaque fois que nécessaire — par exemple pour ajouter un nouveau formulaire créé pour une table existante sans entraîner tout le reste, ou pour retirer une vue de la solution.

La ligne de chaque table indique quelle part de celle-ci voyage dans cette solution : une table ajoutée sans aucun de ses champs le dit donc clairement, au lieu d’avoir l’air complète.

remarque

Les colonnes et les relations voyagent avec leur table. La définition d’une table contient toutes ses colonnes et relations, quelles que soient les cases cochées : leurs cases décident de ce qu’affichent les listes de cette solution, pas de ce que contient le fichier exporté. Pour les formulaires, les vues et les requêtes enregistrées, c’est différent : seuls ceux qui sont cochés voyagent.

Ne voir que ce que contient la solution​

Chaque liste à l’intérieur d’une solution affiche les composants de cette solution, et non ceux de l’environnement. C’est vrai des pages de la navigation propre à la solution — Applications, Tables, Groupes d’options, Variables d’environnement, Requêtes enregistrées, Scripts, Rapports, Écrans Studio, API personnalisées, Portails, Rôles, Stratégies de données, Applications personnalisées, Contrôles personnalisés et Ressources web — ainsi que des listes Champs, Formulaires et Vues d’une table une fois celle-ci ouverte. Une table ajoutée sans aucun champ affiche donc une liste de champs vide, mais le fichier exporté contient quand même toutes les colonnes de la table (voir la note ci-dessus).

La solution par défaut (« Main ») est l’exception : elle contient tout ce qui se trouve dans l’environnement, ses listes ne sont donc jamais restreintes. C’est là qu’il faut aller pour voir tout ce que possède un environnement, quelle que soit la personne qui l’y a mis.

Un composant que vous créez alors qu’une solution est ouverte est ajouté automatiquement à cette solution et apparaît donc immédiatement dans sa liste.

Si un élément que vous utilisez manque dans la liste​

Une solution transporte ce dont elle a besoin. Si votre application navigue vers un écran, ou si votre rapport nomme une requête enregistrée, installés par une autre solution, ajoutez ce composant à votre solution — avec Ajouter un existant dans la vue d’ensemble de la solution, ou par le sélecteur de composants d’une table pour un champ, un formulaire ou une vue. C’est ainsi que les dépendances sont déclarées, et c’est ce qui permet à l’environnement cible de les vérifier lors de l’importation de votre paquet.

Notez ce qu’une liste restreinte ne signifie pas : un composant absent de la liste de cette solution existe toujours dans l’environnement et fonctionne toujours. Tout ce qui est atteint par son nom logique — un écran vers lequel une application navigue, un script qu’une règle importe, un groupe d’options auquel un champ est lié — se résout à l’exécution, quelle que soit la solution qui l’a installé. La liste répond à la question « que transporte ce paquet ? », et non « que peut atteindre cette application ? ».

Voir ce qui dépend d’un composant​

Sélectionnez un composant et choisissez Dépendances. Un panneau s’ouvre avec deux listes :

  • Requis par — tout ce qui, dans cet environnement, dépend du composant. C’est la liste à lire avant de supprimer quoi que ce soit : si une colonne de recherche pointe vers une table, ou si la navigation d’une application ouvre une vue, la supprimer les casserait, et la plateforme le refusera.
  • Requiert — ce dont le composant lui-même dépend. C’est la liste qui explique pourquoi l’importer seul dans un autre environnement échouerait : tout ce qui y figure doit voyager avec lui, ou s’y trouver déjà.

Chaque ligne indique ce qu’est l’autre composant, à quelle table il appartient le cas échéant, et pourquoi il figure dans la liste — « une colonne de recherche pointe vers lui », « une colonne tire ses valeurs de lui », « un rôle de sécurité accorde une autorisation sur lui », etc.

La réponse est calculée à partir des métadonnées de l’environnement à chaque ouverture du panneau : elle n’est donc jamais obsolète. Elle n’est pas non plus limitée à cette solution : la question porte sur ce qui existe dans l’environnement, quelle que soit la personne qui l’a installé.

Dépendances n’est pas disponible pour les applications personnalisées, les contrôles personnalisés, les ressources web, les processus, les API personnalisées et les portails. Ceux-ci ne sont pas décrits par les mêmes métadonnées — rien ne lit ce que touche le script d’une API personnalisée, et les liens d’un portail vers l’écran qu’il publie et les tables qu’il peut lire ne sont pas modélisés — plutôt que de vous montrer un panneau vide qui aurait l’air d’une réponse, la commande est donc désactivée.

Retirer un élément d’une solution​

Sélectionnez le composant et choisissez Retirer de la solution. Seule son appartenance à cette solution est retirée — le composant lui-même reste dans l’environnement et dans la solution par défaut (« Main »), et aucune donnée n’est détruite. Pour retirer un seul formulaire, une vue, un champ ou une relation d’une solution, rouvrez le sélecteur de composants de sa table et décochez sa case.

attention

Retirer ne vérifie pas ce qui a encore besoin du composant. Si une colonne de cette solution prend ses valeurs dans la liste de choix que vous retirez, la solution s’exporte quand même, et sa prochaine importation dans un environnement qui n’a pas cette liste est refusée. Sélectionnez le composant et ouvrez d’abord Dépendances : ce qui figure sous Requis par et se trouve dans cette solution en a besoin.

Ce qui se passe en coulisses​

Ajouter un composant existant enregistre qu’il appartient à cette solution — un composant peut appartenir à plusieurs solutions non gérées. Le sélecteur de composants enregistre exactement quels sous-composants d’une table appartiennent à la solution ; l’enregistrer ajoute ceux qui viennent d’être cochés et retire ceux qui viennent d’être décochés, sans toucher aux autres tables. Retirer un composant ne retire que cette appartenance ; cela ne supprime pas le composant lui-même. La solution par défaut (« Main ») est l’exception — elle contient toujours tous les composants, ne propose donc pas de sélecteur de composants, et rien ne peut en être retiré.

Dépannage​

  • « field '…' references '…', which is neither in the package nor in this environment. » — affiché à l’importation. Une colonne du package fait référence à une table, ou prend ses valeurs dans une liste de choix (groupe d’options), que le package ne transporte pas et que l’environnement n’a pas. Rien n’a été importé. Si une autre solution l’apporte, importez d’abord cette solution. Sinon, dans l’environnement d’où vous avez exporté, sélectionnez la table dans la vue d’ensemble de la solution, choisissez Dépendances, ajoutez ce qui figure sous Requiert avec Ajouter un existant, puis exportez de nouveau. Le composant de n’importe quel éditeur peut être ajouté ; son préfixe n’a pas à correspondre à celui de la solution.
  • « Component … already exists in the solution. » — ce composant est déjà référencé par la solution.

Scénarios associés​

  • Créer une solution.
  • Créer un éditeur.