UiPath Documentation
process-mining
2021.10
true
重要 :
请注意,此内容已使用机器翻译进行了部分本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。
UiPath logo, featuring letters U and I in white

Process Mining 用户指南

上次更新日期 2026年4月23日

聚合表达式

简介

记录表达式仅接受记录本身的值作为输入。相比之下,聚合表达式可用于对特定记录集进行计算。例如,计算所有记录的总金额或数据集中的记录总数。可以将聚合表达式与 SQL 中的GROUP BY函数进行比较。

在根级别聚合

聚合表达式在聚合级别计算每个唯一值的值。默认情况下,这是在“根”级别上,即整个表格的一个值。

文档图像

下面是一个聚合表达式示例,用于计算“发票”数据集中所有金额的总和。

文档图像

聚合表达式sum(records.amount)的计算方法如下:

  1. 获取Invoices中的所有记录 。
  2. 对于每个记录,选取“金额”数据源属性的值。
  3. 返回所有这些金额的总和。

该表达式计算单个唯一值,但此值将添加到数据集中的每条记录中。 以下是包含 4 行数据集的示例。

文档图像

在子级别上聚合

除了计算整个数据集的聚合值,您还可以计算记录组的值。

文档图像

以下是用于计算每个供应商总金额的聚合表达式示例。

文档图像

系统将添加一个聚合级别,并将表达式的作用域设置为此新级别。 以下是示例数据集。

文档图像

为作用域级别内的每个单独的值计算一次聚合表达式。此值将添加到此作用域内的每条记录。因此,总金额计算一次,然后复制 4 次到每条记录。每个供应商的总金额计算 3 次。由于有 2 条包含“供应商 A”的记录,因此其值将设置为两条记录。由于“供应商 B”和“供应商 C”只有一条记录,因此将值分配给相应的记录。

定义子级别

请按照以下步骤在子级别定义聚合表达式。

步骤操作
1“编辑表达式属性”对话框的“设置”面板中,右键单击“根”
2选择“添加级别”
3单击“…级别”,然后选择要对值进行分组的数据源属性。在本例中为“供应商”
4右键单击选定的属性级别,然后选择“设置为表达式级别”
备注:

所选级别由箭头指示。

树结构

在聚合表达式中,也可以访问所选聚合级别以外的其他级别。 我们可以使用p (代表父项)和c (代表子项)来上下遍历树结构。

备注:

节点有一个父节点,因此p返回单个节点,但可以有多个子节点,因此c返回节点列表。

父聚合级别

文档图像

以下是基于父级别的聚合表达式示例。

文档图像

表达式percentage(sum(records.Amount) / sum(p.records.Amount) * 100)计算每个供应商的百分比:

  1. 与供应商关联的金额总和除以所有金额的总和。
  2. 作用域将转移到父级别,即根级别。
  3. 将结果乘以 100 以转换为百分比。

子聚合级别

文档图像

以下是基于子级别的聚合表达式示例。

文档图像

count(c)表达式会返回每种供应商类型的所有供应商的列表。由于每个子项都是供应商,因此可以计算子项c的数量。

创建条件检查

对于记录表达式, if()函数可用于条件检查。 但是,只能按记录应用此函数。 无法使用 if 语句检查一组记录中的条件。 树形结构可用于遍历数据(特定部分),例如表示属性。

文档图像

以下函数可用于此类计算。

函数描述
exists(Scope, Condition)如果作用域中至少有一个条件的计算结果为true ,则返回true
forall(Scope, Condition)如果作用域中的所有条件的计算结果均为true ,则返回true

有关示例,请参见下图。

文档图像

例如表达式

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

如果供应商的发票名称中包含“咨询”,则检查每个供应商类型。

备注:

lower用于将供应商名称转换为小写,并使检查不区分大小写。

筛选

聚合数据时,有时会根据数据的特定部分进行计算。 在这种情况下,可以使用filter()函数。

文档图像

以下是基于筛选器的聚合表达式示例。

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

从内到外,表达式按以下方式构建:

  1. 检索当前作用域内的所有记录。

  2. 筛选这些记录,以便仅保留供应商类型“机器”的记录。

  3. 对于每个筛选出的记录,返回“供应商”数据源属性的值。

  4. 从列表中删除所有重复值,因此每个唯一值只有一个项目。

  5. 计算列表中剩余的项目数。

    文档图像

在该示例中,案例所有者级别被设置为表达式级别。这意味着表达式的作用域是为案例所有者的所有唯一值计算一个值。对于每个案例所有者值, records是属于该案例所有者的记录列表。

表达式为每个“案例所有者” 返回一个值,该值表示类型为“机器”的 唯一 供应商 的数量。

其他筛选器选项

“设置”面板中的菜单包含用于为聚合添加筛选的选项。

文档图像

以下是“设置”菜单选项的说明。

选项描述
启用筛选器表达式用于输入表达式作为筛选条件。
启用筛选器控件打开“编辑筛选器控件”对话框,您可以在其中从列表中选择可用的筛选器控件。
启用比较周期使您能够添加比较期间或表达式,以定义要筛选的多个先前期间。
应用最终用户筛选器使您能够应用可用的最终用户筛选器。
备注:

使用“设置”菜单中的筛选选项时,筛选结果将显示在“值”面板中。有关示例,请参见下图。

文档图像

排序

排序可用于确定最大值或最小值,或按特定顺序处理记录。

当您需要表达式的第一条或最后一条记录时,可以通过以下方式按级别排序:

  • A..ZZ..A将按值排序。
    • 在字符串上,这将按字母顺序排序。
    • 在数字格式(双精度、整数)上,这将按数值排序。
    • 对于与时间相关的格式(日期时间、日期),系统将按时间顺序对其进行排序。
  • 0..99..0将按组中的记录数进行排序。
  • “表达式”允许您填写表达式,该表达式将按上述值进行排序。

对于每个排序选项,可以将顺序设置为升序或降序。

有关排序示例,请参见下图,其中确定了处理每个案例的第一个用户。

文档图像

聚合表达式first(records.User)确定每个Case ID的第一个User }。 Event end按升序排序。

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新