Suivi de dépendance pour les composants de solution

Les solutions sont constituées de composants de solution. Vous allez utiliser 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 dans le ruban personnalisé. Ces dépendances de composants de solution peuvent être affichées dans l’application en cliquant sur Afficher les dépendances.

Cette rubrique 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 solutions disponibles se trouve dans le groupe d’options global système componenttype. 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 entraîner une défaillance lors de l’importation de cette solution dans un autre système.

    Les avertissements reçus au cours de l’exportation peuvent être ignorés si le développeur de la solution prévoit que la solution sera uniquement installée dans une organisation où les composants dépendants sont censés 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 et n’existent pas non plus dans le système 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 :

    Solution interne
    Les dépendances internes sont gérées par Dataverse. Elles 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 entités 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 entité, vous devez vous attendre à ce que tous les attributs d’entités soient supprimés avec elle. Les entités-relations avec d’autres entités seront également supprimées.

    Toutefois, une dépendance interne peut conduire à une dépendance publiée et nécessiter une intervention manuelle. Par exemple, si vous incluez un champ de recherche dans un formulaire d’entité, puis que vous supprimez l’entité principale dans la relation, vous ne pouvez pas poursuivre cette suppression tant que vous n’avez pas supprimé le champ de recherche dans le formulaire d’entité associé et publié ensuite le formulaire.

    Lorsque vous effectuez des actions par programme avec des solutions, vous pouvez utiliser les messages associés à l’entité Dependency. Consultez Entité Dependancy 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 utiliserez directement lors de l’ajout ou de la suppression des composants de solution à l’aide de la page de solution. Pour exister, tous les autres types de composants de solution dépendront d’un ou de plusieurs de ces composants de solution.

Rubans de l’application (RibbonCustomization) Entité (Entity) Rapport (Report)
Modèle d’article (KBArticleTemplate) Profil de sécurité de champ (FieldSecurityProfile) Étape de traitement du message SDK (SDKMessageProcessingStep)
Rôle de connexion (ConnectionRole) Modèle de publipostage (MailMergeTemplate) Rôle de sécurité (Role)
Modèle de contrat (ContractTemplate) Groupe d’options (OptionSet) Point de terminaison de service (ServiceEndpoint)
Tableau de bord ou formulaire d’entité (SystemForm) Assembly de plug-in (PluginAssembly) Plan de site (SiteMap)
Modèle de courrier électronique (EmailTemplate) Processus (Workflow) Ressource web (WebResource)

Rubans de l’application (RibbonCustomization)

Personnalisations de ruban pour le ruban de l’application et les modèles de ruban de l’entité. Les rubans de l’application n’incluent pas les définitions des rubans au niveau de l’entité 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 l’entité 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 l’entité.

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 l’entité Contract.

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

Les enregistrements d’entités de formulaire système permettent de définir des tableaux de bord et des formulaires d’entités. Lorsqu’un SystemForm est utilisé comme formulaire d’entité, il existe une dépendance interne sur l’entité. Lorsqu’un SystemForm est utilisé comme tableau de bord, aucune dépendance interne n’existe. Les formulaires d’entités et les tableaux de bord présentent souvent des dépendances publiées associées à leur contenu. Un formulaire d’entité peut posséder des champs de recherche qui dépendent d’une entité-relation. Les tableaux de bord et les formulaires d’entités peuvent contenir des graphiques ou des sous-grilles qui créeront une dépendance publiée dans une vue, qui inclut ensuite une dépendance interne dans une entité. 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 d’entités présentent des dépendances publiées sur tous les attributs affichés sous forme de champs 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 les champs qui insèrent les données à partir d’attributs d’entité spécifiés. Un modèle de courrier électronique peut être lié à une entité spécifique lors sa création, de sorte qu’une dépendance interne soit présente sur l’entité. Un modèle de courrier électronique global n’est pas associé à une entité spécifique, mais peut avoir des dépendances publiées sur les attributs d’entité 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)

Principale structure utilisée pour modéliser et gérer les données dans Dataverse. Les graphiques, formulaires, entités-relations, vues et attributs associés à une entité sont automatiquement supprimés lorsque l’entité est supprimée en raison des dépendances internes entre eux. Les entités possèdent souvent des dépendances publiées à des processus, des tableaux de bord et des modèles de courrier électronique.

Profil de sécurité de champ (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 présente une dépendance publiée sur l’entité à laquelle il est associé.

Groupe d’options (OptionSet)

Un groupe d’options définit un ensemble d’options. Un attribut de liste déroulante utilise un groupe d’options pour définir les options fournies. Plusieurs attributs de liste déroulante peuvent utiliser un groupe d’options global de sorte que les options fournies soient toujours identiques et puissent être gérées dans un emplacement unique. Une dépendance publiée se produit lorsqu’un attribut de liste déroulante fait référence à un groupe d’options global. Vous ne pouvez pas supprimer un groupe d’options global utilisé par un attribut de liste déroulante.

Assembly de plug-in (PluginAssembly)

Assembly qui contient un ou plusieurs types de plug-in. Les plug-ins sont enregistrés auprès d’événements qui sont généralement associés à une entité. 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 présente également une dépendance publiée sur l’entité à laquelle il est associé.

Rapport (Report)

Synthèse des données dans une présentation facile à lire. Un rapport a publié des dépendances publiées sur toutes les données d’entités ou d’attributs 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 pour être 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 sont attribués aux utilisateurs pour les autoriser à accéder au système Dataverse. Les formulaires d’entités 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’organisation 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 en 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 avec des formulaires d’entités, des rubans et le plan de site. Lorsque la directive $webresource: est utilisée pour établir ces associations dans un ruban ou dans le plan de site, une dépendance publiée est créée. Pour plus d’informations, voir Directive $webresource.

Note

Les ressources web peuvent dépendre d’autres ressources web basées sur les liens connexes. Par exemple, une ressource web HTML peut utiliser une ressource CSS ou une ressource web de script. Une ressource Web Silverlight affichée en dehors d’un formulaire d’entité 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

Concepts de solution
Suppression des dépendances
Stratégie de l’environnement
Travailler avec des solutions à l’aide des API du kit de développement logiciel (SDK)]
Référence des entités de la solution
Référence de l’entité SolutionComponent