Créer un champ cumulatif pour agréger des valeurs
Cette rubrique s’applique à Dynamics 365 Customer Engagement (on-premises). Pour la version Power Apps de cette rubrique, consultez : Définir des champs cumulatifs dans Power Apps
Les champs cumulatifs sont conçus pour aider les utilisateurs à obtenir un aperçu des données grâce au suivi de mesures métier clés. Un champ cumulatif contient une valeur agrégée calculée sur les enregistrements associés à un enregistrement particulier, tel que les opportunités ouvertes d’un compte. En outre, vous pouvez agréger des données issues des activités directement associées à un enregistrement, tels que les messages électroniques et les rendez-vous, et les activités indirectement associées à un enregistrement via l’entité Groupe d’activité. Dans les scénarios plus complexes, vous pouvez agréger des données sur la hiérarchie d’enregistrements. En tant qu’administrateur ou personnalisateur, vous pouvez définir des champs cumulatifs à l’aide de la fonctionnalité, sans qu’il soit nécessaire qu’un développeur en écrive le code.
Fonctionnalités et avantages des champs cumulatifs
Les avantages et fonctionnalités des champs cumulatifs sont les suivants :
L’édition visuelle est facile. Vous pouvez créer des champs cumulatifs à l’aide de l’éditeur de champs, comme vous le faites lorsque vous créez un champ standard.
Large éventail de fonctionnalités d’agrégation. Vous pouvez agréger des données à l’aide des fonctions suivantes :
SUM
,COUNT
,MIN
,MAX
etAVG
.Prise en charge totale des filtres pour l’agrégation. Vous pouvez définir divers filtres pour l’entité source ou l’entité associée en définissant plusieurs conditions.
Intégration parfaite à l’interface utilisateur. Vous pouvez inclure les champs cumulatifs dans les formulaires, les vues, les graphiques et les rapports.
Les champs cumulatifs sont des composants de solution. Vous pouvez facilement les transférer en tant que composants entre les organisations et les distribuer dans les solutions.
Les champs cumulatifs et les champs calculés sont complémentaires. Vous pouvez utiliser un champ cumulatif en tant que partie du champ calculé, et inversement.
Quelques exemples de champs cumulatifs :
Total du revenu estimé des opportunités ouvertes d’un compte
Total du revenu estimé des opportunités ouvertes sur tous les comptes d’une hiérarchie
Total du revenu estimé d’une opportunité comportant des opportunités enfants
Valeur estimée totale des prospects qualifiés générés par une campagne
Nombre d’incidents ouverts à priorité élevée sur tous les comptes d’une hiérarchie
Heure de création au plus tôt de tous les incidents ouverts à priorité élevée pour un compte
Chaque champ cumulatif crée deux champs accessoires avec le modèle de suffixe <fieldname
>_date et <fieldname>
_state. Le champ _date est du type de données Date et heure et le champ _state est du type de données Entier.
Le champ _date est un champ créé par le système, qui est utilisé pour stocker la dernière date et heure auxquelles la valeur d’un champ cumulatif a été calculée.
Le champ _state contient les valeurs suivantes :
Région | Description |
---|---|
0 => NotCalculated | La valeur du champ n’a pas encore été calculée. |
1 => Calculated | La valeur du champ a été calculée en fonction de l’heure de la dernière mise à jour dans le champ _date. |
2 => OverflowError | Le calcul de la valeur de champ a entraîné une erreur de dépassement de capacité. |
3 => OtherError | Le calcul de la valeur de champ a échoué à la suite d’une erreur interne. L’exécution suivante de la tâche de calcul résoudra probablement cette erreur. |
4 => RetryLimitExceeded | Le calcul de la valeur de champ a échoué car le nombre maximal de nouvelles tentatives pour calculer la valeur a été dépassé en raison du nombre élevé de conflits de simultanéité et de verrouillage. |
5 => HierarchicalRecursionLimitReached | Le calcul de la valeur de champ a échoué car la limite maximale de détail de la hiérarchie du calcul a été atteinte. |
6 => LoopDetected | Le calcul de la valeur de champ a échoué car une boucle récursive a été détectée dans la hiérarchie de l’enregistrement. |
Calculs de cumuls
Les cumuls sont calculés par des tâches système planifiées qui sont exécutées de façon asynchrone en arrière-plan. Vous devez être un administrateur pour afficher et gérer les tâches de cumul. Pour afficher les tâches de cumul, accédez à Paramètres>Tâches système>Afficher>Tâches système récurrentes. Pour trouver rapidement une tâche approprié, vous pouvez filtrer par type de tâche système : Calculer en masse le champ cumulatif ou Calculer le champ cumulatif.
La tâche Calculer en masse le champ cumulatif est une tâche récurrente, créée par rapport à un champ cumulatif. Elle s’exécute une seule fois, lorsque vous avez créé ou mis à jour un champ cumulatif. La tâche recalcule la valeur spécifiée du champ cumulatif dans l’ensemble des enregistrements existants contenant ce champ. Par défaut, la tâche est exécutée 12 heures après la création ou la mise à jour d’un champ. Une fois la tâche terminée, elle est automatiquement planifiée pour s’exécuter dans un futur lointain, environ 10 ans. Si le champ est modifié, la tâche est redéfinie pour s’exécuter à nouveau 12 heures après la mise à jour. Le délai de 12 heures est nécessaire pour s’assurer que la tâche Calculer en masse le champ cumulatif s’exécute pendant les heures non travaillées de l’organisation. Il est préférable qu’un administrateur ajuste l’heure de début d’une tâche Calculer en masse le champ cumulatif une fois le champ cumulatif créé ou modifié, de telle sorte qu’elle s’exécute pendant les heures non travaillées. Par exemple, l’heure appropriée pour exécuter la tâche est minuit, pour assurer un traitement efficace des champs cumulatifs.
La tâche Calculer le champ cumulatif est une tâche récurrente qui effectue des calculs incrémentiels de tous champs cumulatifs dans les enregistrements existants d’une entité spécifiée. Il n’existe qu’une seule tâche Calculer le champ cumulatif par entité. Les calculs incrémentiels signifient que la tâche Calculer le champ cumulatif traite les enregistrements créés, supprimés ou mis à jour après la dernière exécution terminée de la tâche Calculer en masse le champ cumulatif. Le paramètre de récurrence maximum par défaut est d’une heure. La tâche est automatiquement créée lorsque le premier champ cumulatif d’une entité est créé et supprimée lorsque le dernier champ cumulatif est supprimé.
Option de nouveau calcul en ligne. Si vous placez le pointeur sur le champ cumulatif dans le formulaire, vous pouvez voir l’heure du dernier cumul et vous pouvez actualiser la valeur de cumul en choisissant l’icône d’actualisation en regard du champ, comme indiqué ci-dessous :
Vous devez tenir compte de certaines considérations lorsque vous utilisez l’option de nouveau calcul en ligne (actualisation manuelle du formulaire) :
Vous devez disposer des privilèges d’écriture sur l’entité et des droits d’accès en lecture sur l’enregistrement source sur lequel vous demandez l’actualisation. Par exemple, si vous calculez le revenu estimé des opportunités ouvertes d’un compte, vous n’avez pas besoin de disposer des privilèges d’écriture sur l’entité d’opportunité, uniquement sur l’entité de compte.
Cette option est disponible uniquement pour le mode en ligne. Vous ne pouvez pas l’utiliser en mode hors connexion.
Le nombre maximal d’enregistrements durant l’actualisation cumulative est limité à 50 000 enregistrements. En cas de cumul hiérarchique, ceci s’applique aux enregistrements associés sur la hiérarchie. Si la limite est dépassée, vous voyez le message d’erreur : « Les calculs ne peuvent pas être effectués en ligne car la limite de calcul des 50 000 enregistrements associés a été atteinte. ». Cette limite ne s’applique pas lorsque le cumul est recalculé automatiquement par les tâches système.
La limite maximale de détail de la hiérarchie est définie sur 10 pour l’enregistrement source. Si la limite est dépassée, vous voyez le message d’erreur : « Les calculs ne peuvent pas être effectués en ligne, car la limite de détail de la hiérarchie de l’enregistrement source, 10, a été atteinte. ». Cette limite ne s’applique pas lorsque le cumul est recalculé automatiquement par les tâches système.
En tant qu’administrateur système, vous pouvez modifier le critère de périodicité de la tâche de cumul, ainsi que reporter, suspendre ou reprendre cette tâche. Toutefois, vous ne pouvez pas annuler ou supprimer une tâche de cumul. Pour suspendre, reporter, reprendre ou modifier le critère de périodicité, accédez à Paramètres>Tâches système. Dans Vue, sélectionnez Tâches système récurrentes. Dans la barre de navigation, choisissez Actions et sélectionnez l’action que vous souhaitez. Pour la tâche Calculer en masse le champ cumulatif, les choix possibles sont : Reprendre, Reporter et Suspendre. Pour la tâche Calculer le champ cumulatif, les choix possibles sont : Modifier la périodicité, Reprendre, Reporter et Suspendre.
Scénarios d’entreprise de champs cumulatifs
Étudions quelques scénarios de champ cumulatif. Nous agrégerons les données d’un enregistrement à partir des enregistrements associés, avec et sans hiérarchie. Nous agrégerons également les données d’un enregistrement à partir des activités associées directement et indirectement à un enregistrement, via l’entité Groupe d’activité. Dans chaque exemple, nous définissons le champ cumulatif à l’aide de l’éditeur de champs. Pour ouvrir l’éditeur de champ, ouvrez l’explorateur de solutions et développez Composants>Entités. Sélectionnez l’entité souhaitée et sélectionnez 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. Dans Type de champ, sélectionnez Cumul, après avoir sélectionné le type de données. Les types de données incluent les nombres décimaux ou entiers, les devises et la date/heure. Choisissez le bouton Modifier à côté du Type de champ. Vous accédez à l’éditeur de définition du champ cumulatif. La définition du champ cumulatif est composée de trois sections : Entité source, Entité associée et Agrégation.
Dans la section Entité source, vous spécifiez l’entité pour laquelle le champ cumulatif est défini et si vous effectuez l’agrégation via une hiérarchie. Vous pouvez ajouter des filtres avec plusieurs conditions pour spécifier les enregistrements de la hiérarchie à utiliser pour le cumul.
Dans la section Entité associée, vous spécifiez l’entité sur laquelle vous effectuez l’agrégation. Cette section est facultative lorsque vous choisissez d’effectuer le cumul via la hiérarchie sur l’entité source. Vous pouvez ajouter des filtres avec plusieurs conditions pour spécifier quels enregistrements associés utiliser dans le calcul. Par exemple, vous incluez le revenu des opportunités ouvertes avec un revenu annuel supérieur à 1 000 $.
Dans la section Agrégation, vous spécifiez la mesure vous souhaitez calculer. Vous pouvez sélectionner les fonctions d’agrégation disponibles, telles que SUM, COUNT, MIN, MAX ou AVG.
Données agrégées d’un enregistrement à partir des enregistrements associés
Dans cet exemple, une hiérarchie n’est pas utilisée. Le revenu estimé total est calculé pour un compte, à partir des opportunités ouvertes associées.
Données agrégées d’un enregistrement à partir des enregistrements enfants, via la hiérarchie
Dans cet exemple, nous calculons le revenu estimé total d’une opportunité incluant les opportunités enfants, via la hiérarchie.
Données agrégées d’un enregistrement à partir des enregistrements associés, via la hiérarchie
Dans cet exemple, nous calculons le revenu estimé total des opportunités ouvertes sur tous les comptes, via la hiérarchie.
Données agrégées d’un enregistrement à partir de toutes les activités associées
Dans cet exemple, nous calculons le temps total passé et facturé à partir de toutes les activités associées à un compte. Cela peut inclure le temps passé au téléphone, en rendez-vous ou dans les activités personnalisées.
Dans les versions précédentes, vous pouviez définir un champ cumulatif pour une activité individuelle telle qu’un appel téléphonique, une télécopie ou un rendez-vous. Mais pour obtenir le résultat de l’exemple ci-dessous, vous deviez faire le total des données en utilisant les champs calculés. Maintenant, vous pouvez faire tout cela en une seule étape en définissant un champ cumulatif pour l’entité Activité.
Données agrégées d’un enregistrement à partir de toutes les activités associées directement et indirectement à un enregistrement via l’entité Groupe d’activité
Dans cet exemple, nous comptons le nombre total de messages électroniques envoyés à un compte, où le compte est répertorié dans la ligne « Au destinataire » ou à la ligne « Cc au destinataire ». Cela se fait en indiquant le Type de participation dans les FILTRES pour l’entité Groupe d’activité dans la définition du champ cumulatif. Si vous n’utilisez pas le filtrage, alors tous les types de participation disponibles pour une activité sont utilisés dans le calcul. Pour plus d’informations sur l’entité Groupe d’activité et les types d’entités disponibles pour une activité spécifique, voir Entité ActivityParty.
Données agrégées d’un enregistrement à partir des enregistrements associés à l’aide de l’opérateur AVG
Dans cet exemple, nous calculons un chiffre d’affaires moyen estimé à partir de toutes les opportunités associées à un compte.
L’exemple suivant explique comment calculer un chiffre d’affaires moyen estimé à partir des opportunités associées sur une hiérarchie de comptes. Un chiffre d’affaires moyen estimé peut être disponible à chaque niveau de la hiérarchie.
Considérations relatives aux champs cumulatifs
Vous devez connaître certaines conditions et restrictions lorsque vous travaillez avec les champs cumulatifs :
Vous pouvez définir jusqu’à 100 champs cumulatifs pour l’organisation et jusqu’à 10 champs cumulatifs par entité.
Un workflow ne peut pas être déclenché par les mises à jour des champs cumulatifs.
Une condition d’attente de workflow ne peut pas utiliser un champ cumulatif.
Un cumul sur le champ cumulatif n’est pas pris en charge.
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.
Un champ de cumul ne se met pas à jour automatiquement s’il utilise un champ de formule qui dépend de fonctions limitées dans le temps, telles que
NOW()
,UTCNOW()
,ISUTCTODAY()
, ouUTCTODAY()
. L’option de recalcul en ligne (actualisation manuelle du formulaire) ou Recalculer Le bouton doit être utilisé pour calculer la dernière valeur du champ de cumul.Le cumul peut uniquement appliquer des filtres à l’entité source ou aux entités associées, aux champs simples ou aux champs calculés non complexes.
Un cumul ne peut se produire que sur des entités associées avec la relation 1 à N. Un cumul ne peut pas se produire sur les relations N à N.
Un cumul ne peut pas se produire sur la relation 1 à N de l’entité Activité ou de l’entité Groupe d’activité.
Les règles métier, workflows ou champs calculés utilisent toujours la dernière valeur calculée du champ cumulatif.
Un champ cumulatif est agrégé dans le contexte d’utilisateur système. Tous les utilisateurs peuvent afficher la même valeur de champ cumulatif. Vous pouvez contrôler la visibilité des champs cumulatifs avec la sécurité au niveau des champs, en limitant les utilisateurs qui peuvent accéder à ces champs. Plus d’informations : Sécurité au niveau des champs
Si la précision du champ agrégé est supérieure à la précision du champ cumulatif, la précision du champ agrégé est arrondie à la précision du champ cumulatif, avant d’exécution de l’agrégation. Pour illustrer ce comportement, regardons un exemple spécifique. Supposons que le champ cumulatif de l’entité de compte, pour calculer les revenus totaux estimés des opportunités associées, possède une précision de deux décimales. Le champ Revenu estimé de l’entité d’opportunité est le champ agrégé avec la précision de quatre décimales. Dans notre exemple, le compte a deux opportunités associées. La somme agrégée du revenu estimé est calculée comme suit :
Revenu estimé de la première opportunité : 1 000,0041 $
Revenu estimé de la deuxième opportunité : 2 000,0044 $
La somme agrégée du revenu estimé : $1000.00 + $2000.00 = $3000.00
Comme vous pouvez le constater, la précision d’arrondi sur les deux premières décimales du champ agrégé a lieu avant l’opération d’agrégation.
Certains formulaires d’entités, tels que Compte ou Contact, dès la livraison, contiennent les grilles associées. Par exemple, un formulaire Compte contient les grilles Contacts, Incidents, Opportunités et d’autres. Certains des enregistrements indiqués dans les grilles du formulaire Compte sont directement liés à l’enregistrement de compte. D’autres le sont indirectement, via les relations avec d’autres enregistrements. En comparaison, l’agrégation de champs cumulatifs utilise uniquement des relations directes explicitement définies dans la définition des champs cumulatifs. Aucune autre relation n’est prise en compte. Pour illustrer la différence de comportement, regardons l’exemple ci-après.
Le compte A1 possède un contact principal, P1. L’incident C1 est associé au compte A1 (champ C1.Customer = A1) et l’incident C2 est associé au contact P1 (champ C2.Customer = P1).
La grille Incidents du formulaire Compte pour l’enregistrement A1 indique deux incidents, C1 et C2.
Le champ cumulatif de l’entité de compte, appelé Nombre total d’incidents, est utilisé pour compter les incidents associés au compte.
Dans la définition du champ cumulatif du compte, nous spécifions les incidents qui ont la relation client avec le compte. Après l’agrégation, le Nombre total d’incidents est égal à 1 (incident C1). L’incident C2 n’est pas inclus dans le total, car il est directement associé au contact, pas au compte, et ne peut pas être explicitement défini dans la définition du champ cumulatif du compte. Par conséquent, le nombre total d’incidents renvoyés par l’opération de cumul ne correspond pas au nombre d’incidents affichés dans la grille Incidents.
Voir aussi
Créer et modifier des champs
Définition de champs calculés
Comportement et format du champ de date et d’heure
Interroger et visualiser les données hiérarchiques