Skip to main content

公式概览

本文为你列举了目前宜搭已经支持的所有公式。

文本函数

函数名称

说明

表单场域

报表场域

数据准备

ARRAYGET

使用该函数,可以获取数据集中指定第几个数的值。

CONCATENATE

使用该函数,可以将多个文本字符串合并成一个文本字符串。

LEFT

使用该函数,可以从一个文本字符串的第一个字符开始返回指定个数的字符,如果文本长度小于自定字符个数,就将原始文本返回。

RIGHT

从一个文本字符串的最后一个字符开始返回指定个数的字符。

LEN

使用该函数,可以获取文本字符串中的字符个数。

LOWER

将一个文本中的所有大写字母转换为小写字母。

UPPER

将一个文本字符串中的所有小写字母转换为大写字母。

MID

返回文本中从指定位置开始的指定个数的字符。

PINYINHEADCHAR

返回字符串中的每个汉字首字母,首字母为大写字母。

REPLACE

根据指定的字符数,将部分文本字符串替换为不同的文本字符串。

REPT

可以将文本重复一定次数。

RMBFORMAT

将数字格式化为人民币格式。

SEARCH

获取文本1在文本2中的开始位置。

类似POS

类似POS

SPLIT

将文本按指定分割符分割成数组,需配合ARRAYGET来获取指定位置字符。

TEXT

格式化成文本。

TRIM

删除字符串首尾的空格,但是会保留字符串内部作为词与词之间分隔的空格。

UUID

生成唯一字符串赋值给单行输入框。

VALUE

将文本转换成数字。通常是用作数据已经录入需要变通计算的场景。

类似VAL

类似VAL

STRINGTONUMBER

该公式用于将文本类型的数字,转换成数值类型。

LEFTTRIM

去掉<字段>左边的空格后返回

RIGHTTRIM

去掉<字段>右边的空格后返回

CONCAT

公式会将多个字段连接为一个字符串

SPLITPART

公式会将一个字符串按照“分隔字符”将其分为N个子串(N等于分隔字符的数量+1)

NUMBERTOSTRING

数值类型的数据转换成字符串

时间函数

函数名称

说明

表单场域

报表场域

数据准备

CASCADEDATEINTERVAL

计算日期区间选择框组件中的,开始和结束日期的相隔天数。

CASCADEDATEINTERVALV2

返回日期区间2个日期的天数。

DATE

将时间戳转换为日期对象。

DATEDELTA

将指定日期加/减指定天数。

DAY

返回某日期的天数。

DAYBEGIN

将指定日期组件的时间戳的时分秒置零后的时间戳结果。

DAYEND

将指定日期组件的时间戳的时分秒设置成最大。

DAYS

返回两个日期之间的天数。

DAYS360

DAYS360 函数返回两个日期间相差的天数。

HOUR

返回某日期的小时数。

ISOWEEKNUM

一个指定日期在当年的周数。

MINUTE

返回某日期的分钟数。

MONTH

返回某日期的月份。

NETWORKDAYS

可以计算两个特定日期中的工作日天数。

NOW

返回当前时间,与 TODAY 函数相同。

SECOND

返回某日期的秒数。

SYSTIME

返回当前服务器时间。

TIME

返回特定时间的十进制数字。

TIMESTAMP

将日期对象转换成时间戳,主要用来将日期公式计算出的日期对象转为时间戳,给日期组件赋值。

TODAY

返回今天。

WEEKNUM

返回特定日期的周数。

类似WEEK

类似WEEK

WORKDAY

可以计算出距离某个具体时间点N个工作日后的另一个时间点默认工作日排除周末,且可以通过假期(Holiday)进行更加细致的工作日定义。

YEAR

返回某日期的年份。

YEARBEGIN

获取日期所在年份的首个日期。

YEAREND

获取日期所在年份的最后一个日期。

DATEFORMAT

将日期格式化成字符串

STRINGTODATE

