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 :
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é).