Partager via


Vue d’ensemble de la suppression des dépendances

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. Les dépendances sont des enregistrements créées automatiquement par l’infrastructure de solutions pour empêcher la suppression des composants requis alors qu’un ou plusieurs composants dépendants contiennent encore des références à eux.

Exemple de dépendance : étant donné qu’un champ est requis pour qu’un formulaire fonctionne, lorsque vous essayez d’exécuter une action qui entraîne la suppression de ce champ, le formulaire cesse de fonctionner.

Un autre exemple est lorsque vous essayez de supprimer le plan du site pour une application pilotée par modèle. Le système indique qu’il existe une dépendance vis-à-vis de l’application. L’application est le composant dépendant et le plan du site est le composant requis. Le système vous empêche de supprimer le plan du site tant que vous n’avez pas supprimé la dépendance.

Le système détecte une dépendance où l’application est dépendante du plan du site.

Nonte

Supprimer signifie que le composant est complètement supprimé de Microsoft Dataverse.

Dans cet article, nous expliquons comment gérer ces dépendances et les stratégies à appliquer pour supprimer les dépendances dont vous n’avez plus besoin.

Dépendances des composants non gérés par rapport aux composants gérés

Tout d’abord, il est important de comprendre que les dépendances empêchent uniquement les opérations qui suppriment un composant requis. Les actions qui peuvent supprimer un composant sont différentes, selon qu’il est géré ou non géré.

Il est bon de se familiariser avec le concept de couches de solution et de composants lors de la description des dépendances. Si vous n’êtes pas familier, nous vous recommandons de lire cet article avant de continuer : Couches de solution

Composants non gérés

Ces composants sont représentés par une seule couche dans la solution active. Toute opération Supprimer appliquée à un tel composant entraîne la suppression complète du composant.

Composants gérés

La suppression des composants gérés dépend de plusieurs facteurs : le nombre de couches de solution, la position relative de la couche en cours de désinstallation et les éditeurs du composant. Par exemple, lorsqu’un composant est supprimé, envisagez les scénarios suivants et imaginez le comportement attendu lorsque vous désinstallez les différentes couches.

Exemples de scénarios

Les exemples de scénarios suivants illustrent ce qui arrive aux couches de solutions lorsque les solutions sont désinstallées.

Scénario 1 : désinstaller une seule couche de solution

Désinstallez avec une seule couche.

La désinstallation de la solution 1 entraîne la suppression d’un composant car il s’agit de la seule couche du composant.

Scénario 2 : désinstaller des couches de solution de différents éditeurs

Désinstallez avec deux couches - Éditeur différent.

  • La désinstallation de la solution 2 n’entraîne pas la suppression d’un composant. Seule cette couche est supprimée.
  • La désinstallation de la solution 1 entraîne la suppression d’un composant, car cette action a lieu dans la couche de base. En fait, la solution 1 ne peut pas être désinstallée dans ce scénario, car une solution d’un autre éditeur étend le composant.

Scénario 3 : désinstaller plusieurs couches de solution de différents éditeurs

Désinstallez avec plusieurs couches - Éditeur différent.

  • La désinstallation de la solution 3 n’entraîne pas la suppression d’un composant. Seule cette couche est supprimée.
  • La désinstallation de la solution 2 n’entraîne pas la suppression d’un composant. Seule cette couche est supprimée.
  • La désinstallation de la solution 1 n’entraîne pas la suppression d’un composant, car dans ce cas, il existe une autre solution du même éditeur (Éditeur A = Éditeur C). La plateforme supprime la couche de la solution 1 et la remplace par la couche de la solution 3.

Scénario 4 : désinstaller des couches de solution dans une personnalisation non gérée

Désinstallez avec deux couches - Personnalisation non gérée.

  • La désinstallation de la couche active (non gérée) ne provoque pas de suppression de composant. Seule cette couche est supprimée. Notez que vous ne pouvez pas désinstaller la solution active, mais vous pouvez supprimer des composants en utilisant la fonctionnalité Supprimer la personnalisation active.
  • La désinstallation de la solution 1 entraîne la suppression d’un composant. L’action se produit dans la couche de base. Contrairement au scénario 2, vous pouvez désinstaller la solution 1. La solution Active n’est pas considérée comme une extension et les deux couches sont supprimées.

