Créer un champ calculé pour automatiser les calculs manuels
Cette rubrique s’applique à Dynamics 365 Customer Engagement (on-premises). Pour la version Power Apps de cette rubrique, consultez : Définir des champs calculés pour automatiser les calculs manuels
Les champs calculés vous permettent d’automatiser les calculs manuels utilisés dans les processus d’entreprise. Par exemple, un vendeur peut souhaiter connaître le revenu pondéré d’une opportunité qui repose sur le revenu estimé d’une opportunité multiplié par la probabilité. Ou, il peut vouloir appliquer automatiquement une remise si une commande est supérieure à 500 $. Un champ calculé peut contenir des valeurs résultant d’opérations mathématiques simples, ou d’opérations conditionnelles, telles que greater than ou if-else, par exemple. Vous pouvez faire tout ceci à l’aide de la fonctionnalité de champ calculé, pas besoin d’écrire de code.
Fonctionnalités des champs calculés :
Les champs calculés impliquent des calculs qui utilisent les champs de l’entité actuelle ou des entités parentes connexes.
La prise en charge d’expressions est disponible sur l’entité actuelle et les champs d’entités parentes connexes dans les sections Condition et les sections Action. Les fonctions intégrées comprennent :
ADDHOURS, ADDDAYS, ADDWEEKS, ADDMONTHS, ADDYEARS, SUBTRACTHOURS, SUBTRACTDAYS, SUBTRACTWEEKS, SUBTRACTMONTHS, SUBTRACTYEARS, DIFFINDAYS, DIFFINHOURS, DIFFINMINUTES, DIFFINMONTHS, DIFFINWEEKS, DIFFINYEARS, CONCAT, TRIMLEFT, and TRIMRIGHT.
Une prise en charge conditionnelle complète fournit le branchement et plusieurs conditions. Les opérations logiques incluent les opérateurs AND et OR.
Les fonctionnalités de modification visuelle incluent une interface utilisateur moderne et IntelliSense dans la section ACTION.
Une intégration parfaite des champs calculés avec des formulaires, vues, graphiques et rapports est disponible en temps réel.
Si vous avez mis à jour votre organisation Online vers la mise à jour de décembre 2016 pour Dynamics 365 (online), vous pouvez configurer des champs calculés pour utiliser les contrôles personnalisés.
Quelques exemples des champs calculés
Revenu pondéré : Revenu estimé multiplié par probabilité
Valeur nette : Ressources soustraites du passif d’un compte donné
Coût de la main-d’œuvre : Taux de base jusqu’à 40 heures, plus heures supplémentaires
Numéro du contact : Numéro de téléphone pour une opportunité basée sur un compte ou contact
Notation de prospect : Champ unique qui fournit des informations sur la qualité d’un prospect donné
Suivi pour le : Suivi d’une activité par un nombre spécifié de jours basés sur la priorité
Important
Pour créer un champ calculé, vous devez disposer du privilège d’écriture sur l’entité du profil de sécurité de champ. Si le champ calculé utilise les champs sécurisés dans un calcul, vous devez envisager de sécuriser également le champ calculé, pour empêcher les utilisateurs d’accéder aux données pour lesquelles ils ne disposent pas d’autorisations suffisantes. L’éditeur de champs calculés affiche un avertissement si vous créez un champ calculé qui utilise des champs sécurisés dans un calcul, suggérant de sécuriser le champ calculé. Plus d’informations : Sécurité au niveau des champs
Exemples de champs calculés
Intéressons-nous à ces exemples de champs calculés plus en détail. Nous définirons les champs calculés avec l’éditeur de champs. Pour ouvrir l’éditeur de champs :
Ouvrez l’explorateur de solutions
Développez Composants>Entités.
Sélectionnez l’entité souhaitée et choisissez Champs. Sélectionnez Nouveau.
Dans l’éditeur, fournissez les informations requises pour le champ, notamment le Type de champ et le Type de données. Le Type de champest Calculé. Types de données disponibles pour le champ calculé :
Une seule ligne de texte
Groupe d’options
Deux options
Nombre entier
Nombre décimal
Devise
Date et heure
Le bouton Modifier en regard de Type de champ vous emmène à l’éditeur de définition de champs calculés, où le nouveau champ calculé a été créé, mais aucun formule n’a été définie. La définition de champs calculés se compose de deux sections : CONDITION et ACTION.
Dans la section Condition, vous pouvez spécifier une entité, un champ, un opérateur, un type et une valeur. Dans la zone déroulante liée à Entité, vous pouvez choisir une entité actuelle ou une entité associée. La zone déroulante Champ contient une sélection de tous les champs disponibles pour l’entité. Selon l’opérateur vous choisissez, vous devrez peut-être fournir le type et la valeur. Vous pouvez spécifier plusieurs conditions avec les opérateurs
AND
etOR
.Dans la section Action, vous fournissez la formule du champ calculé.
Note
Vous pouvez utiliser les données des enregistrements de recherche dans votre action. Vous devez d’abord sélectionner le champ de recherche, puis taper une période. Après cela, vous pouvez sélectionner un des champs disponibles dans l’entité associée. Par exemple, dans le cas de <LookupFieldName>.<RelatedFieldName>, vous pouvez sélectionner : ParentAccountId.AccountNumber.
Notez que la sécurité au niveau du champ sera ignorée sur l’entité associée, par conséquent, si le champ accédé contient des données sensibles, nous vous suggérons de sécuriser également votre champ calculé.
Revenu estimé réalisé par les opportunités
Dans cet exemple, nous utilisons les champs de l’entité opportunité pour calculer le revenu pondéré basé sur la probabilité de l’opportunité. Dans l’éditeur de champ d’une entité opportunité, nous créons un champ nommé « Revenu pondéré » et spécifions le type de champ Calculé et le type de données Devise. Dans l’éditeur de définition du champ calculé, dans la section Condition, nous spécifions l’opportunité avec le statut = Ouvert. Dans la section ACTION, la formule calcule le revenu pondéré en fonction du revenu estimé de l’opportunité multiplié par la probabilité de l’opportunité. Les captures d’écran ci-après montrent de façon détaillée comment définir le champ calculé Revenu pondéré.
Création du champ calculé «Revenu pondéré » :
Définition de la condition sur les opportunités :
Fournissez la formule du revenu pondéré :
En tout :
Date de suivi d’opportunité
Dans cet exemple, nous utilisons les champs du prospect d’origine d’une opportunité pour calculer la date appropriée pour le suivi de l’opportunité. Dans l’éditeur de champ d’une entité opportunité, nous créons un champ nommé « Date de suivi » et spécifions le type Calculé et le type de données Date et heure. Dans l’éditeur de définition du champ calculé, dans la section Condition, nous spécifions deux conditions : le délai d’exécution de l’achat et la valeur estimée du prospect. Dans la section ACTION, nous fournissons deux formules, une pour un suivi dans une semaine de l’opportunité immédiate, et une autre, pour un suivi dans un mois, si l’opportunité n’est pas susceptible de se produire immédiatement. Les captures d’écran ci-après montrent de façon détaillée comment définir le champ calculé « Date de suivi ».
Création du champ calculé «Date de suivi » :
Définition des deux conditions sur le prospect d’origine :
Formule de suivi dans une semaine :
Formule de suivi dans un mois :
En tout :
Jours depuis la création d’un enregistrement
Dans cet exemple, nous utilisons la fonction DIFFINDAYS pour calculer la différence en jours entre le moment où un enregistrement a été créé et la date du jour.
Créez le champ calculé appelé « Différence calculée en jours » :
Fournissez la formule pour calculer la différence en jours
En tout :
Syntaxe des fonctions des champs calculés
Le tableau suivant contient des informations sur la syntaxe des fonctions fournies dans la section ACTION du champ calculé.
Astuce
Les noms des fonctions sont spécifiés en lettres majuscules.
Syntaxe de la fonction | Description | Type renvoyé |
---|---|---|
ADDDAYS (nombre entier, date et heure) | Renvoie une nouvelle date et heure qui est égale à la date et l’heure données, plus le nombre de jours spécifié. | Date et heure |
ADDHOURS (nombre entier, date et heure) | Renvoie une nouvelle date et heure qui est égale à la date et l’heure données, plus le nombre d’heures spécifié. | Date et heure |
ADDMONTHS (nombre entier, date et heure) | Renvoie une nouvelle date et heure qui est égale à la date et l’heure données, plus le nombre de mois spécifié. | Date et heure |
ADDWEEKS (nombre entier, date et heure) | Renvoie une nouvelle date et heure qui est égale à la date et l’heure données, plus le nombre de semaines spécifié. | Date et heure |
ADDYEARS (nombre entier, date et heure) | Renvoie une nouvelle date et heure qui est égale à la date et l’heure données, plus le nombre d’années spécifié. | Date et heure |
SUBTRACTDAYS (nombre entier, date et heure) | Renvoie une nouvelle date et heure qui est égale à la date et l’heure données, moins le nombre de jours spécifié. | Date et heure |
SUBTRACTHOURS (nombre entier, date et heure) | Renvoie une nouvelle date et heure qui est égale à la date et l’heure données, moins le nombre d’heures spécifié. | Date et heure |
SUBTRACTMONTHS (nombre entier, date et heure) | Renvoie une nouvelle date et heure qui est égale à la date et l’heure données, moins le nombre de mois spécifié. | Date et heure |
SUBTRACTWEEKS (nombre entier, date et heure) | Renvoie une nouvelle date et heure qui est égale à la date et l’heure données, moins le nombre de semaines spécifié. | Date et heure |
SUBTRACTYEARS (nombre entier, date et heure) | Renvoie une nouvelle date et heure qui est égale à la date et l’heure données, moins le nombre d’années spécifié. | Date et heure |
DIFFINDAYS (date et heure, date et heure) | Renvoie la différence en jours entre deux champs Date et heure. Si les deux dates et heures tombent le même jour, la différence sera égale à zéro. | Nombre entier |
DIFFINHOURS (date et heure, date et heure) | Renvoie la différence en heures entre deux champs Date et heure. | Nombre entier |
DIFFINMINUTES (date et heure, date et heure) | Renvoie la différence en minutes entre deux champs Date et heure. | Nombre entier |
DIFFINMONTHS (date et heure, date et heure) | Renvoie la différence en mois entre deux champs Date et heure. Si les deux dates et heures tombent le même mois, la différence sera égale à zéro. | Nombre entier |
DIFFINWEEKS (date et heure, date et heure) | Renvoie la différence en semaines entre deux champs Date et heure. Si les deux dates et heures tombent la même semaine, la différence sera égale à zéro. | Nombre entier |
DIFFINYEARS (date et heure, date et heure) | Renvoie la différence en années entre deux champs Date et heure. Si les deux dates et heures tombent la même année, la différence sera égale à zéro. | Nombre entier |
CONCAT (une seule ligne de texte, une seule ligne de texte, … une seule ligne de texte) | Renvoie une chaîne qui est le résultat de la concaténation de deux chaînes ou plus. | Chaîne |
TRIMLEFT (une seule ligne de texte, nombre entier) | Renvoie une chaîne contenant une copie d’une chaîne spécifiée sans les N premiers caractères. | Chaîne |
TRIMRIGHT (une seule ligne de texte, nombre entier) | Renvoie une chaîne contenant une copie d’une chaîne spécifiée sans les N derniers caractères. | String |
Note
Toutes les fonctions DIFF nécessitent que le premier champ Date et heure et le second champ Date et heure aient le même comportement : Heure locale de l’utilisateur, Date uniquement ou Sans fuseau horaire. Si le comportement du deuxième champ ne correspond pas au comportement du premier champ, le message d’erreur apparaît, indiquant que le second champ ne peut pas être utilisé dans la fonction actuelle. Informations complémentaires : Comportement et format du champ de date et d’heure.
Note
Vous ne pouvez pas entrer une date, par exemple 01/01/2015, comme valeur de date dans un champ calculé. Les valeurs Date et Date/Heure peuvent uniquement être définies ou comparées à l’aide d’autres champs Date/Heure.
Dans la fonction CONCAT, vous pouvez utiliser des chaînes littérales sous forme de lignes de texte uniques, de champs d’entités qui contiennent une seule ligne de texte, ou d’une combinaison des deux. Par exemple : CONCAT (FirstName, LastName, “is a manager.”). Si une chaîne littérale contient des guillemets, faites précéder chaque guillemet du caractère d’échappement de barre obliqué inverse (\), comme ceci : "Cette chaîne contient des \”guillemets\””. Vous vous assurez ainsi que les guillemets à l’intérieur de la chaîne ne sont pas traités comme des caractères spéciaux qui séparent les chaînes.
Les exemples suivants expliquent comment utiliser les fonctions TRIMLEFT et TRIMRIGHT. Ils contiennent les chaînes initiales et les chaînes obtenues, retournées par les fonctions TRIMLEFT et TRIMRIGHT :
TRIMLEFT (“RXX10-3456789”, 3), renvoie la chaîne “10-3456789”
TRIMRIGHT (“20-3456789RXX”, 3), renvoie la chaîne “20-3456789”
Considérations sur les champs calculés
Vous devez connaître certaines conditions et limitations lorsque vous travaillez avec des champs calculés :
Les requêtes, graphiques et visualisations enregistrés peuvent comporter jusqu’à 10 champs calculés uniques.
Les valeurs de champs calculés ne sont pas affichées en mode hors connexion de Customer Engagement Outlook dans les vues de vignettes ou sur les formulaires principaux d’entités.
Le nombre maximal de champs calculés enchaînés est de 5.
Un champ calculé ne peut pas faire référence à lui-même ou disposer de chaînes cycliques.
Si vous modifiez l’un des opérateurs de condition dans une clause à plusieurs conditions, tous les opérateurs de condition se mettent à jour sur cette condition. Par exemple, dans la clause
IF (x > 50) OR (y ==10) OR (z < 5)
, si vous remplacez l’opérateurOR
par l’opérateurAND
, tous les opérateursOR
de la clause deviennent des opérateursAND
.Vous pouvez accéder aux champs parentaux via le champ de recherche dans l’entité parente, comme
<LookupFieldName>.<FieldName>
. Cela n’est pas possible avec les champs de recherche de plusieurs entité tels queCustomer
qui peut êtreAccount
ouContact
. Toutefois, certaines entités ont des champs de recherche individuels pour une entité spécifique, commeParentAccountid.<FieldName>
ouParentContactid.<FieldName>
.Le tri est désactivé sur :
Un champ calculé qui contient un champ d’un enregistrement parent.
Un champ calculé qui contient un champ logique (par exemple, un champ d’adresse).
Un champ calculé qui contient un autre champ calculé.
Les champs calculés peuvent s’étendre sur deux entités uniquement.
Un champ calculé peut contenir un champ d’une autre entité (couvrant deux entités – entité actuelle et enregistrement parent).
Un champ calculé ne peut pas contenir un champ calculé provenant d’une autre entité qui contient également un autre champ d’une autre entité (qui couvre trois entités) :
(Entité actuelle)Champ calculé <- (Enregistrement parent) Champ calculé 1 <- (Enregistrement parent) Champ calculé 2.
Vous ne pouvez pas déclencher des workflows ou des plug-ins sur des champs calculés.
Vous ne pouvez pas transformer un champ simple existant en un champ calculé. Si votre application actuelle utilise JavaScript ou des plug-ins pour calculer un champ, vous ne pouvez pas utiliser la fonctionnalité des champs calculés sans créer un nouveau champ.
Les règles de détection des doublons ne sont pas déclenchées sur les champs calculés.
Un cumul ne peut pas faire référence à un champ calculé qui utilise un autre champ calculé, même si tous les champs de l’autre champ calculé se trouvent sur l’entité active.
Voir aussi
Créer et modifier des champs
Définition de champs cumulatifs
Vidéo : Champs cumulatifs et calculés dans Dynamics CRM 2015