Partager via


Suivi de dépendance pour les composants de solution

Les solutions sont constituées de composants de solution. Vous utilisez la zone Solutions dans Microsoft Dataverse pour créer ou ajouter des composants de solution. Vous pouvez effectuer ces actions par programme à l’aide du message AddSolutionComponentRequest ou de n’importe quel message permettant de créer ou de mettre à jour des composants de solution incluant un paramètre SolutionUniqueName.

Les composants de solution dépendent souvent d’autres composants de solution. Vous ne pouvez supprimer aucun composant de solution comportant des dépendances sur d’autres composants de solution. Par exemple, un ruban personnalisé nécessite généralement des ressources web d’image ou de script pour afficher des icônes et pour effectuer des actions avec des scripts. Tant que le ruban personnalisé est dans la solution, les ressources web spécifiques qu’il utilise sont requises. Avant de pouvoir supprimer les ressources web, vous devez supprimer les références à celles-ci dans le ruban personnalisé. Ces dépendances des composants de solution peuvent être affichées dans l’application en sélectionnant Afficher les dépendances.

Cet article décrit les types de composants de solution que vous pouvez inclure dans vos solutions et comment ils dépendent les uns des autres.

Tous les composants de solution

La liste complète des types de composants de solution disponibles se trouve dans la colonne de choix global componenttype du système. La plage de valeurs prise en charge pour cette propriété est disponible en incluant le fichier OptionSets.cs ou OptionSets.vb dans votre projet. Toutefois, un grande nombre de types de composants de solution répertoriés ici sont destinés à une utilisation interne uniquement et la liste ne contient pas d’informations sur les relations entre les composants de solution.

Dépendances des composants de solution

Les dépendances des composants de solution permettent de vous assurer que vous utilisez les solutions fiables. Elles empêchent les actions que vous entreprenez habituellement de nuire involontairement à des personnalisations définies dans une solution. Ces dépendances permettent d’installer et de désinstaller une solution gérée simplement en important ou en supprimant une solution.

La structure des solutions effectue automatiquement le suivi des dépendances des composants de solution. Chaque opération sur un composant de solution calcule automatiquement toutes les dépendances à d’autres composants du système. Les informations de dépendance sont utilisées pour préserver l’intégrité du système et pour empêcher les opérations qui peuvent entraîner un état incohérent.

Suite au suivi des dépendances, les comportements suivants sont appliqués :

  • La suppression d’un composant est empêchée si un autre composant du système en dépend.

  • L’exportation d’une solution prévient l’utilisateur si des composants manquants peuvent provoquer un échec lors de l’importation de cette solution dans un autre environnement.

    Les avertissements pendant l’exportation peuvent être ignorés si le développeur de la solution prévoit que la solution doit uniquement être installée dans un environnement où des composants dépendants devraient exister. Par exemple, lorsque vous créez une solution conçue pour être installée sur une solution « de base » préinstallée.

  • L’importation d’une solution échoue si tous les composants requis ne sont pas inclus dans la solution, ni n’existent dans l’environnement cible.

  • En outre, lorsque vous importez une solution gérée, tous les composants requis doivent correspondre au type de package de la solution. Un composant dans une solution gérée peut uniquement dépendre d’un autre composant géré.

Il existe trois types de dépendances des composants de solution :

  • Interne à la solution. Les dépendances internes sont gérées par Dataverse. Ces dépendances existent lorsqu’un composant de solution spécifique ne peut pas exister sans un autre composant de solution.
  • Publié. Les dépendances publiées sont créées lorsque deux composants de solution sont associés puis publiés. Pour supprimer ce type de dépendance, l’association doit être supprimée et les tables republiées.
  • Non publié. Les dépendances dont la publication a été annulée s’appliquent à la version non publiée d’un composant de solution publiable en cours de mise à jour. Une fois le composant de solution publié, il devient une dépendance publiée.

Les dépendances internes de solution sont des dépendances où les actions avec un composant de solution nécessitent une action avec un autre composant de solution. Par exemple, si vous supprimez une table, tous les attributs de la table devraient être supprimés avec elle. Toutes les relations de table avec d’autres tables sont également supprimées.

