Un bouton dans la barre de commandes est visible alors qu’il doit être masqué

S’applique à : Power Apps
Numéro de la base de connaissances d’origine : 4552163

Déterminer pourquoi un bouton est visible

Un bouton est rendu visible si toutes les règles d’activation et les règles d’affichage sur la commande associée au bouton ont la valeur true. Si cela est inattendu, il est possible que la définition de commande ait été remplacée et qu’il manque des règles d’activation ou des règles d’affichage, ou que les définitions de règles elles-mêmes soient remplacées et que le bouton soit visible lorsque vous prévoyez qu’il soit masqué.

Remarque

Certains boutons ne sont pas personnalisables. Pour plus d’informations, consultez Boutons non personnalisables dans le ruban.

Avertissement

Ne supprimez pas la Mscrm.HideOnModern règle d’affichage d’une commande pour forcer l’affichage d’un bouton dans l’interface unifiée. Les commandes qui ont la Mscrm.HideOnModern règle d’affichage sont destinées à l’interface client web héritée et ne sont pas prises en charge dans l’interface unifiée et peuvent ne pas fonctionner correctement.

  1. Activez le vérificateur de commandes et sélectionnez le bouton de commande à inspecter.

  2. L’exemple suivant montre deux boutons Rendez-vous sur la page de la grille des activités, et l’un est censé être masqué.

    Capture d’écran montrant deux boutons Rendez-vous sur la page de la grille des activités.

  3. Sélectionnez l’onglet Propriétés de la commande pour afficher les détails de la commande pour ce bouton. Cela affiche les actions, les règles d’activation et les règles d’affichage, ainsi que le résultat (True, False, Ignoré) de chaque évaluation de règle. Passez en revue les règles d’activation et d’affichage. Si vous pensez qu’une règle particulière doit être évalué à false, il est possible que la règle soit incorrectement personnalisée ou que les circonstances nécessaires pour retourner un faux résultat ne soient pas remplies. Si c’est le cas, passez à l’étape 9. Sinon, il est possible que la commande ne dispose pas d’une ou de plusieurs règles et que nous afficherons les couches de solution de commande pour une analyse plus approfondie.

    Capture d’écran montrant comment sélectionner l’onglet Propriétés de la commande pour afficher les détails de la commande pour ce bouton.

  4. Sélectionnez le lien Afficher les couches de solution de définition de commande sous le nom de la commande pour afficher la ou les solutions qui ont installé une définition de la commande.

    Capture d’écran du lien Afficher les couches de solution de définition de commande sous le nom de la commande.

  5. Le volet Couches de solution affiche la superposition de chaque définition de composant du ruban qu’une solution particulière a installée. La couche en haut de la liste est la définition actuelle utilisée par l’application, les autres couches sont inactives et ne sont pas utilisées par l’application pour le moment. Si la solution supérieure est désinstallée ou si une version mise à jour est installée et supprime la définition, la couche suivante devient la définition active actuelle utilisée par l’application. Lorsqu’une couche de solution Active non managée est présente, il s’agit toujours de la définition utilisée par l’application. Si aucune solution active n’est répertoriée, la solution répertoriée en haut de la liste est la définition utilisée par l’application. Toutes les solutions gérées sur mesure qui ne sont pas publiées par Microsoft sont également prioritaires sur les couches de solutions publiées par Microsoft.

    Le contexte d’entité indique l’objet sur lequel se trouve la personnalisation du ruban, si « Toutes les entités » est répertorié, la couche provient des extensions clientes du ruban d’application et n’est pas spécifique à l’entité, sinon le nom logique de l’entité est répertorié.

    Lorsqu’il existe au moins deux couches, vous pouvez sélectionner deux lignes et sélectionner Comparer pour afficher une comparaison des définitions apportées par chaque solution.

    Si vous sélectionnez Précédent , vous revenez à la fenêtre Vérificateur de commandes précédente.

    S’il n’existe qu’une seule couche de solution, passez à l’étape 9. Sinon, sélectionnez les deux premières couches de solution (si vous avez une couche dans la solution active, mais qu’elle n’est pas répertoriée en haut, sélectionnez la couche solution active, puis la ligne supérieure), puis sélectionnez Comparer.

    Capture d’écran montrant comment sélectionner les deux couches de solution les plus hauts et sélectionner l’option Comparer.

  6. La comparaison de la définition active actuelle et de la définition inactive précédente s’affiche, montrant les différences, le cas échéant. L’exemple suivant montre la définition Active non managée qui doit avoir été personnalisée avec la suppression d’une règle Mscrm.HideOnModern d’affichage incluse dans la couche de solution publiée microsoft inactive msdynce_ActivitiesPatch .

    Capture d’écran montrant la comparaison de la définition active actuelle et de la définition inactive précédente.

  7. L’approche nécessaire pour corriger la visibilité d’un bouton dépend des différentes personnalisations de votre scénario spécifique. Si vous avez déterminé qu’une règle est évaluée de manière incorrecte sur false et si la définition de règle est incorrectement définie, vous devez modifier la définition de règle et apporter des modifications qui permettraient à la règle d’évaluer sur false dans les circonstances appropriées. Si la définition de règle est correcte, il est possible que les exigences qui feraient que la règle retourne false ne soient pas remplies, comme une valeur de champ ou un privilège de sécurité. Selon votre définition de règle, les exigences peuvent varier considérablement. Reportez-vous à Définir des règles d’activation du ruban et Définir des règles d’affichage du ruban. Compte tenu de notre exemple, la commande a été personnalisée avec la suppression d’une Mscrm.HideOnModern règle d’affichage. Cette règle d’affichage a pour but de masquer l’affichage de ce bouton particulier dans les applications Unified Interface et d’être visible uniquement dans l’interface client web héritée. Nous pouvons modifier la version personnalisée de la commande et ajouter la règle d’affichage Mscrm.HideOnModern manquante à la définition de commande. Étant donné qu’il s’agit d’un remplacement personnalisé d’une définition publiée par Microsoft et qu’il n’y a pas d’autres modifications intentionnelles, il est recommandé de supprimer cette version personnalisée de la commande pour restaurer la fonctionnalité par défaut.

