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 :

  1. Ouvrez l’explorateur de solutions

  2. Développez Composants>Entités.

  3. 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 et OR.

  • 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é » :

Revenus pondérés de l’opportunité dans Dynamics 365 for Customer Engagement.

Définition de la condition sur les opportunités :

Définir les revenus pondérés dans Dynamics 365 for Customer Engagement.

Fournissez la formule du revenu pondéré :

Définir la valeur estimée des revenus pondérés dans Dynamics 365 for Customer Engagement.

En tout :

Revenu pondéré à revenu estimé dans Dynamics 365 for Customer Engagement.

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 » :

Création du champ calculé Date de suivi.

Définition des deux conditions sur le prospect d’origine :

Définir la première condition pour le champ calculé.

Définir la seconde condition pour le champ calculé.

Formule de suivi dans une semaine :

Fournissez la formule pour le champ calculé.

Formule de suivi dans un mois :

Fournir la deuxième formule.

En tout :

Définir la date de suivi If-Then & Else dans Dynamics 365 for Customer Engagement.

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 » :

Créer un champ calculé dans Dynamics 365 for Customer Engagement.

Fournissez la formule pour calculer la différence en jours

Champ calculé, fonction DIFFINDAYS.

En tout :

Différence en jours depuis la création de l’enregistrement.

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érateur OR par l’opérateur AND, tous les opérateurs OR de la clause deviennent des opérateurs AND.

  • 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 que Customer qui peut être Account ou Contact. Toutefois, certaines entités ont des champs de recherche individuels pour une entité spécifique, comme ParentAccountid.<FieldName> ou ParentContactid.<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