Comprendre la fusion des solutions gérées
Lorsque vous préparez votre solution gérée à être installée, n’oubliez pas qu’un environnement peut avoir déjà plusieurs solutions installées ou que d’autres solutions pourront être installées à l’avenir. Construisez une solution qui respecte les meilleures pratiques afin que votre solution n’interfère pas d’autres solutions.
Les processus utilisés par Microsoft Dataverse pour fusionner les personnalisations mettent en valeur la préservation des fonctionnalités de la solution. Bien que tous les efforts soient déployés pour conserver la présentation, certaines incompatibilités entre les personnalisations peuvent nécessiter que la résolution calculée modifie certains détails de présentation au profit du maintien des fonctionnalités de personnalisation.
Fusionner les personnalisation de formulaire
Les seules personnalisations de formulaire qui doivent être fusionnées sont celles exécutées sur les formulaires d’entités qui existent déjà dans l’environnement. En général, cela signifie que les personnalisations de formulaire ne doivent être fusionnées que lorsque votre solution personnalise les formulaires qui étaient inclus pour les entités créées lors de l’installation de Dataverse. Un moyen d’éviter la fusion de formulaires consiste à fournir de nouveaux formulaires pour les entités Dataverse. Les formulaires des entités personnalisées ne requièrent pas la fusion, à moins que vous ne créiez une solution qui met à jour ou modifie une solution gérée existante ayant créé les entités personnalisées et leurs formulaires.
Quand une solution est packagée en tant que solution gérée, les définitions de formulaire stockées dans FormXML sont comparées au FormXML d’origine et seules les différences sont incluses dans la solution gérée. Lorsque la solution gérée est installée dans un nouvel environnement, les différences entre personnalisations de formulaire sont alors fusionnées avec le FormXML du formulaire existant pour créer une nouvelle définition de formulaire. Cette nouvelle définition de formulaire est ce que l’utilisateur voit et qu’un personnalisateur de système peut modifier. Lorsque la solution gérée est désinstallée, seuls les éléments de formulaire présents dans la solution gérée sont supprimés.
La fusion de formulaires se produit section par section. Lorsque vous ajoutez de nouveaux éléments à un onglet ou une section existant, vos modifications peuvent affecter ou masquer les éléments des couches gérées, y compris lorsque l’élément géré est mis à jour. Ce problème se produit car les couches gérées se trouvent sous la couche non gérée que vous introduisez avec votre personnalisation. Si vous ne souhaitez pas affecter ou masquer les éléments gérés du formulaire, nous vous recommandons d’inclure vos nouveaux éléments dans de nouveaux éléments de conteneur, tels qu’une section ou un onglet. Cela isole vos éléments et réduit la possibilité d’affecter ou de masquer les éléments des couches gérées. Plus d’informations : Couches de solution
Les solutions gérées contenant des formulaires qui utilisent de nouveaux rôles de sécurité dépendent de ces rôles. Vous devez inclure ces rôles de sécurité dans votre solution gérée.
Lorsque vous importez une solution qui inclut des formulaires de table, l’option Remplacer les personnalisations, même si elle est sélectionnée, ne s’applique pas. Le formulaire en cours d’importation fusionne avec toutes les couches de solution existantes pour le formulaire.
Note
Lorsqu’une entité de solution gérée contient plusieurs formulaires et que le formulaire d’entité de l’environnement contient également plusieurs formulaires, les nouveaux formulaires ne sont pas ajoutés au bas de la liste des formulaires disponibles, mais insérés dans les formulaires d’entité originaux.
Identification et résolution des conflits de fusion de formulaires
Après avoir importé une solution qui inclut un formulaire, vous pouvez remarquer que le formulaire importé affiche un onglet nommé Onglet Conflits. Il s’agit d’un onglet généré automatiquement, qui est créé lorsque certains composants du formulaire ne peuvent pas fusionner. Pour éviter toute perte de données, les composants de formulaire qui ne peuvent pas fusionner sont placés sous l’onglet Conflits. Les conflits de fusion se produisent généralement lorsque les personnalisations source et cible ne sont pas synchronisées, ce qui entraîne des personnalisations de formulaire conflictuelles.
Évitez ces situations qui peuvent provoquer des conflits de fusion de formulaires :
Vous importez deux solutions différentes qui ajoutent un composant, tel qu’un onglet de formulaire, qui utilise la même valeur ordinale.
Vous personnalisez un composant du formulaire, tel qu’une section, dans l’environnement source, mais vous effectuez également une personnalisation identique ou similaire au composant dans l’environnement cible. Ensuite, vous exportez la personnalisation depuis l’environnement source et l’importez dans l’environnement cible.
Lorsque l’onglet Conflits apparaît sur un formulaire importé, vous pouvez déplacer le composant affiché quelque part sur le formulaire. Une fois que tous les composants sont déplacés de l’onglet Conflits, vous pouvez supprimer ou masquer l’onglet Conflits.
Fusionner les personnalisations de navigation (Plan de site)
Lorsque la solution est packagée comme solution gérée, le Plan de site XML est comparée au Plan de site XML et aux autres personnalisations apportées au Plan de site. Seules les différences sont incluses dans la solution gérée. Ces différences incluent les éléments qui sont modifiés, déplacés, ajoutés ou supprimés. Lorsque la solution gérée est installée dans un nouvel environnement, les modifications de Plan de site sont fusionnées avec le Plan de site XML de l’environnement où la solution gérée est installée. Une nouvelle définition de Plan de site apparaît.
À ce stade, un personnalisateur peut exporter le Plan de site vers une solution non gérée et cette définition de Plan de site contient tous les éléments du Plan de site actif. Un personnalisateur peut ensuite modifier le Plan de site et le réimporter comme personnalisation non gérée. Ultérieurement, si la solution gérée est désinstallée, le Plan de site XML qui a été importé avec la solution gérée est référencé pour supprimer les modifications introduites avec cette solution gérée. Un nouveau Plan de site actif est alors calculé.
Chaque fois qu’un nouvel élément visible est ajouté au Plan de site, celui-ci apparaît en bas du conteneur, quel qu’il soit, auquel il appartient. Par exemple, une nouvelle zone apparaît en bas de la zone de navigation. Pour positionner les éléments ajoutés, vous devez exporter le Plan de site, le modifier pour définir la position exacte des éléments, puis le réimporter en tant que solution non gérée.
Note
Une seule personnalisation de Plan de site peut être appliquée entre deux publications. Toutes les personnalisations du Plan de site non publiées seront perdues lorsqu’une nouvelle définition du Plan de site sera importée.
Fusionner les options d’un groupe d’options
Chaque nouvelle option d’un groupe d’options est initialisée avec une valeur entière incluant un préfixe de valeur d’option. Le préfixe de valeur d’option est un ensemble de cinq chiffres ajouté devant la valeur d’option. Un préfixe de valeur d’option est généré à partir du préfixe de personnalisation de l’éditeur de solutions, mais peut être défini avec n’importe quelle valeur. Le préfixe de valeur d’option permet de différencier les nouvelles options de groupe d’options créées dans le contexte d’un éditeur de solutions spécifique et réduit le risque de conflit entre valeurs d’option. L’utilisation du préfixe de valeur d’option est recommandée, mais pas requise.
Généralement, une solution gérée met à jour ou ajoute les options de groupes d’options qui sont déjà dans l’environnement : par exemple les groupes d’options Catégorie ou Secteur d’activité pour un compte. Lorsqu’une solution gérée modifie les options disponibles dans un groupe d’options, toutes les options définies dans la solution gérée sont disponibles dans l’environnement. Lorsque la solution gérée est désinstallée, les options du groupes d’options retournent à leur état d’origine.
Fusionner les privilèges du rôle de sécurité
Lorsqu’un rôle de sécurité est importé d’une solution gérée dans un environnement, tous les privilèges ajoutés manuellement de ce rôle de sécurité sont supprimés. Cependant, les privilèges modifiés du rôle de sécurité où le niveau de privilège a été modifié, par exemple d’une portée basique à une portée globale ou inversement, demeurent.
Astuce
Utilisez la même solution personnalisée pour gérer la mise à jour des rôles de sécurité. Si vous utilisez une nouvelle solution personnalisée pour mettre à jour un rôle de sécurité qui a été précédemment mis à jour dans une autre solution, certaines des mises à jour du privilège ne sont pas appliquées.
N’utilisez pas de solution personnalisée pour modifier les rôles de sécurité prédéfinis. Ces mises à jour sont supprimées lorsque les rôles prédéfinis sont mis à jour par le système. Créez une copie du rôle prédéfini et gérez le rôle copié dans votre solution personnalisée.