Options de réparation

Sélectionnez une option de réparation dans l’un des onglets ci-dessous. Le premier onglet est sélectionné par défaut.

Comment supprimer une commande

S’il existe une autre couche de solution qui contient une définition opérationnelle de cette commande, vous pouvez supprimer cette définition pour restaurer la définition de travail inactive suivante.

S’il s’agit de la seule couche et que vous n’avez plus besoin de la commande, vous pouvez la supprimer de votre solution si aucun autre bouton ne fait référence à la commande.

Sélectionnez l’une des options suivantes qui correspond à votre scénario particulier :

La commande se trouve dans la solution Active non managée

Pour supprimer une commande dans la couche solution non managée active , nous allons exporter une solution non managée contenant l’entité ou le ruban de l’application, modifier le <RibbonDiffXml> nœud dans le fichier customizations.xml , puis importer une nouvelle version de cette solution où cette commande a été supprimée afin de supprimer le composant. Consultez Exporter, préparer la modification et importer le ruban.

La commande est spécifique à l’entité

D’après notre exemple de scénario, nous avons identifié l’entité est activitypointer et la commande qui doit être supprimée est et elle est Mscrm.CreateAppointment déclarée dans la couche de solution non managée Active à partir d’un éditeur nommé DefaultPublisherCITTest.

  1. Ouvrez Paramètres avancés.

  2. Accédez à Paramètres ->Solutions.

  3. Sélectionnez Nouveau pour créer une solution, définissez Publisher sur la valeur affichée dans la liste des couches de solution du vérificateur de commandes pour la commande et la couche solution active. (Dans notre exemple, il s’agit de DefaultPublisherCITTest).

  4. Sélectionnez Entités>Ajouter existant.

  5. Sélectionnez l’entité sur laquelle votre commande est définie (Dans notre exemple, il s’agit de activitypointer), puis sélectionnez OK.

  6. Veillez à décocher les options Inclure les métadonnées d’entité et à décocher Ajouter toutes les ressources avant de sélectionner Terminer.

  7. Sélectionnez Enregistrer.

  8. Sélectionnez Exporter la solution et exportez la solution non managée.

  9. Extrayez le fichier .zip.

  10. Ouvrez le fichier customizations.xml .

  11. Localisez le <Entity> nœud enfant du nœud d’entité que vous souhaitez modifier et localisez son nœud enfant <RibbonDiffXml> .

  12. Localisez le <CommandDefinition> nœud (Dans notre exemple, l’ID du <CommandDefinition> nœud est Mscrm.CreateAppointment, nous localisons donc le nœud suivant).

    Capture d’écran montrant l’emplacement du nœud CommandDefinition.

  13. Modifiez le <RibbonDiffXml> nœud et supprimez le nœud spécifique <CommandDefinition> qui a l’ID de la commande que vous souhaitez supprimer. Veillez à ne pas supprimer involontairement les autres <CommandDefinition> nœuds qui peuvent être présents. (D’après notre exemple, nous supprimerions le <CommandDefinition> nœud dans lequel l’ID est Mscrm.CreateAppointment.)

    Capture d’écran montrant un exemple de suppression du nœud CommandDefinition.

  14. Enregistrez le fichier customizations.xml .

  15. Rajoutez le fichier customizations.xml modifié au fichier .zip solution.

  16. Importez le fichier solution.

  17. Sélectionnez Publier toutes les personnalisations.