Afficher la page des dépendances

La commande Afficher les dépendances répertorie les dépendances pour la solution ou le composant de la solution sélectionné. Elle peut être appelée :

  • En sélectionnant Afficher les dépendances sur la page de la solution.
  • En sélectionnant Avancé>Afficher les dépendances dans une solution lorsqu’un composant de la solution est sélectionné.
  • En essayant de désinstaller une solution, ce qui entraîne la détection par la plateforme de l’existence de dépendances.

À partir de la page Dépendances, vous pouvez ouvrir, retirer ou supprimer le composant. Pour plus d’informations, voir Afficher les dépendances d’un composant

Diagnostic des dépendances

Considérez ce scénario. L’environnement ici propose deux solutions : Solution – Workflow et Solution – Entité personnalisée.

Liste de solutions avec deux solutions.

Un créateur d’environnement décide qu’il n’a plus besoin de la Solution – Entité personnalisée. Le créateur a essayé de le supprimer et s’est vu présenter la page suivante :

Détails des dépendances après avoir tenté de supprimer une solution.

La désinstallation de la solution tente de supprimer une table nommée Entité personnalisée et trois champs : Entité personnalisée, Nom et Champ numérique, et les quatre composants ont des dépendances.

Nonte

La désinstallation de la solution peut potentiellement supprimer davantage de composants, mais comme ils n’ont pas de dépendances, ils n’apparaissent pas dans la liste.

L’étape suivante consiste à vérifier le lien Couches de solution (colonne la plus à droite) pour chaque dépendance. Cela vous aide à savoir que faire pour supprimer la dépendance.

La figure suivante montre les détails de la dépendance entre la table (Entité personnalisée) et le processus (Workflow de test).

Détails des dépendance de la table personnalisée.

Sur la base des données affichées, vous pouvez observer que le composant dépendant appartient à une solution nommée SolutionWorkflow. Pour supprimer cette dépendance, vous pouvez soit :

  • Mettez à jour la définition du workflow dans SolutionWorkflow en supprimant toutes les références à la table ou à ses sous-composants. Puis Mettre à jour ou Mettre à niveau la solution.
  • Désinstallez la solution SolutionWorkflow.
  • Supprimez le workflow d’une nouvelle version de la solution SolutionWorkflow, puis effectuez une Mise à niveau.

Étant donné qu’un composant dépendant peut empêcher la suppression de la solution, nous vous recommandons de vérifier toutes les dépendances et d’effectuer toutes les modifications requises en une seule opération.

La figure suivante montre les détails de la dépendance entre la table (Entité personnalisée) et une application pilotée par modèle (MyApp).

Dépendance entre la table (Entité personnalisée) et l’application (My App).

Sur la base des données affichées, vous pouvez observer que le composant dépendant appartient à une solution nommée Active. Cela indique que la dépendance a été créée en important une solution non gérée ou via une personnalisation non gérée exécutée via l’interface utilisateur ou l’API moderne.

Pour supprimer cette dépendance, vous pouvez soit :

  • Modifiez la définition de l’application pilotée par modèle pour supprimer toute référence à l’entité ou à ses sous-composants. Étant donné que les applications pilotées par modèle prennent en charge la publication, vous devez publier vos modifications.
  • Supprimez l’application pilotée par modèle.

Nonte

La désinstallation d’une solution non gérée n’est pas une option pour supprimer cette dépendance, car les solutions non gérées ne sont qu’un moyen de regrouper des composants.

Actions pour supprimer une dépendance gérée

Les dépendances gérées sont celles où le composant dépendant est associé à une solution gérée. Pour résoudre ce type de dépendance, vous devez agir sur la solution où le composant a été ajouté. Cette action peut être différente selon ce que vous essayez de faire.

Si vous essayez de désinstaller une solution

Procédez comme suit :

  1. Dans l’environnement cible, inspectez le lien Couches de solution pour trouver la solution la plus élevée dans la liste des composants dépendants.
  2. Dans l’environnement source, préparez une nouvelle version de cette solution, où la solution ne contient pas le composant dépendant, ou comporte une version mise à jour du composant dépendant qui ne contient pas de références au composant nécessaire. Votre objectif est de supprimer toute référence aux composants nécessaires dans la nouvelle version de la solution.
  3. Exporter la nouvelle version de la solution.
  4. Dans l’environnement cible, Mettez à niveau cette solution.
  5. Réessayez la désinstallation.

