- 发行说明
- 入门指南
- 安装
- 配置
- 集成
- 身份验证
- Working with Apps and Discovery Accelerators
- AppOne 菜单和仪表板
- AppOne 设置
- TemplateOne 1.0.0 菜单和仪表板
- TemplateOne 1.0.0 设置
- TemplateOne 菜单和仪表板
- TemplateOne 2021.4.0 设置
- Purchase to Pay Discovery Accelerator 菜单和仪表板
- 购买到付款 Discovery Accelerator 设置
- Order to cash Discovery Accelerator 菜单和仪表板
- “订单到现金” Discovery Accelerator 设置
- Basic Connector for AppOne
- SAP Connectors
- 适用于 AppOne 的 SAP 订单到现金连接器
- 适用于 AppOne 的 SAP 采购到付款连接器
- SAP Connector for Purchase to Pay Discovery Accelerator
- SAP Connector for Order-to-Cash Discovery Accelerator
- Superadmin
- 仪表板和图表
- 表格和表格项目
- 应用程序完整性
- How to ....
- 使用 SQL 连接器
- Introduction to SQL connectors
- Setting up a SQL connector
- CData Sync extractions
- Running a SQL connector
- Editing transformations
- 释放 SQL 连接器
- Scheduling data extraction
- Structure of transformations
- Using SQL connectors for released apps
- Generating a cache with scripts
- Setting up a local test environment
- Separate development and production environments
- 实用资源
聚合表达式
GROUP BY
函数进行比较。
聚合表达式在聚合级别为每个唯一值计算一个值。 默认情况下,这是在 根 级别,即整个表格的一个值。
下面是一个聚合表达式示例,用于计算“发票”数据集中所有金额的总和。
sum(records.amount)
的计算方法如下:
- 获取 Invoices中的所有记录。
- 对于每条记录,选取“ 金额 ”数据源属性的值。
- 返回所有这些金额的总和。
该表达式计算单个唯一值,但此值将添加到数据集中的每条记录中。 以下是包含 4 行数据集的示例。
除了计算整个数据集的聚合值,您还可以计算记录组的值。
以下是用于计算每个供应商总金额的聚合表达式示例。
系统将添加一个聚合级别,并将表达式的作用域设置为此新级别。 以下是示例数据集。
为作用域级别内的每个单独值计算一次聚合表达式。 此值将添加到此作用域内的每条记录。 因此, 总计 计算一次,然后将 4 次复制到每条记录。 每个供应商的总金额 计算 3 次。 由于“供应商 A”有 2 条记录,因此将其值设置为两条记录。 由于“供应商 B”和“供应商 C”只有一个记录,因此会将值分配给相应的记录。
p
(代表父项)和c
(代表子项)来上下遍历树结构。
p
返回单个节点,但可以有多个子节点,因此c
返回节点列表。
以下是基于父级别的聚合表达式示例。
percentage(sum(records.Amount) / sum(p.records.Amount) * 100)
计算每个供应商的百分比:
- 与供应商关联的金额总和除以所有金额的总和。
- 作用域将转移到父级别,即根级别。
- 将结果乘以 100 以转换为百分比。
if()
函数可用于条件检查。 但是,只能按记录应用此函数。 无法使用 if 语句检查一组记录中的条件。 树形结构可用于遍历数据(特定部分),例如表示属性。
以下函数可用于此类计算。
函数 |
描述 |
---|---|
|
如果作用域中至少有 一个条件的 计算结果为
true ,则返回true }。
|
|
如果作用域中的所有条件的计算结果均为
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
)
)
从内到外,表达式按以下方式构建:
- 检索当前作用域内的所有记录。
- 筛选这些记录,以便仅保留“ 供应商”类型 为“ 机械 ”的记录。
- 对于每个筛选的记录,返回“ 供应商 ”数据源属性的值。
- 从列表中删除所有重复值,因此每个唯一值只有一个项目。
-
计算列表中剩余的项目数。
records
是属于此案例所有者的记录列表。
该表达式为每个 案例所有者 返回一个值,该值表示类型为 Machinery的唯一供应商的数量。
排序可用于确定最大值或最小值,或按特定顺序处理记录。
当您需要表达式的第一条或最后一条记录时,可以通过以下方式按级别排序:
-
A..Z 和 Z..A 将按值排序。
- 在字符串上,这将按字母顺序排序。
- 在数字格式(双精度、整数)上,这将按数值排序。
- 对于与时间相关的格式(日期时间、日期),系统将按时间顺序对其进行排序。
- 0..9 和 9..0 将根据组中的记录数进行排序。
- “表达式 ”允许您填写表达式,该表达式将按上述值排序。
对于每个排序选项,可以将顺序设置为升序或降序。
有关排序示例,请参见下图,其中确定了处理每个案例的第一个用户。
first(records.User)
确定每个Case ID
的第一个User
}。 Event end
按升序排序。