UiPath Documentation
process-mining
2021.10
true

Guide de l'utilisateur de Process Mining

Dernière mise à jour 5 mai 2026

Agréger des expressions

Introduction

Les expressions d'enregistrement ne prennent que la valeur de l'enregistrement lui-même comme entrée. En comparaison, les expressions agrégées peuvent être utilisées pour effectuer des calculs sur un ensemble spécifique d'enregistrements. Par exemple, pour calculer le Montant total de tous les enregistrements ou le nombre total d'enregistrements de l'ensemble de données. Une expression agrégée peut être comparée à la fonction GROUP BY dans SQL.

Agréger au niveau racine

Une expression agrégée calcule une valeur pour chaque valeur unique au niveau agrégé. Par défaut, celui-ci se trouve au niveau de la racine , c'est-à-dire une valeur pour toute la table.

image des documents

Vous trouverez ci-dessous un exemple d'expression d'agrégation permettant de calculer la somme de tous les montants de l'ensemble de données Factures.

image des documents

L'expression d'agrégation sum(records.amount) est évaluée comme décrit ci-dessous :

  1. Prenez tous les enregistrements dans Factures.
  2. Pour chaque enregistrement, choisissez la valeur de l'attribut Montant de la source de données.
  3. Renvoie la somme de tous ces montants.

L'expression calcule une valeur unique, mais cette valeur est ajoutée à chaque enregistrement de l'ensemble de données. Vous trouverez ci-dessous un exemple d’ensemble de données contenant 4 lignes.

image des documents

Agréger au niveau du sous-niveau

Au lieu de calculer un agrégat sur l'ensemble de l'ensemble de données, vous pouvez également calculer une valeur sur des groupes d'enregistrements.

image des documents

Vous trouverez ci-dessous un exemple d'expression agrégée permettant de calculer le montant total par fournisseur.

image des documents

Un niveau d'agrégation est ajouté et la portée de l'expression est définie sur ce nouveau niveau. Vous trouverez ci-dessous un exemple de jeu de données.

image des documents

L'expression agrégée est calculée une fois pour chaque valeur individuelle au niveau de l'étendue. Cette valeur est ajoutée à chaque enregistrement de cette étendue. Le montant total est donc calculé une fois, puis copié 4 fois dans chaque enregistrement. Le montant total par fournisseur est calculé 3 fois. Comme « Fournisseur A » existe 2 enregistrements, sa valeur est définie sur les deux enregistrements. Comme il n'y a qu'un seul enregistrement pour le « Fournisseur B » et le « Fournisseur C », la valeur est attribuée à l'enregistrement correspondant.

Définir un sous-niveau

Suivez ces étapes pour définir une expression d'agrégat au niveau inférieur.

ÉtapeAction
1Cliquez avec le bouton droit sur Racine dans le panneau Paramètres de la boîte de dialogue Modifier l'attribut d'expression .
2Sélectionnez Ajouter un niveau.
3Cliquez sur niveau et sélectionnez l'attribut de source de données sur lequel vous souhaitez regrouper les valeurs. Dans ce cas Fournisseur.
4Cliquez avec le bouton droit sur le niveau de l'attribut sélectionné et sélectionnez Définir comme niveau de l'expression.
Remarque :

Le niveau sélectionné est indiqué par une flèche.

Structure de l’arborescence

Dans une expression d'agrégation, il est également possible d'accéder à d'autres niveaux que le niveau d'agrégation sélectionné. Nous pouvons utiliser p (pour le parent) et c (pour l’enfant) pour parcourir l’arborescence de haut en bas.

Remarque :

Un nœud a un parent, donc p renvoie un seul nœud, mais peut avoir plusieurs enfants, de sorte que c renvoie une liste de nœuds.

Niveau d'agrégation du parent

image des documents

Vous trouverez ci-dessous un exemple d'expression d'agrégation basée sur un niveau parent.

image des documents

L'expression percentage(sum(records.Amount) / sum(p.records.Amount) * 100) calcule un pourcentage pour chaque fournisseur :

  1. la somme des montants associés à un fournisseur est divisée par la somme de tous les montants.
  2. l'étendue est déplacée vers le niveau parent, c'est-à-dire la racine.
  3. le résultat est multiplié par 100 pour le convertir en pourcentage.

Niveau d'agrégation enfant

image des documents

Vous trouverez ci-dessous un exemple d'expression d'agrégation basée sur un niveau enfant.

image des documents

L'expression count(c) renvoie une liste de tous les fournisseurs par Type de fournisseur. Étant donné que chaque enfant est un fournisseur, le nombre d’enfants c peut être compté.

Création de vérifications conditionnelles

