Définir les règles d’activation du ruban

Notes

Cette rubrique concerne les commandes classiques.

Il existe une nouvelle façon de définir les commandes. Voir Vue d’ensemble du commandement moderne (Version préliminaire)

Lorsque vous configurez les éléments du ruban, vous pouvez définir des règles spécifiques pour contrôler quand les éléments du ruban sont activés. L’élément <EnableRule> est utilisé comme suit :

  • Utilisez l’élément /RuleDefinitions/EnableRules/EnableRule pour définir les règles contrôlant quand l’élément de ruban doit être activé.

  • Utilisez l’élément /CommandDefinitions/CommandDefinition/EnableRules/EnableRule pour associer des règles d’activation spécifiques à une définition de commande.

Qu’est-ce qu’« Activé » signifie ?

Avec la barre de commandes, les commandes qui sont désactivées sont masquées. Avec le ruban, les commandes qui sont désactivées sont visibles, mais ne répondent pas aux événements.

Contrôler lorsque les éléments du ruban sont activés

Les règles d’activation sont prévues pour être ré-utilisées. En les définissant avec les définitions de règle, vous pouvez utiliser la même règle d’activation pour plusieurs définitions de commande. Lorsque plusieurs règles d’activation sont définies pour une définition de commande, toutes les règles d’activation doivent être évaluées comme « true » pour que l’élément du ruban soit activé.

Toutes les règles d’activation offrent un paramètre facultatif pour spécifier si la valeur par défaut de la règle est « true » ou « false » et un paramètre InvertResult facultatif pour permettre le retour d’un résultat négatif si l’élément en cours de test renvoie « true ».

L’élément /RuleDefinitions/EnableRules/EnableRule prend en charge les types de relation suivants :

Notes

Vous n’êtes pas sûr de l’entité par rapport à la table ? Voir Développeurs : Comprendre la terminologie dans Microsoft Dataverse.

Règle de type de client de commande

Utilise l’élément <CommandClientTypeRule>. Spécifie une règle détectant le type de présentation utilisée.

Les valeurs Type correspondent à ce qui suit :

Valeur Présentation
Modern La barre de commandes est présentée à l’aide de Dynamics 365 for tablets.
Refresh La barre de commandes est présentée à l’aide de l’interface utilisateur mis à jour.
Legacy Le ruban est présenté dans les formulaires de tables qui n’ont pas été mises à jour ou dans un affichage de liste dans Dynamics 365 for Outlook.

Règle de type de client Crm

Utilise l’élément <CrmClientTypeRule> pour définir des règles selon le type de client utilisé. Les options type sont comme suit :

  • Web

  • Outlook

Règle d’état d’accès hors connexion Crm

Utilise l’élément <CrmOfflineAccessStateRule>. Utilisez ce critère pour activer un élément de ruban selon que Dynamics 365 for Microsoft Office Outlook avec accès hors connexion est actuellement hors connexion.

Règle de type de client Outlook Crm

Utilise l’élément <CrmOutlookClientTypeRule>. Utilisez cette règle si vous souhaitez afficher uniquement un bouton pour un type spécifique Dynamics 365 for Outlook. Les options type sont comme suit :

  • CrmForOutlook

  • CrmForOutlookOfflineAccess

Règle personnalisée

Utilise l’élément <CustomRule>. Utilisez ce type de règle pour appeler une fonction dans une ressource web JavaScript qui renvoie une Promise (Unified Interface) ou une valeur booléenne (Unified Interface et client web).

function EnableRule()
{
    const value = Xrm.Page.getAttribute("column1").getValue();
    return value === "Active";
}

Notes

Les règles personnalisées qui ne renvoient pas une valeur rapidement peuvent avoir un impact sur les performances du ruban. Si vous devez effectuer une logique qui pourrait prendre du temps à exécuter (par exemple, une demande réseau), utilisez la stratégie suivante pour rendre votre règle personnalisée asynchrone.

Les règles Unified Interface prennent en charge le retour d’une Promise plutôt qu’une valeur booléenne à des fins d’évaluation de règle asynchrone. Si la promise échoue au bout de 10 secondes, la règle se résoudra avec une valeur False.

Notes

Les règles basées sur des promises s’exécutent uniquement sur Unified Interface, ainsi elles ne peuvent pas être utilisées si le client web classique est toujours utilisé.

// Old synchronous style
/*
function EnableRule() {
   const request = new XMLHttpRequest();
   request.open('GET', '/bar/foo', false);
   request.send(null);
   return request.status === 200 && request.responseText === "true";
}
*/

// New asynchronous style
function EnableRule() {
   const request = new XMLHttpRequest();
   request.open('GET', '/bar/foo');

   return new Promise(function(resolve, reject) {
       request.onload = function (e) {
           if (request.readyState === 4) {
               if (request.status === 200) {
                   resolve(request.responseText === "true");
               } else {
                   reject(request.statusText);
               }
           }
       };
       request.onerror = function (e) {
           reject(request.statusText);
       };

       request.send(null);
   });
}

Règle d’entité

Utilise l’élément <EntityRule>. EntityRule permet l’évaluation de la table actuelle. Cette opération est utile lorsque vous définissez les actions personnalisées qui s’appliquent au modèle de table plutôt que pour des tables spécifiques. Par exemple, vous souhaitez ajouter un élément du ruban à toutes les tables, hormis pour plusieurs tables spécifiques. Il est plus facile de définir l’action personnalisée pour le modèle de table qui s’applique à toutes les tables, puis d’utiliser une EntityRule pour filtrer celles qui doivent être exclues.

La EntityRule comprend aussi un paramètre Context en option pour spécifier si la table est affichée dans le formulaire ou dans une liste (HomePageGrid). Le paramètre facultatif AppliesTo peut être défini sur PrimaryEntity ou SelectedEntity pour distinguer si la table est affichée dans une sous-grille.

Règle d’état de formulaire

Utilise l’élément <FormStateRule>. Utilisez la règle FormState pour déterminer le type actuel de formulaire qui affiche un enregistrement. Les options d’état sont comme suit :

  • Create

  • Existing

  • ReadOnly

  • Disabled

  • BulkEdit

Règle Ou

Utilise l’élément <OrRule>. La OrRule vous permet de remplacer la valeur par défaut ET de comparer plusieurs types de règle d’activation. Utilisez l’élément OrRule pour définir plusieurs combinaisons valides possibles à vérifier.

Règle de suivi des éléments Outlook

Utilise l’élément <OutlookItemTrackingRule>. Utilisez le paramètre TrackedInCrm pour que cet élément détermine si l’enregistrement est suivi dans Power Apps.

Règle de version Outlook

Utilise l’élément <OutlookVersionRule>. Utilisez cette option pour activer un élément du ruban pour une version spécifique de Office Outlook comme suit :

  • 2003

  • 2007

  • 2010

Règles de page

Utilise l’élément <PageRule>. Ce type de règle vérifie l’URL de la page en cours d’affichage. Elle renvoie « true » si l’Address correspond.

Règle de privilège d’enregistrement

Utilise l’élément <RecordPrivilegeRule>. Utilisez cette règle pour déterminer si l’utilisateur actuel possède les privilèges sur un enregistrement spécifique. Ces privilèges diffèrent d’un privilège de table, car ils peuvent contenir des privilèges gagnés par un autre utilisateur partageant l’enregistrement avec l’utilisateur actuel.

Règle de nombre de sélections

Utilise l’élément <SelectionCountRule>. Utilisez ce type de règle avec un ruban affiché pour une liste pour activer un bouton lorsque des nombres max. et min. d’enregistrements spécifiques de la grille sont sélectionnés. Par exemple, si votre bouton fusionne des enregistrements, vous devez vous assurer qu’au moins deux enregistrements soient sélectionnés avant d’activer le contrôle du ruban.

Règle de valeur

Utilise l’élément <ValueRule>. Utilisez cette règle pour vérifier la valeur d’une colonne spécifique dans l’enregistrement affiché dans le formulaire. Vous devez spécifier le Field et la Value à vérifier.

Notes

Sur un formulaire, une ValueRule nécessite que la colonne spécifiée fasse partie du formulaire pour que cela fonctionne. Dans une grille ou une sous-grille, la colonne doit être l’une des colonnes de la grille.

Afficher la règle d’action rapide

Utilise l’élément <EnableRule>. Utilisez cette règle pour que la commande n’apparaisse que comme une action rapide.

<CommandDefinition Id="new.contact.Command.Call">
  <EnableRules>
    <EnableRule Id="Mscrm.SelectionCountExactlyOne" />
    <EnableRule Id="Mscrm.ShowOnQuickAction" />
  </EnableRules>
  <DisplayRules />
  <Actions>
    <JavaScriptFunction FunctionName=" simplealert" />
  </Actions>
</CommandDefinition>

Afficher la règle d’action rapide et la grille

Utilise l’élément <EnableRule>. Utilisez cette règle pour que la commande n’apparaisse que sur la grille de la page d’accueil et l’action rapide.

<CommandDefinition Id="new.contact.Command.Call">
  <EnableRules>
    <EnableRule Id="Mscrm.SelectionCountExactlyOne" />
    <EnableRule Id="Mscrm.ShowOnGridAndQuickAction" />
  </EnableRules>
  <DisplayRules />
  <Actions>
    <JavaScriptFunction FunctionName=" simplealert" />
  </Actions>
</CommandDefinition>

Afficher la règle de la grille

Utilise l’élément <EnableRule>. Utilisez cette règle pour que la commande d’action rapide n’apparaisse que sur la grille de la page d’accueil. En d’autres termes, vous pouvez utiliser cette commande pour masquer une action rapide existante.

<CommandDefinition Id="new.contact.Command.Call">
  <EnableRules>
    <EnableRule Id="Mscrm.SelectionCountExactlyOne" />
    <EnableRule Id="Mscrm.ShowOnGrid" />
  </EnableRules>
  <DisplayRules />
  <Actions>
    <JavaScriptFunction FunctionName=" simplealert" />
  </Actions>
</CommandDefinition>

Voir aussi

Personnaliser les commandes et le ruban
Définir les commandes du ruban
Définir les règles d’affichage du ruban

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).