该公式用于将文本类型的数字,转换成数值类型。

DATEDIFF

时间段字段1减去时间段字段2在时间粒度上的差值

DATEADD

在<时间字段>的基础上增加<时间粒度>的<偏移量>

QUARTER

计算日期年份中的哪一季度, 是否是财年:1表示按照财年统计(4月份), 0表示按照自然年

FROMUNIXTIME

将数字型的unix时间日期值unixtime转为日期值

数组函数

函数名称

说明

表单场域

报表场域

数据准备

ArrayToString

将数组转换为字符串

StringToArray

将字符串解析为数组

ArrayLength

返回数组长度

ArrayCat|

返回多数组拼接格式

逻辑函数

函数名称

说明

表单场域

报表场域

数据准备

EQ

判断相等。

NE

判断不等。

AND

并且、条件同时成立。

OR

or 或,其中一个条件成立。

NOT

非、否定。

XOR

异或(计算机科学 特定逻辑判断)。

FALSE

布尔值为假的逻辑情况。

TRUE

布尔值为真的逻辑情况。

GE

大于等于。

LE

小于等于。

GT

大于。

LT

小于。

IF

条件判断。

ISEMPTY

判断一个字段是否为空。

ISNULL

判断明细内的某个组件值是否为空,或者多项选择框的值是否为空。

HASEMPTYTEXT

判断明细内的某个组件提交的数组值中是否包含空字符串。

TIMECOMPARE

比较两个时间的大小,日期选择框1 大于 日期选择框2 返回 true,否则返回 false。

NUMBERCOMPARE

比较两个数字的大小,数值组件1 > 数值组件2,返回 true,否则返回 false。

CASEWHEN

类同SQL中的case when语法

数学函数

函数名称

说明

表单场域

报表场域

数据准备

COUNT

统计指定表单提交的数据总数。

ADD

计算多个字段值总和。

AVERAGE

获取一组数值的算术平均值。

(AVG)

MAX

返回一组数字中的最大值。

MIN

返回一组数字中的最小值。

ABS

当数值为负数的时候返回他的绝对值数值。

ROUND

数值出现小数点的时候,将小位数指定到对应的位数。

CEILING

返回将参数 number 向上舍入(沿绝对值增大的方向)为最接近的指定基数的倍数。

FLOOR

将参数 number 向下舍入(沿绝对值减小的方向)为最接近的 significance 的倍数。

INT

将数字向下舍入到最接近的整数。

LOG

根据指定底数返回数字的对数。

MOD

返回 2 个数值组件相除的余数。

POWER

计算出数值组件乘幂的值。

FIXED

将数字舍入到指定的小数位数,以十进制数格式对该数进行格式设置,并以数字形式返回结果。

SQRT

取数值组件值正的平方根。

SUM

函数使所有以参数形式给出的数字相加并返回和。

PRODUCT

返回结果为双精度浮点类型。

SUMPRODUCT

在给定的数组中,将数组间对应的元素相乘,并返回乘积之和。

LARGE

返回数据集中第k个最大值。

SMALL

返回数据集中第 k 个最小值。

COUNTDISTINCT

对<字段>进行去重计数的结果,[排除字段]不参与求和的交叉计

ParseDouble

字符串或整数强转浮点数

Parseint

字符串或浮点数强转整数

集合函数

函数名称

说明

表单场域

报表场域

数据准备

DIFFERENCESET

计算两个集合的差集。

INTERSECTIONSET

计算两个集合的交集。

SUBSET

计算第二个集合是否第一个集合的子集。

UNIONSET

计算两个集合的并集。

校验函数

函数名称

说明

表单场域

报表场域

数据准备

ARRAYREPEATED

数组判断是否重复。

EXIST

判断是否在某个集合中存在。

EXACT

比较两个字符串是否完全相同(区分大小写)。

人员函数

函数名称

说明

表单场域

报表场域

数据准备

USER