Si vous essayez de mettre à niveau une solution

Dans ce cas, vous devez confirmer que vous souhaitez supprimer le composant nécessaire (n’oubliez pas que les dépendances ne sont appliquées qu’aux composants qui sont en cours de suppression).

Si vous ne souhaitez pas supprimer le composant, vous pouvez corriger la nouvelle version de la solution en rajoutant le composant, en procédant comme suit :

  1. Dans l’environnement cible, désinstallez la solution intermédiaire (la solution qui se termine par _Upgrade).
  2. Dans l’environnement source, ajoutez à nouveau les composants nécessaires à la solution.
  3. Exportez la nouvelle version.
  4. Réessayez la mise à niveau.

Si la suppression est intentionnelle, vous devez supprimer la dépendance. Essayez les étapes décrites dans la section précédente, Si vous essayez de désinstaller une solution.

Couches et dépendances

Les composants dépendants peuvent être superposés en couches ; vous devrez donc peut-être modifier plusieurs solutions pour supprimer complètement une dépendance. Le cadre de dépendance calcule uniquement les dépendances entre les couches supérieures pour les composants nécessaires et dépendants. Cela signifie que vous devez œuvrer de haut en bas dans les solutions du composant dépendant.

Prenons l’exemple du scénario suivant :

Choisir une solution à désinstaller.

Vous essayez de désinstaller Solution – Entité personnalisée et que l’opération est bloquée par des dépendances.

Dépendances bloquant la désinstallation de la solution.

Vous commencez à diagnostiquer la dépendance en sélectionnant Couches de solution sur l’attribut new_numberfield. L’écran suivant s’affiche :

Dépendance entre l’attribut new_numberfield et le flux de travail workflow de test.

Étant donné que les dépendances sont créées uniquement entre les couches supérieures de chaque composant, la première étape consiste à gérer la dépendance entre l’attribut new_numberfield dans SolutionCustomEntity et le workflow Workflow de test dans SolutionWorkflow3.

Pour supprimer la dépendance, vous décider de désinstaller SolutionWorkflow3. Vous le faites, mais lorsque vous essayez de désinstaller la solution encore une fois, la même page de dépendances vous est présentée :

Dépendances bloquant la désinstallation de la Solution - Entité personnalisée.

Cependant, la colonne new_numberfield n’est plus répertoriée, même si elle existait dans d’autres couches.

Actions pour supprimer une dépendance non gérée

Pour supprimer les dépendances non gérées, vous devez agir directement sur les composants, et non sur les solutions auxquelles ils appartiennent. Par exemple, si vous souhaitez supprimer les dépendances entre une colonne et un formulaire, vous devez les modifier dans l’éditeur de formulaires et supprimer la colonne du formulaire. La dépendance est supprimée après avoir sélectionné Enregistrer et Publier.

Nonte

  • La commande Afficher les dépendances vous permet d’effectuer des actions pour afficher, supprimer la dépendance, modifier le composant ou supprimer le composant. Pour plus d’informations, voir Afficher les dépendances d’un composant
  • Le bouton Afficher les dépendances s’affiche lorsque vous essayez de supprimer un composant qui comporte des dépendances. Bien que cet écran vous permette d’afficher la dépendance, il ne vous permet pas d’agir.
  • Lorsque vous supprimez le composant dépendant, l’action supprime toutes les dépendances, ainsi que le composant.

Pour afficher les dépendances d’un composant, dans la zone Solutions, ouvrez la solution souhaitée, sélectionnez les points de suspension verticaux en regard du composant, puis sélectionnez Avancé>Afficher les dépendances.

La page des dépendances comprend deux parties distinctes :

  • Composants dépendants : liste des composants qui dépendent de la colonne sélectionnée. En d’autres termes, ces composants ont cette colonne comme composant nécessaire.
  • Composants nécessaires : liste des composants requis par cette colonne pour fonctionner. En d’autres termes, ces composants ont cette colonne comme composant dépendant.

Dépendances de composant.

Étapes suivantes