Toutefois, une dépendance interne peut conduire à une dépendance publiée et nécessiter quand même une intervention manuelle. Par exemple, si vous incluez un champ de recherche dans un formulaire de table, puis vous supprimez la table principale dans la relation, vous ne pouvez pas effectuer cette suppression tant que vous n’avez pas supprimé la colonne de recherche du formulaire de table associé puis publié le formulaire.

Lorsque vous effectuez des actions par programme avec les solutions, vous pouvez utiliser les messages associés à la table Dependency. Accédez à Entité de dépendance pour voir les messages que vous pouvez utiliser pour identifier les dépendances pouvant exister avant de supprimer un composant ou de désinstaller une solution.

Composants de solution courants

Voici les composants de solution affichés dans l’application et les composants que vous utilisez directement lors de l’ajout ou de la suppression des composants de solution à l’aide de la page de la solution. Chacun des autres types de composants de solution dépend d’un ou de plusieurs de ces composants de solution pour exister.

Rubans de l’application (RibbonCustomization)

Personnalisations de ruban pour les modèles de ruban de l’application et de la table. Les rubans de l’application n’incluent pas les définitions des rubans au niveau de la table ou du formulaire.

Les rubans d’application personnalisés possèdent fréquemment des dépendances sur les ressources Web. Les ressources Web sont utilisées pour définir les icônes des boutons du ruban et les fonctions JavaScript permettant de contrôler l’affichage des éléments de ruban ou les actions exécutées lorsqu’un contrôle spécifique du ruban est utilisé. Les dépendances sont créées uniquement lorsque les définitions de ruban utilisent la directive $webresource: pour associer la ressource Web au ruban. Pour plus d’informations : Directive $webresource

Modèle d’article (KBArticleTemplate)

Modèle contenant les attributs standard d’un article. Il existe toujours une dépendance interne entre le modèle d’article et la table KbArticle.

Rôle de connexion (ConnectionRole)

Rôle décrivant une relation entre deux enregistrements. Chaque rôle de connexion définit les types d’enregistrements d’entités pouvant être liés à l’aide du rôle de connexion. Cela crée une dépendance publiée entre le rôle de connexion et la table.

Modèle de contrat (ContractTemplate)

Modèle contenant les attributs standard d’un contrat. Il existe toujours une dépendance interne entre le modèle de contrat et la table de contrat.

Tableau de bord ou formulaire d’entité (SystemForm)

Les enregistrements de table de formulaire système permettent de définir des tableaux de bord et des formulaires de table. Lorsqu’un SystemForm est utilisé comme formulaire de table, il existe une dépendance interne sur la table. Lorsqu’un SystemForm est utilisé comme tableau de bord, il n’existe aucune dépendance interne. Les formulaires de table et les tableaux de bord ont généralement des dépendances publiées associées à leur contenu. Un formulaire de table peut avoir des colonnes de recherche qui dépendent d’une relation de table. Les tableaux de bord et les formulaires de table peuvent contenir des graphiques ou des sous-grilles qui créent une dépendance publiée sur une vue, qui a ensuite une dépendance interne sur une table. Une dépendance publiée sur les ressources Web peut être créée en raison de contenu affiché dans le tableau de bord ou dans le formulaire ou lorsqu’un formulaire contient les bibliothèques JavaScript. Les formulaires de table ont des dépendances publiées sur tous les attributs affichés comme colonnes dans le formulaire.

Modèle de courrier électronique (EmailTemplate)

Modèle contenant les attributs standard d’un message électronique. Un modèle de courrier électronique comprend généralement des colonnes qui insèrent des données à partir d’attributs de table spécifiés. Un modèle de courrier électronique peut être lié à une table spécifique lors sa création, il peut donc y avoir une dépendance interne sur la table. Un modèle de courrier électronique global n’est pas associé à une table spécifique, mais il peut avoir des dépendances publiées sur les attributs de table utilisés pour fournir des données. Un processus (workflow) est souvent configuré pour envoyer un courrier électronique à l’aide d’un modèle de courrier électronique pour créer une dépendance publiée avec le workflow.

Entité (Entity)

Les tables, anciennement appelées entités, sont la structure principale utilisée pour modéliser et gérer les données dans Dataverse. Les graphiques, les formulaires, les relations de table, les vues et les attributs associés à une table sont automatiquement supprimés lorsque la table est supprimée en raison des dépendances internes entre eux. Les tables ont souvent des dépendances publiées avec des processus, des tableaux de bord et des modèles de courrier électronique.