Pour les expressions d'enregistrement, la fonction if() peut être utilisée pour des vérifications conditionnelles. Cependant, cette fonction ne peut être appliquée que par enregistrement. Il n'est pas possible de vérifier une condition dans un groupe d'enregistrements à l'aide d'une instruction if. La structure arborescente peut être utilisée pour parcourir (des parties spécifiques de) vos données, par exemple pour exprimer des propriétés.

image des documents

Les fonctions suivantes peuvent être utilisées pour ce type de calculs.

FunctionDescription
exists(Scope, Condition)Renvoie true si au moins une condition dans Étendue est évaluée comme true.
forall(Scope, Condition)Renvoie true si toutes les conditions dans Étendue ont la valeur true.

Consultez l'illustration ci-dessous pour voir un exemple.

image des documents

Par exemple, l'expression

exists(records, find(lower(Supplier), 'consulting')

vérifie pour chaque type de fournisseur s'il existe des factures d'un fournisseur avec « consulting » dans le nom.

Remarque :

lower est utilisé pour convertir les noms des fournisseurs en minuscules et rendre la coche insensible à la casse.

Filtrage

Lors de l'agrégation de données, des calculs sont parfois effectués en fonction d'une partie spécifique de vos données. Dans ce cas, la fonction filter() peut être utilisée.

image des documents

Vous trouverez ci-dessous un exemple d'expression d'agrégation basée sur un filtre.

count(
    unique(
        filter(
            records,
            supplier_type = "Machinery"
        ).Supplier
    )
)
count(
    unique(
        filter(
            records,
            supplier_type = "Machinery"
        ).Supplier
    )
)

De l’intérieur vers l’extérieur, l’expression est construite de la manière suivante :

  1. Récupérer tous les enregistrements dans l'étendue actuelle.

  2. Filtrez ces enregistrements afin que seuls ceux dont le type Machine est de type Fournisseur restent.

  3. Pour chaque enregistrement filtré, renvoyez la valeur de l'attribut Source de données Fournisseur .

  4. Supprimez toutes les valeurs en double de la liste, de sorte que nous n'ayons qu'un seul élément par valeur unique.

  5. Comptez le nombre d'éléments restants sur la liste.

    image des documents

Dans l'exemple, le niveau du Propriétaire du cas est défini comme le niveau de l'expression. Cela signifie que l'étendue de l'expression est de calculer une valeur pour toutes les valeurs uniques du Propriétaire du cas. Pour chaque valeur du propriétaire du cas , records est la liste des enregistrements appartenant à ce propriétaire du cas.

L'expression renvoie une valeur pour chaque propriétaire de cas, ce qui indique le nombre de fournisseurs uniques avec le type Machine.

Autres options de filtre

Le menu du panneau Paramètres contient des options permettant d'ajouter un filtre pour les agrégats.

image des documents

Vous trouverez ci-dessous une description des options du menu Paramètres (Settings).

OptionDescription
Activer l'expression de filtrePermet de saisir une expression en tant que filtre.
Activer les commandes de filtrageOuvre la boîte de dialogue Modifier les contrôles de filtre dans lequel vous pouvez sélectionner un contrôle de filtre disponible dans la liste.
Activer la période de comparaisonPermet d'ajouter une période de comparaison ou une expression pour définir un certain nombre de périodes précédentes à filtrer.
Appliquer des filtres d'utilisateur finalPermet d'appliquer les filtres d'utilisateur final disponibles.
Remarque :

Lorsque vous utilisez les options de filtre du menu Paramètres , le résultat du filtre s'affiche dans le panneau Valeur . Consultez l'illustration ci-dessous pour voir un exemple.

image des documents

Le tri peut être utilisé pour déterminer la valeur la plus élevée ou la plus faible ou pour traiter les enregistrements dans un certain ordre.

Lorsque vous avez besoin du premier ou du dernier enregistrement de votre expression, vous pouvez effectuer un tri par niveau des manières suivantes :

  • A..Z et Z..A trieront en fonction de la valeur.
    • Sur les chaînes, cela sera trié par ordre alphabétique.
    • Sur les formats numériques (double, entier), cela triera sur une valeur numérique.
    • Sur les formats liés à l'heure (datetime, date), il sera trié par ordre chronologique.
  • 0,.9 et 9,0 trient le nombre d'enregistrements dans le groupe.
  • Expression vous permet de remplir une expression, qui sera triée en fonction de la valeur, comme décrit ci-dessus.

Pour chacune de ces options de tri, il est possible de définir l'ordre croissant ou décroissant.

Voir l'illustration ci-dessous pour un exemple de tri où le premier utilisateur travaillant sur chaque cas est déterminé.

image des documents

L'expression d'agrégation first(records.User) détermine le premier User de chaque Case ID . Event end est trié par ordre croissant.

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour