跳到主要内容

2022.01.18 版本更新-公式体验全新升级

版本范围:所有版本

本次宜搭针对公式场景进行了全新的体验升级,覆盖公式的5大场景,并针对社区反馈的高频问题,提高公式创建与编辑效率。


低代码平台中,公式可方便的对数据进行轻量级加工


优化覆盖5大公式场景:

场景1:公式选中更高效

  • 公式焦点优化:插入公式光标自动居中、表单字段实现整体编辑

场景2: 公式检索更聪明

支持字段名称、公式名称、公式图谱信息的快速检索

  • 公式的名称、描述、场景描述均可被智能识别。
检索更人性化

可以搜索含语义化的描述,自动过滤出所有有关的函数

  • 例如:
    • 搜汉字 “加法”,自动检索出【SUM
    • 搜汉字 “今天”,自动检索出【TODAY】函数
    • 搜汉字 “首字母”,自动检索出【PINYINHEADCHAR】函数
    • 搜汉字 “某某”,自动猜出你想要的公式.... 👍🏻

ps:欢迎大家在文档下发留言【你希望的公式联想词】,我们会选择合适的建议录入推荐内容

4大业务场景全兼容
  • 覆盖表单字段公式、表单业务关联、连接器公式等场景的公式使用入口均支持搜索功能

场景

支持搜索功能后

1、表单设计器:组件公式编辑面板

2、表单设置:页面公式校验、业务关联规则校验

3、流程:节点规则公式设置

普通流程-节点提交规则设置

高级流程-节点提交规则公式设置

4、集成&自动化 :流程设置-节点提交规则设置

场景3:公式识错更及时

公式函数名:点击即可即时反馈使用说明

语法检测即时反馈:函数名、函数参数、函数返回值嵌套、语法解析

场景4:新增5个函数:

面向有一定IT经验的开发者,提供了5个新型高级函数,以覆盖多部门、多主管的人员通讯录复杂场景:

  • 3个构造器函数(DeptBuilder、UserBuilder、DirectorBuilder)
  • 2个工具型函数(GetArrayItem、GetObjectField)

复杂场景介绍:

当涉及多部门、多主管的场景时会遇到3个场景,极限情况下可能会同时发生

  • 场景1:成员组件通过选人可选取多人(1对多)
  • 场景2:每一个人可能同时所属与多个部门(1对多)
  • 场景3:么在每个部门时都可能对应1个主管(1对1)


为了更好的解决 【场景1 、场景 2、场景3】,我们提供下面的几个函数,通过配合表单组件的选择,可基本解决各种多部门、多主管的业务场景。

3个构造器函数

函数介绍

函数参数说明

函数返回值说明

函数使用介绍

UserBuilder 作为成员构造函数,用于生成指定 userId 列表或指定成员组件所对应的人员对象列表集合。

成员组件 或 指定员工工号

一个成员集合

说明:

UserBuilder(成员组件)或UserBuilder(["userId_1","userId_2"] )


用法举例:

UserBuilder(成员组件) 生成指定成员组件选取后的人员模对象'

DirectorBuilder 作为主管构造函数,用于生成当前登录人或指定某1个人的第n级主管,level>=1,返回对应主管的人员模型集合(支持多主管场景

参数1:空串代表当前登录人

参数2:上级主管的层级

一个成员集合

说明:

DirectorBuilder("" , 1) 获取当前登录人的1级直接主管集合 、DirectorBuilder("userId_123", 2 ) 获取指定userId人员的2级直接主管集合


用法举例:

DirectorBuilder( GetObjectField( GetArrayItem(成员组件, 1) , "userId_123"), 2) 获取工号为 userId_123 员工的2级主管的人员对象列表

DeptBuilder 用于生成 指定人员所在的部门集合(支持多部门场景),其指定类型可以是当前登录人、指定userId的人员、或单选模式下的成员组件

不传任何参数可获得当前登录人部门

指定人员信息

一个部门集合

说明:
DeptBuilder() 获取当前登录人的所在部门集合、
DeptBuilder('userId') 获取指定userId人员的部门集合DeptBuilder(GetArrayItem(成员组件, 序号Index)) 获取成员组件指定人员的部门集合,序号Index从1开始


用法举例: DeptBuilder(GetArrayItem(成员组件, 1)) 获取指定成员组件所选人员的所在部门集合,若多部门则全部返回

2个工具型函数

函数介绍

函数参数说明

函数返回值说明

函数使用介绍

GetObjectField用于对指定的标准json对象中获取指定key对应的value属性值


(标准Json对象类型,属性ID)

文本

用法举例:

GetObjectField(GetArrayItem(成员组件,1), "label")

GetArrayItem(标准JsonArray类型,n)

GetArrayItem用于对指定的标准JsonArray中获取第n个数据单元,n>=1 , n<=数组的长度,n=1时代表第1个数据单元

(标准JsonArray数组类型,n)

n代表第几个。

n为大于1的正整数 , n=1代表第1项

Json

用法举例:

GetArrayItem(部门组件,1) 获取指定数组中第1个数据单元。对于部门组件则返回对应的部门ID


用法举例:

GetArrayItem(成员组件数组,1) 获取指定成员数组中第1个数据单元

场景5:部门组件支持函数默认值

配合 DeptBuilder 公式,可以快速初始化 表单部门组件默认值

  • DeptBuilder支持3种场景:
    • 无参数, 代表当前登录人的所在直接部门
    • 或 userid ,指定成员id的所在直接部门
    • 或 单选的成员组件,成员组件对应成员所在直接部门

已知问题修复:

1. 提升公式执行可靠性:

背景说明:

公式是一套规则表达式,并分为编写表达式,和执行表达式并获得计算结果。

触发条件:

由于部分公式逻辑需借助网络传输采用云端计算,在特定弱网场景下,部分公式计算结果若还未完成,就提交表单的话,会造成落库数据与业务预期不一致的情况。

解决方案:

此次通过对宜搭公式的前后端的能力升级,通过引入公式【执行锁】的能力,提升宜搭的公式结算在极端情况下的可靠性保证。

2. 解决公式型字段默认值引用无法修改问题

触发条件:

表单设计态:表单组件A通过公式设置了默认值,如果组件B通过公式又引用了组件A。

表单运行态:则A的表单无法2次修改

解决方案:

目前支持运行态时,上述的表单组件A可自由修改。组件A为宜搭表单中所有支持公式默认值的组件。

Copyright © 2024钉钉(中国)信息技术有限公司和/或其关联公司浙ICP备18037475号-4