La commande se trouve dans le ruban application (s’applique à « Toutes les entités »)

Si la commande n’est pas spécifique à l’entité, elle s’applique plutôt à « Toutes les entités » déclarées dans le ruban de l’application, les étapes seront légèrement différentes comme suit :

  1. Ouvrez Paramètres avancés.
  2. Accédez à Paramètres>Solutions
  3. Sélectionnez Nouveau pour créer une solution, définissez Publisher sur la valeur affichée dans la liste des couches de solution du vérificateur de commandes pour la commande et la couche solution active.
  4. Sélectionnez Extensions>clientes Ajouter desrubans d’application existants>.
  5. Sélectionnez Enregistrer.
  6. Sélectionnez Exporter la solution et exportez la solution non managée.
  7. Extrayez le fichier .zip.
  8. Ouvrez le fichier customizations.xml .
  9. Recherchez le nœud racine <RibbonDiffXml> .
  10. Recherchez le <CommandDefinition>.
  11. Modifiez le <RibbonDiffXml> nœud et supprimez le <CommandDefinition> nœud qui a l’ID de la commande que vous souhaitez supprimer. Veillez à ne pas supprimer involontairement les autres <CommandDefinition> nœuds qui peuvent être présents.
  12. Enregistrez le fichier customizations.xml .
  13. Rajoutez le fichier customizations.xml modifié au fichier .zip de solution compressé.
  14. Importez le fichier solution.
  15. Sélectionnez Publier toutes les personnalisations.
La commande provient d’une solution managée personnalisée que mon entreprise a créée

Pour supprimer une commande installée par une solution gérée personnalisée que vous avez créée, procédez comme suit :

  1. Dans votre organization de développement distinct qui a la version source non managée de votre solution personnalisée, effectuez les étapes répertoriées ci-dessus pour l’option La commande se trouve dans la solution active non managée.
  2. Incrémentez la version de votre solution personnalisée.
  3. Exporter la solution en tant que solution gérée.
  4. Dans votre organization affectée distincte, importez cette nouvelle version de votre solution gérée personnalisée.
La commande provient d’une solution gérée sur mesure que mon entreprise n’a pas créée (à partir d’un éditeur de logiciels indépendant/tiers)

Pour supprimer une commande installée par une solution managée personnalisée créée par un éditeur de logiciels indépendant/tiers, vous devez contacter l’auteur de la solution et demander une nouvelle version de la solution qui a supprimé la définition de commande spécifique, puis installer cette nouvelle solution dans votre organization affectée.