集成云_表达式与聚合函数-高级进阶教程
一、表达式
1.1 主键值生成函数
1.1.1 随机ID生成函数
提示:此类函数主要用于主表和分录表的主键字段赋值。
警告:使用此类函数赋值的字段不能设置为候选键。
#{new_int_id()}
生成18位整数,适合作为苍穹数据表bigint主键值。
#{new_string_id()}
生成长度为18的字符串,适合作为苍穹数据表varchar主键值。
#{new_uuid()}
生成36位UUID字符串,适合作为数据表主键或时间戳字段值。
#{new_int32_id()}
生成9位整数,适合作为int型主键值。
#{new_boid(BOSTYPE)}
使用BOSTYPE生成28字符的BOID,适合作为EAS数据表的主键值; 其中BOSTYPE是EAS/BOS单据实体的8位十六进制字符串。
1.1.2 幂等ID生成函数
该类函数根据候选键字段值进行Hash运算生成不变的值,适合要求生成的ID具有不变性的场景。
提示:使用此类函数赋值的字段必须建立唯一索引以提高数据集成的性能。
警告:此类函数不可用于分录字段赋值,仅允许用于主表字段赋值。
#{md5($keys)}
根据候选键字段值生成32位16进制字符串。
#{mur($keys)}
根据候选键字段值生成18位整数。
#{md5s18($keys)}
根据候选键字段值生成18位BASE64编码的字符串。
#{mur32($keys)}
根据候选键字段值生成9位整数。
#{boid($keys,BOSTYPE)}
根据候选键字段值生成28位BASE64编码的BOID字符串; 其中BOSTYPE是EAS/BOS单据实体的8位十六进制字符串。
1.2 日期/时间类函数
#{now}
当前时间
#{today}
今天
#{now-TIMESPAN}
当前时间减去一个时间范围,适用于查询条件值,以支持增量数据集成。TIMESPAN的格式如下:n day, n hour, 或n minute。示例如下:
#{now-1day}
#{now-2hour}
#{now-3minute}
警告:表达式中不允许包含空格。
1.3 分析函数
${seq}
分录序号生成,为分录表数据行生成从1开始的编号。
${acc(field)}
逐行累计,根据分录表字段(field)的值生成逐行累计值。
1.4 其他函数
#{null}
空值
#{ssid}
来源系统ID
#{tenant}
当前租户ID。
#{ssid+','+soid}
来源系统ID与源单ID的组合,以逗号(,)分隔
#{soid}
源单ID
#{md5(ssid+','+soid)}
生成来源系统ID与源单ID组合Hash值,结果是32位16进制字符串
#{md5(soid)}
生成源单ID的Hash值,结果是32位16进制字符串
#{mur(soid)}
生成源单ID的Hash值,结果是18位整数
2020-04-09新增固定值函数
#{execution_id}
当前集成任务ID
#{execution_number}
当前集成任务编码
#{trigger_number}
启动方案编码
#{trigger_id}
启动方案id
#{schema_id}
集成方案id
#{schema_number}
集成方案编码
#{scheduled_time} 任务创建时间
#{ctx_user_id} 当前上下文环境用户ID
二、聚合运算
2.1 统计函数
sum
求和,对源单分录属性值求和。
count
计数,对源单分录属性值中的非空值计数。
avg
计数,对源单分录属性值中的非空值数量求平均值。
2.2 字符串函数
split(s)
字符串分拆,按指定的分隔字符串(s)对源表(主表)字段值进行分拆;实现1行转N行的效果。
join(s)
字符串连接,用指定的分隔字符串(s)对源表(分录)字段值进行连接;实现N行合并为1行的效果。
to_eas_id(BOSTYPE)
将字符串转换为EAS/BOS的合法单据ID;字符串的个数与结果单据ID的个数相同。
2.3 选择函数
[n]
选择第n行分录的值,注意:第一行的序号是1。
[-n]
选择倒数第n行分录的值,注意:最末一行的序号是-1。
[field=value]
选择指定字段值的分录行的值。例如:[locale=en_US],通常用于同步苍穹基础资料到EAS基础资料。
2.4 复制函数
repeat_on(entry_property)
将源单属性值按“同级分录”的行数复制为相同长度的数组,以便与“该分录”的属性共同赋值于目标单的分录。
如上例:对分录 tripentry.from 值进行复制,每个按2级分录tripentry.entryentity的行数复制为同长的数组。从而可以将1级分录(tripentry)的简单属性可以与2级分录(tripentry.entryentity)的简单属性一起赋予目标单的同一个分录(e)。
集成云_表达式与聚合函数-高级进阶教程
本文2024-09-23 00:52:49发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-142333.html