Création et modification des règles métier
Date de publication : novembre 2016
S’applique à : Dynamics CRM 2015
Dans Microsoft Dynamics 365, vous pouvez appliquer la logique de formulaire sans écrire de code JavaScript ou développer de plug-ins. Les règles métier offrent une interface déclarative simple permettant d'implémenter et de modifier les règles métier couramment utilisées et qui changent souvent dans des formulaires principaux et de création rapide, dans une entité, dans l'application Web et Microsoft Dynamics CRM pour tablettes. Elles sont appliquées aux formulaires principaux et rapides dans le client Outlook en mode connexion et hors connexion.
Contenu de la rubrique
Pourquoi les règles métier ?
Que peuvent faire les règles métier ?
Comment configurer les règles métier ?
Règles métier côté serveur et prise en charge de la logique IF-Else et AND/OR
Limitations des règles métier
Rechercher les messages d'erreur utilisés dans les règles métier
Pourquoi les règles métier ?
Les règles métier constituent une façon déclarative facile pour évaluer de manière cohérente la logique métier sur le client et sur le serveur, sans devoir écrire de code. L'évaluation logique côté client est plus immédiate car elle est effectuée lorsque vous ouvrez et mettez à jour le formulaire d'enregistrement, alors que le côté serveur assure une évaluation logique constante sur le serveur.
La règle métier est exécutée uniquement sur le client, si le champ d'application de la règle est défini au niveau du formulaire (tous les formulaires ou un formulaire spécifique). Les règles sont exécutées lorsqu'un formulaire d'enregistrement est chargé ou de mis à jour.
La règle métier est exécutée à la fois sur le serveur et sur le client, si le champ d'application de la règle est défini au niveau de l'entité. Les règles sur le côté serveur sont exécutées lorsqu'un enregistrement est créé ou enregistré.
Que peuvent faire les règles métier ?
Les règles métier permettent à un sous-ensemble de bénéficier des fonctionnalités fournies par des scripts de formulaire. Vous pouvez définir des conditions et appliquer les actions suivantes :
Configurer les valeurs de champ
Effacement des valeurs des champs
Définir des niveaux requis de champ
Afficher ou masquer des champs
Activer ou désactiver des champs
Valider des données et afficher des messages d'erreur
Les règles métier peuvent être configurées pour s'appliquer à tous les formulaires principaux ou de création rapide ou aux formulaires principaux spécifiques choisis. Vous pouvez également définir la règle à appliquer à une entité.
Vous pouvez importer des règles métier d'une organisation à une autre en les incluant dans une solution, et vous pouvez installer les solutions qui contiennent les règles métier.
Exemples de définition ou d'effacement de valeurs de champ
Envisageons quelques exemples. Avec la première règle, pour tout achat immédiat, vous appliquez une remise de 5 %. Avec la deuxième règle, vous désactivez toutes les remises si l'échéance de l'achat n'est pas connue.
La définition de règle suivante montre comment définir une valeur de champ à une remise de 5 % pour les achats immédiats.
La définition de règle suivante montre comment effacer une valeur de champ – effacer toutes les remises pour les achats dont l'échéance n'est pas connue.
Comment configurer les règles métier ?
D'abord, vous devez disposer des privilèges nécessaires pour accéder à Paramètres > Personnalisation. Pour ce faire, vous devez disposer du rôle de sécurité Administrateur système ou Personnalisateur de système. Pour activer une règle métier, vous devez disposer du privilège Activer les règles métier.
Notes
Les règles métier fonctionnent uniquement pour Entités mises à jour ou des entités personnalisées.
Quatre méthodes permettent d'afficher, de créer ou de modifier des règles métier :
Solution > Entité
Dans une solution, telle que la solution par défaut, vous trouverez un nœud Règles métier pour toutes les entités.Solution > Entité > Champ
Lorsque vous affichez un champ d'entité, un nœud Règles métier affiche uniquement les règles métier qui incluent cet attribut.Éditeur de formulaires
Dans l'éditeur de formulaires, vous pouvez utiliser le bouton Règles métier dans le ruban pour afficher Explorateur de règles métier à droite. Cela affichera toutes les règles métier qui seront appliquées uniquement pour ce formulaire.Si vous créez un règle à partir de l'éditeur de formulaires, l'étendue par défaut est pour ce formulaire.Pour plus d'informations :Définir l'étendue
Éditeur de formulaires > Champ
Lorsque vous affichez les propriétés d'un champ utilisé dans un formulaire, un onglet Règles métier affiche les règles métier qui incluent cet attribut.
Si une règle existante est semblable à une règle que vous souhaitez créer, vous pouvez ouvrir cette règle et utiliser le bouton Enregistrer sous pour copier une règle existante comme point de départ pour une nouvelle règle.
Définir l'étendue
En haut à droite du formulaire, utilisez le champ Étendue pour définir l'étendue de la règle.
Étendue |
Où elle est exécutée |
---|---|
Entité |
Tous les formulaires et le serveur |
Tous les formulaires |
Tous les formulaires |
Formulaire spécifique |
Uniquement ce formulaire |
Vous ne pouvez pas sélectionner plusieurs formulaires spécifiques. Si vous sélectionnez Tous les formulaires, la règle sera appliquée à tous les formulaires principaux et au formulaire de création rapide, tant que le formulaire comprend tous les champs référencés par la règle. Si vous créez une règle métier à partir de l'éditeur de formulaires, l'étendue par défaut est uniquement ce formulaire.
Règles métier côté serveur et prise en charge de la logique IF-Else et AND/OR
Auparavant, vous aviez la capacité d'évaluer les règles métier dans un client particulier. Pour évaluer la logique des règles métier sur le serveur et l'appliquer à tous les clients, vous deviez fournir les plug-ins, dont le développement et la maintenance sont onéreux. Définir l'étendue de la règle métier à un niveau d'entité vous donne la capacité d'évaluer la règle métier une fois sur le serveur et de l'appliquer à tous les clients sans écrire de code. Vous pouvez déplacer la logique des scénarios couramment utilisés hors des plug-ins vers les règles métier de niveau entité. En outre, nous avons fourni la prise en charge des valeurs par défaut dans une règle métier. Par exemple, si Contoso fait des affaires uniquement aux États-unis, une simple règle métier peut être implémentée de telle sorte qu'à la création d'un prospect entrant, le pays/la région soit automatiquement défini(e) sur États-Unis.
Notes
Lorsque l'étendue est définie sur une entité et que vous créez ou modifiez un enregistrement à l'aide des formulaires, la règle s'exécute sur le côté client, mais ultérieurement, elle s'exécute à nouveau sur le serveur. Ainsi, nous vous empêchons de créer une référence circulaire à un champ, si vous définissez l'étendue sur une entité. Par exemple, vous ne pouvez pas définir la Limite de crédit = Limite de crédit + 1000, car cela augmenterait la valeur une fois sur le côté client et essaierait d'exécuter à nouveau sur le côté serveur.
Pour des scénarios plus complexes, vous aviez besoin d'utiliser plusieurs règles métier qui étaient évaluées à l'aide de l'opérateur de logique AND. Toutes les conditions devaient être remplies avant que les actions ne soient appliquées. Il n'y avait aucune prise en charge de If-Else ou AND/OR. Cette fonctionnalité est maintenant ajoutée et vous permettra de créer des règles métier plus élaborées avec moins d'effort. L'exemple suivant de la règle métier utilise la logique If-Else :
Il existe des restrictions que vous devez connaître :
Les instructions If-Else imbriquées ne sont pas prises en charge.
Le regroupement d'expressions dans une condition n'est pas pris en charge.
Les expressions peuvent être associées à l'aide de AND ou de OR, mais pas les deux.
Configurer les conditions
Pour modifier une règle métier activée, vous devez la désactiver avant de pouvoir la modifier.
Pour ajouter une condition, cliquez sur l'icône +. Une nouvelle ligne de condition sera affichée avec des valeurs par défaut. Entrez le nom de champ pour définir Champ, puis choisissez la valeur Opérateurappropriée. Les options d'opérateur changent selon le type de données du champ.
Les conditions sont activées lorsqu'un champ référencé dans les conditions change.
Vous pouvez choisir trois types de conditions :
Champ
Utilisez ce type pour comparer la valeur d'un champ de formulaire avec une autre.Valeur
Utilisez ce type pour comparer la valeur d'un champ de formulaire avec celle que vous avez entrée.Formule
Cette option apparaît uniquement pour les données numériques ou les dates. Elle n'apparaît pas pour les champs qui contiennent du texte. Utilisez ce type comparer les résultats d'un calcul simple qui peut utiliser une valeur d'un autre champ de formulaire ou une valeur que vous entrez.
Lorsque vous avez terminé d'entrer ou de modifier la règle, sélectionnez l'icône en forme de coche ou, pour ignorer les modifications, sur l'icône (X). Pour supprimer une condition enregistrée précédemment, positionnez votre curseur sur la condition et sélectionnez le bouton Supprimer.
Configurer les actions
Pour ajouter une action, sélectionnez le bouton Ajouter+ pour avoir les options suivantes :
Afficher le message d'erreur
Cette action permet de définir un message d'erreur sur un champ si les données qu'il contient ne sont pas valides. Le texte que vous spécifiez dans le message s'affiche avec une icône d'erreur près du champ.Les enregistrements ne peuvent pas être enregistrés tant que ce message est affiché. Lorsque les données du champ ont été corrigées selon les conditions définies dans votre règle, le message disparaît et l'enregistrement peut être enregistré.
Configurer la valeur du champ
Sélectionnez le Champ et le Type. Il existe trois types :Champ
Utilisez ce type pour définir la valeur d'un champ de formulaire avec celle d'un autre champ.Valeur
Utilisez ce type pour définir la valeur d'un champ de formulaire avec une valeur que vous avez entrée.Formule
Cette option apparaît uniquement pour les données numériques ou les dates. Elle n'apparaît pas pour les champs qui contiennent du texte. Utilisez ce type pour définir la valeur sur les résultats d'un calcul simple qui peut utiliser une valeur d'un autre champ de formulaire ou une valeur que vous entrez.
Définir les champs commerciaux obligatoires
Utilisez ce type pour modifier le niveau requis du champ. Les options sont Aucun champ commercial obligatoire et Contrainte obligatoire. Aucune option ne permet de choisir la contrainte obligatoire.Définir la visibilité
Utilisez ce type pour définir si le champ s'affiche dans le formulaire. Les options sont Afficher le champ et Masquer le champ.Verrouiller ou déverrouiller un champ
Utilisez ce type pour définir si le champ est activé dans le formulaire. Les options sont Verrouiller et Déverrouiller. Lorsque le champ est verrouillé, les utilisateurs ne peuvent pas modifier la valeur dans le champ.
Après avoir défini une action, vous pouvez modifier la commande ou la supprimer en utilisant les options disponibles lorsque vous placez votre curseur sur l'action.
Définir la description
La définition d'une description est facultative. Elle n'est pas affichée, sauf dans l'éditeur de règles métier. Il est toutefois préférable d'inclure une description des actions de la règle et de la raison de son ajout.
Tester et activer les règles métier
Vous devez activer les règles métier que vous avez créées pour que les utilisateurs puissent les utiliser. Avant de les activer, vous devez les tester. Vous pouvez tester les règles métier en utilisant le bouton Aperçu dans l'éditeur de formulaires.
Limitations des règles métier
Les règles métier permettent de répondre aux actions courantes. Comparées à ce que peut faire un développeur à l'aide de scripts de formulaire, les règles métier sont limitées. Toutefois, les règles métier ne sont pas conçues pour remplacer les scripts de formulaire.
Voici quelques limitations de l'utilisation des règles métier :
Les règles métier s'exécutent uniquement lorsque le formulaire est chargé et que les valeurs des champs changent. Elles ne s'exécutent pas lorsqu'un enregistrement est enregistré, sauf si l'étendue de la règle est définie à un niveau d'entité.
Les règles métier fonctionnent uniquement avec les champs. Si vous devez interagir avec d'autres éléments visibles, tels que des onglets et des sections, dans le formulaire, vous devez utiliser des scripts.
Lorsque vous définissez une valeur de champ en utilisant une règle métier, aucun gestionnaire d'événements OnChange pour ce champ ne s'exécutera. Il s'agit de réduire le risque d'une référence circulaire, qui peut conduire à une boucle infinie.
Si une règle métier fait référence à un champ qui n'est pas présent dans un formulaire, la règle ne s'exécutera pas. Il n'y aura pas de message d'erreur.
Les champs Nombre entier qui utilisent les formats pour le fuseau horaire, la durée ou la langue n'apparaissent pas dans l'éditeur de règles pour les conditions ou les actions, et ne peuvent pas être utilisés avec des règles métier.
Vous ne pouvez pas ajouter plus de dix conditions if-else dans une règle métier.
Pour Microsoft Dynamics CRM pour tablettes, les définitions des règles métier sont téléchargées et mises en cache lorsque CRM pour tablettes s'ouvre. Les modifications apportées aux règles métier ne sont pas appliquées tant que CRM pour tablettes n'est pas fermé puis rouvert.
Lorsque vous définissez la valeur d'un champ de recherche, le texte de la valeur du champ principal défini dans le formulaire correspondra toujours au texte qui apparaît dans la définition de règles. Si le texte représentant la valeur de champ principal de l'enregistrement que vous définissez dans la recherche change, la valeur définie par votre règle continuera d'utiliser la partie de texte de la valeur de champ définie par la règle. Pour résoudre ce problème, mettez à jour la définition de règle pour qu'elle utilise la valeur du champ de nom principal actuelle.
Il est utile de savoir que la valeur définie pour une recherche comporte trois parties :
Name : le texte de la valeur de champ principal qui s'affiche dans le formulaire.
Id : l'identificateur unique de l'enregistrement. Voici les données enregistrées. Ce n'apparaît pas dans le formulaire.
LogicalName : le nom de l'entité, telle que contact, account, ou opportunity.
La règle définira les trois parties de cette valeur. La valeur Id d'un enregistrement spécifique ne change jamais, mais la valeur Name peut changer.
Par exemple, si vous définissez une règle pour définir une recherche sur un contact dont le Nom complet est « Ancien nom », ce texte est le Name que vous verrez dans la recherche lorsque celui-ci est défini par votre règle métier, même si une personne modifie ultérieurement le Nom complet du contact en « Nouveau nom ». La valeur Id de recherche est correctement définie sur l'enregistrement recherché, mais le Name (qui n'est pas enregistré) reflète la valeur de définition de règle au lieu de la valeur de Nom complet actuelle de l'enregistrement auquel elle fait référence.
Désactiver les actions de vos règles
À l'exception de l'affichage des messages d'erreur, vous devez être sûr d'inclure une règle métier distincte pour désactiver les actions que vous avez pu appliquer. Par exemple, si vous disposez d'une règle sur une entité Compte qui indique :
Si Mode de communication privilégié est « Téléphone »
Définir Téléphone professionnel comme Contrainte obligatoire
Cela fonctionne lorsque le champ Mode de communication privilégié est défini sur Téléphone. Mais si le champ Mode de communication privilégié prend ultérieurement une autre valeur, le champ Téléphone reste Contrainte obligatoire. Pour désactiver cette action, vous devez inclure une règle distincte et appliquer la logique suivante :
Si Mode de communication privilégié est différent de « Téléphone »
Définir Téléphone professionnel comme Aucun champ commercial obligatoire
L'action Afficher le message d'erreur est différente, car elle évalue automatiquement toutes les conditions utilisées pour définir le message d'erreur et les supprime si les conditions ne sont plus vérifiées.
Rechercher les messages d'erreur utilisés dans les règles métier
Si votre organisation utilise plusieurs langues, vous devez rechercher tous les messages d'erreur que vous avez définis. Chaque fois que vous définissez un message, un libellé est généré par le système. Si vous exportez les traductions dans votre organisation, vous pouvez ajouter des versions localisées de vos messages, puis réimporter ces libellés dans Microsoft Dynamics 365 afin que les utilisateurs se servant d'autres langues que votre langue de base puissent afficher les messages traduits.
Voir aussi
Vidéo : Nouvelles fonctionnalités de personnalisation de Microsoft Dynamics CRM - Règles métier
Création et modification de processus
Créer et concevoir des formulaires
Création et modification des vues
SDK : Créer ou modifier le mode d’initialisation des règles métier
© 2016 Microsoft Corporation. Tous droits réservés. Copyright