Profil de sécurité de colonne (FieldSecurityProfile)

Profil qui définit le niveau d’accès des attributs sécurisés.

Modèle de publipostage (MailMergeTemplate)

Modèle qui contient les attributs standard d’un document de publipostage. Un modèle de publipostage a une dépendance publiée sur la table à laquelle il est associé.

Groupe d’options (OptionSet)

Une colonne de choix, anciennement appelée groupe d’options, définit un ensemble d’options. Un attribut de liste de sélection utilise un choix pour définir les options fournies. Plusieurs attributs de liste de sélection peuvent utiliser un choix global afin que les options qu’ils fournissent soient toujours les mêmes et puissent être gérées dans un emplacement unique. Une dépendance publiée se produit lorsqu’un attribut de liste de sélection fait référence à un choix global. Vous ne pouvez pas supprimer un choix global utilisé par un attribut de liste de sélection.

Assembly de plug-in (PluginAssembly)

Assembly qui contient un ou plusieurs types de plug-in. Les plug-ins sont enregistrés dans les événements qui sont généralement associés à une table. Cela crée une dépendance publiée.

Processus (Workflow)

Ensemble de règles logiques qui définissent les étapes nécessaires pour automatiser un processus d’entreprise, une tâche ou un ensemble d’actions spécifiques à effectuer. Les processus fournissent un large éventail d’actions qui créent des dépendances publiées sur tout autre composant de solution référencé par le processus. Chaque processus a également une dépendance publiée sur la table à laquelle il est associé.

Rapport (Report)

Synthèse des données dans une présentation facile à lire. Un rapport a des dépendances publiées sur les données de table ou d’attribut incluses dans le rapport. Chaque rapport doit également être associé à une catégorie de rapport afin de créer une dépendance interne sur un composant de solution appelé Catégorie liée au rapport (ReportCategory). Les rapports peuvent être configurés comme des sous-rapports qui créent une dépendance publiée avec le rapport parent.

Étape de traitement du message SDK (SDKMessageProcessingStep)

Étape du pipeline d’exécution que doit exécuter un plug-in.

Rôle de sécurité (Role)

Groupe de privilèges de sécurité. Des rôles de sécurité sont attribués aux utilisateurs pour les autoriser à accéder au système Dataverse. Les formulaires de table peuvent être associés à des rôles de sécurité spécifiques pour contrôler qui peut afficher le formulaire. Cela crée une dépendance publiée entre le rôle de sécurité et le formulaire.

Note

Seuls les rôles de sécurité de la division de l’environnement peuvent être ajoutés à une solution. Seul un utilisateur ayant accès en lecture à ces rôles de sécurité peut les ajouter à une solution.

Point de terminaison de service (ServiceEndpoint)

Point de terminaison de service pouvant être contacté.

Plan de site (SiteMap)

Données XML utilisées pour contrôler le volet de navigation de l’application. Le plan de site peut être lié pour afficher une ressource web HTML ou une icône dans le plan de site peut utiliser une ressource web d’image. Lorsque la directive $webresource: est utilisée pour établir ces associations, une dépendance publiée est créée. Pour plus d’informations : Directive $webresource

Ressource Web (WebResource)

Données équivalentes aux fichiers utilisés pour étendre une application pilotée par modèle ou dans le développement web. Les ressources web fournissent des composants client utilisés pour fournir des éléments d’interface utilisateur personnalisés. Les ressources web peuvent avoir des dépendances publiées sur les formulaires de table, les rubans et le plan de site. Lorsque la directive $webresource: est utilisée pour établir ces associations dans un ruban ou le plan de site, une dépendance publiée est créée. Pour plus d’informations, accédez à Directive $webresource.

Note

Les ressources web peuvent dépendre d’autres ressources web basées sur les liens relatifs. Par exemple, une ressource web HTML peut utiliser une ressource web CSS ou de script. Une ressource web Silverlight affichée en dehors d’un formulaire de table ou d’un graphique doit avoir une ressource web HTML pour l’héberger. Ces dépendances ne sont pas suivies en tant que dépendances de solution.

Voir aussi