无参数模式:User() 获取当前登录人; 有参数模式:User(level) 当前登录人的主管, level 是 获取当前登录人的主管。

USERFIELD

人员搜索框需要联动带出一些基本信息。

DIRECTOR

获取当前登陆人的主管名称。

EMPLOYEE

返回对应的人员信息对象数组(即人员组件底层的值)。

GETUSERNAME

获取当前登录人昵称。

LOGINUSER

登录人。

LOGINUSERWORKNO

获取当前登录人员工唯一ID(员工UserID)。

DEPTNAME

用于根据userId获取指定用户所在的部门信息。

高级公式函数

函数名称

说明

表单场域

报表场域

数据准备

DELETE

用于删除目标表数据。

INSERT

用于把当前录入表的数据插入到目标表中。

UPDATE

用于更新目标表中符合条件的数据。

UPSERT

用于往目标表单中插入或者更新数据。

公式常见问题

1. EQ 条件,被更新的表单中用于比较的组件需要放在 EQ 的第一个参数

EQ 用于做比较条件,被更新的表单中需要用于比较的组件需要放在 EQ 的第一个参数

2. EQ 条件,被更新的表单中用于比较的组件不能嵌套其他公式

注:EQ 后面需要添加比较的组件,不能直接添加公式,如有需要可以在用于比较的组件后面添加公式。

3. 逗号、括号等需要是英文

4. 不能使用不支持的组件作为比较条件

能作为判断条件的组件: 「单行文本」、「多行文本」、「单选」、「下拉单选」、「日期」,其他组件暂时不支持。

5. 不能赋值给不支持的组件

能进行赋值的组件: 只有同类型的组件才能互相赋值,「单行文本」、「多行文本」、「数值」、「单选」、「下拉单选」、「复选」、「下拉复选」、「级联选择」、「日期」、「日期区间」、「图片上传」、「附件」、「成员」、「地址」。其他组件暂时不支持。

6. 不同类型的组件不能互相赋值

注意:只有同类型的组件才能互相赋值,比如「数值」组件不能往「图片上传组件」赋值,详情如下表所示:

来源组件/公式

可赋值的组件

单行文本

单行文本

多行文本

多行文本

数值

单行文本

多行文本

数值

单选

单选

下拉单选

下拉单选

单选

下拉单选

复选

复选

下拉复选

下拉复选

级联选择

级联选择

日期

日期

日期区间

日期区间

图片上传

图片上传

附件

附件

成员

成员

地址

地址

文本函数

单行文本

多行文本

7. 比较条件(与)的逻辑用 AND, 暂不支持(或)的逻辑

8. 业务关联公式暂不支持在条件中与字符串做判断,可使用 IF公式判断后再使用业务关联公式

9. 业务规则使用IF条件后不生效?

若配置业务关联公式使用IF公式先进行判断,则IF判断的条件应为主表条件。

注意IF需要写在外层判断,否则会不生效。

10. 应用配置错误,请联系管理员

配置业务关联公式后,若提交数据时报“应用配置错误,请联系管理员”错误,这是由于目标表进行比较以及填充的目标列均为未参与搜索字段,需要在目标表的数据管理页中将目标或比较字段添加到搜索字段中。

10.1 操作步骤如下:

10.1.1 找到目标表的数据管理页中的设置查询条件

10.1.2 查看目标表字段是否参与搜索,若未参与搜索,可通过设置参与搜索字段配置

10.1.3 进入设置页面后,在模糊搜索项将目标列配置为搜索字段,并点击立即执行

11. 主条件配置错误

该问题是由于子条件位置放置错误,需要用主表的字段先进行匹配才行

12. 子条件配置错误,一次只能更新一个明细,若匹配目标表的数据为主表数据,则应放在主条件中,并用 AND 连接

13. 当匹配条件的目标列为子表数据时,那么配置公式后会报“目标列不在更新的明细下”的错误,需要将目标列修改为主表字段

14. 参数格式不匹配

