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. Un exemple de dépendance est le suivant : étant donné qu’un champ est requis pour qu’un formulaire fonctionne, si vous essayez d’exécuter une action qui entraînera la suppression de ce champ, le formulaire cessera de fonctionner.
Note
Dans cet article, supprimer signifie que le composant est complètement supprimé du système.
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 supprimeront un composant requis. Les actions qui peuvent supprimer un composant sont différentes, selon qu’il est géré ou non géré.
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
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
- La désinstallation de la solution 2 n’entraîne pas la suppression d’un composant. Seule cette couche sera 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
- La désinstallation de la solution 3 n’entraîne pas la suppression d’un composant. Seule cette couche sera supprimée.
- La désinstallation de la solution 2 n’entraîne pas la suppression d’un composant. Seule cette couche sera 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
- La désinstallation de la couche active (non gérée) ne provoque pas de suppression de composant. Seule cette couche sera 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 seront 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înera 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
Prenons l’exemple du scénario suivant. L’organisation ci-dessous propose deux solutions : Solution – Workflow et Solution – Entité personnalisée.
Le propriétaire de l’organisation a décidé qu’ils n’avaient plus besoin de Solution – Entité personnalisée, a tenté de la supprimer et s’est vu présenter la page suivante :
Sans entrer dans les détails, nous pouvons conclure que la désinstallation de la solution tente de supprimer une entité nommée Entité personnalisée et trois champs, Entité personnalisée, Nom et Champ numérique, et les quatre composants ont des dépendances.
Note
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 aidera à savoir que faire pour supprimer la dépendance.
La figure suivante montre les détails de la dépendance entre l’entité (Entité personnalisée) et le processus (Workflow de test).
Sur la base des données affichées, vous pouvez voir que le composant dépendant appartient à une solution nommée SolutionWorkflow. Pour supprimer cette dépendance, nous pouvons soit :
- Mettez à jour la définition du workflow dans SolutionWorkflow en supprimant toutes les références à l’entité 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 l’entité (Entité personnalisée) et une application pilotée par modèle (My App).
Sur la base des données affichées, vous pouvez voir 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.
Note
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 :
- Dans l’organisation cible, inspectez le lien Couches de solution pour trouver la solution la plus élevée dans la liste des composants dépendants.
- Dans l’organisation source, préparez une nouvelle version de cette solution, où la solution ne contient pas le composant dépendant, ou a 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.
- Exporter la nouvelle version de la solution.
- Dans l’organisation cible, Mettez à niveau cette solution.
- 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 :
- Dans l’organisation cible, désinstallez la solution intermédiaire (la solution qui se termine par _Upgrade).
- Dans l’organisation source, ajoutez à nouveau les composants nécessaires à la solution.
- Exportez la nouvelle version.
- 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 :
Vous essayez de désinstaller Solution – Entité personnalisée et que l’opération est bloquée par des dépendances.
Vous commencez à diagnostiquer la dépendance en sélectionnant Couches de solution sur l’attribut new_numberfield. L’écran suivant s’affiche :
É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 :
Cependant, l’attribut new_numberfield n’est plus répertorié, même s’il 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 un attribut et un formulaire, vous devez le modifier dans l’éditeur de formulaires et supprimer l’attribut du formulaire. La dépendance sera supprimée après avoir sélectionné Enregistrer et Publier.
Note
- 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
- Vous pouvez également supprimer le composant dépendant. Cette action supprime toutes les dépendances avec 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 du champ sélectionné. En d’autres termes, ces composants auront ce champ comme composant nécessaire.
- Composants nécessaires : liste des composants requis par ce champ pour fonctionner. En d’autres termes, ces composants auront ce champ comme composant dépendant.