配置业务关联规则公式提示:参数格式不匹配,请检查是否通过代码方式修改了组件标题进行换行,若组件标题有换行,在配置公式的时候字段就会进行换行展示且会报错。


15. 业务关联规则与集成自动化执行顺序相关问题

15.1 混用业务关联规则和集成自动化时怎么排序执行?

目前,业务关联规则和集成自动化是独立的执行逻辑,而且都是按各自的执行顺序执行,即执行顺序不可控

如果混合使用的话,可能导致同一个目标表单被两套任务调度系统无法按预期的顺序执行,导致业务结果的更新结果异常,尤其是对于进销存等有增有减的复杂业务处理。

优先推荐使用宜搭的集成自动化进行业务间同步。

15.2 一个集成自动化节点有多条业务关联规则怎么排序执行?

业务关联规则目前支持多条规则写入,但由于产品限制,规则之间无法选择执行顺序

为解决排序执行的问题,可以使用集成自动化的新增、更新、删除等【数据节点】代替,这些节点支持编排顺序,也支持在【运行日志】中查看执行记录。

具体设置可以参考以下截图:

16. 表单编辑前的值和表单编辑后的值区别?

表单编辑状态下配置业务关联规则,会有表单编辑前的值和表单编辑后的值,区别如下:

表单字段 A 的的值是【西瓜】,修改该字段值为【桃子】,编辑前的值为【西瓜】,编辑后的值为【桃子】,一般用于编辑后需要修改原目标表单值的场景中。

17. 高级函数的用量限制?

目前宜搭业务规则函数支持的用量如下:

核心函数

作用

用量限制

INSERT

公式主要用于把当前录入表的数据插入到目标表中

  1. 通过批量导入触发业务关联规则插入目标表为主表,字段无条数限制(建议导入不超过 1000 条数据,超过数据导入会较慢),批量导入有文件大小限制(20MB)
  2. 子表单插入主表
    1. 免费版:最多支持50条
    2. 轻享版、专业版、专属版:最多支持500条

UPDATE

公式用于更新目标表中符合条件的数据

  1. 目标表为主表字段,单次最多只能更新 100 条,超出会报错导致提交失败
  2. 目标表为子表单数据
    1. 免费版:最多支持更新50条明细
    2. 轻享版、专业版、专属版:最多支持更新500条(默认是50条,需在表单编辑页面将子表单条数设置成500条)

UPSERT

公式用于往目标表单中插入或者更新数据

  1. 目标表为主表单数据,单次最多只能更新 100 条,超出会报错导致提交失败
  2. 目标表为子表单数据
    1. 免费版:单次最多更新插入某条表单数据下 50 条,
    2. 轻享版、专业版、专属版:单次最多更新插入500条(默认是50条,需要在表单编辑页面设置最大条数为500条),超出也会报错提示「提交失败」

DELETE

公式用于删除目标表数据

  1. 目标表为主表单数据,单次最多删除100条
  2. 目标表为子表单数据
    1. 轻享版、专业版、专属版:单次删除最多支持500条

18. 表单字段新增导致业务规则没有执行?

目标表新增了字段以后,历史数据还是没有这个字段的,所以是无法更新的,需要将历史数据编辑保存,让新字段加载出来,才可以正常更新。可以通过批量导入/更新的方案来解决。

19. 使用日期组件作为判断条件,导致公式未能成功运行?

不建议使用日期组件作为判断条件,目前获取的是时间戳,时间戳用来做判断条件是不准确的。

可以使用一个单行文本把日期组件的值赋值给单行文本,然后用单行文本来作为判断条件。

20. 业务规则触发场景?

集成自动化新建的数据暂不支持触发业务规则。

视频讲解:


This doc is generated using machine translation. Any discrepancies or differences created in the translation are not binding and have no legal effect for compliance or enforcement purposes.
Copyright © 2025钉钉(中国)信息技术有限公司和/或其关联公司浙ICP备18037475号-4