业务规则
在创建、查看或编辑记录数据时,通过设定业务规则,可以改变字段的属性(隐藏、显示、只读、编辑、必填),或者整条记录不允许编辑;也可以比较字段之间的值,然后提醒给操作人员。
功能示例
1、在安排面试时,如果是电话面试,就显示手机号字段。如果是现场面试就显示会议室字段
2、在出库某个商品时,如果出库量大于商品当前的库存量,则不能保存并提醒给用户。
3、当产品的状态标记为上架后,所有字段都不能编辑。
配置入口
应用管理员找到要配置的工作表,然后依次点击 编辑表单 > 表单设置 > 业务规则。
规则的组成
一条业务规则由一个或一组条件、一个或一组动作组成。满足设定的条件后执行相应的动作。
条件
支持设定1个条件,或多个条件组合。每个条件由条件字段+比较关系+条件值组成。
固定值:例如面试类型是选项,有3个选择,这时就能选择固定值
字段值:例如出库量和库存的对比,每个商品库存会随时变的,应该选择为字段值。
动作
执行的动作主要分字段的交互和字段的验证。
字段交互
字段交互有以下几种动作:
- 显示字段
- 隐藏字段
- 将字段设置为只读
- 将字段设置为必填
- 将字段设置为可编辑
- 只读所有字段
只读所有字段在记录保存后生效,生效后不允许用户直接编辑,但可以通过自定义动作和工作流进行填写。
字段验证
将数据进行对比,记录数据满足了验证条件后将禁止保存,并提示给操作人。 支持设置提醒的内容和时机,以及数据校验的时机。
数据的校验时机:
第1次校验: 在新增记录或打开已有记录时,对于页面中填写或读取的数据,进行一次比较验证。
第2次校验:勾选"保存到服务器时再次校验"后,会再次读取数据进行校验,放置编辑数据的时候,后台的数据已经改变,导致出错。 例如,在进行出库时,会读取到现有库存,这时页面的库存量不会再变,即使其他人也进行了出库的操作更改了实际库存。因此,此场景下,需要在保存数据时再读取一次服务器中的实际数据进行校验,保证数据的准确性。
数据的提醒时机:
- 两种方式:在字段输入时时时验证提醒,或点击提交或保存按钮时统一提醒。
数据的提醒位置:
- 支持将提醒显示在指定的字段。如果字段是只读的,则字段上不会显示提示内容。
实例演示
满足条件时显示或隐藏字段
场景:在安排面试时,面试方式有现场面试和视频会议面试。如果是现场面试、则显示会议室字段,隐藏会议链接字段;当面试方式是视频会议时,显示会议链接字段、隐藏会议室字段
表单配置:
将表单简化为3个字段:面试方式、会议室、会议链接。
需要实现的效果
当面试方式选择了 “视频会议” 时,隐藏会议室字段
当面试方式选择现场面试,隐藏会议链接字段
配置规则
条件设置: 当面试方式等于视频会议时
执行的动作: 显示会议链接字段、隐藏会议室字段。
效果
初学者可能会再配置1个条件,当面试方式等于现场面试时,隐藏或显示字段。其实这个条件可有可无。
原因:业务规则中,如果满足条件后让其隐藏、则当不满足条件后,会执行其对立的动作。在示例中配置的条件中,当选择视频会议,显示了会议链接字段,隐藏会议室字段,当不满足这个条件时,即选择了“现场面试”,这个规则会执行隐藏掉会议链接字段,显示会议室字段。因为隐藏和显示是对立的。 查看详情
出库时对比库存量
场景:在出库某个商品时,如果出库量大于商品当前的库存量,不能保存并提醒给用户。
表单配置
在"验证"标签页下创建业务规则。当出库数量大于当前库存时,提示错误给操作人。
由于库存量是一个随时变化的量,因此选择对比"当前库存"的动态字段值。
提示内容根据场景需求编辑,如本场景可以提示为库存量不足等。
提示的内容可以直接显示在相关字段上,我们选择显示在库存和出库量两个字段中。
勾选"在字段输入时实时提示",输入相关字段值时就会匹配提示,如果不勾选,则仅在提交或保持时进行提示。
由于库存出入的操作比较频繁,在编辑时,提取到的库存量可能已被修改,且库存必须精准。因此需要勾选"保存数据到服务器时再次校验",做双层验证。
效果
当编辑条件中的字段时,会直接在字段中提示错误。
规则的基本管理
查看或编辑规则
删除规则、复制规则
规则排序
开启或关闭规则
业务规则是否满足条件的处理逻辑
如果为某个字段设定了业务规则,满足规则条件时和不满足规则条件时处理逻辑如下图。
动作 | 条件满足时 | 条件不满足 | |
---|---|---|---|
1 | 显示 | 显示 | 隐藏 |
2 | 隐藏 | 隐藏 | 显示 |
3 | 可编辑 | 可编辑 | 取字段原有属性 |
4 | 必填 | 必填 | 取字段原有属性 |
5 | 只读 | 只读 | 取字段原有属性 |
6 | 可编辑+必填 | 必填 | 取字段原有属性 |
7 | 可编辑+只读 | 只读 | 取字段原有属性 |
8 | 只读+必填 | 显示 | 取字段原有属性 |
9 | 显示+隐藏 | 隐藏 | 显示 |
10 | 只读所有字段 | 只读所有字段 | 不做什么动作 |
举例说明:
第1行,业务规则中设定字段A是显示的,如果不满足规则条件,则字段A是隐藏的,无论字段的原属性是隐藏还是显示。因为显示和隐藏是绝对对立互斥的关系。
第3行,业务规则中设定字段A是可编辑,如果不满足时,则取字段的原来的属性(是否只读),并不会设置为只读,因为可编辑并没有唯一的对立属性,可能是只读,也可能是必填,因此不满足时会取字段原来的属性。
常见错误配置示例
如下图,对于“推广活动名称”这个字段,有两个规则让其显示,但是这样配置的话, 这个字段始终是隐藏的。
错误原因:
前面我们讲过,如果符合规则中条件后让字段显示,那么不符合条件时,会让其隐藏的。 在这个场景中,线索来源只能是"广告推广"或“Email推广”的其中一个,符合其中一个规则条件,就一定不符合另一个规则的条件了,这样总有一个规则让你隐藏,最终字段是隐藏的。
正确的配置:
对于同一个字段,尽量放在一个规则中。
业务规则、工作流、角色权限对字段影响的优先级
字段的4个原始属性和1个必填验证
在工作表中配置字段时,可以设定4个原始属性和1个必填验证
- 隐藏
- 显示(不勾隐藏则为显示)
- 只读
- 编辑(不勾只读则为可编辑)
- 必填(可编辑时必须验证)
它们之间的优先级是:隐藏>显示>只读>必填>编辑 。低优先级遇到高优先级时冲突时,低优先级将失效,例如:
字段A: 字段A设置了必填(或业务规则让其必填),而此时字段A是隐藏或只读的,隐藏或只读了无法编辑,则必填不再验证
字段B: 业务规则1让字段B隐藏,业务规则2让字段B显示,则最终字段B为隐藏状态
很多地方都能控制一个字段的属性,例如字段配置(隐藏、新增时隐藏)、视图、角色权限、自定义按钮、工作流(审批、填写、通知等节点)和业务规则。那么他们和业务规则的的优先级是怎么样的?
1、"新增时隐藏"不受"业务规则"影响
例如,某字段设置了“新增时隐藏”,那么新增记录时该字段始终是隐藏的,不受任何影响。
2、业务规则高于字段原始属性
- 如果某个业务规则让字段A显示,则此字段必然显示,即使字段里设置了隐藏。
- 如果某个业务规则让字段A可编辑,原始属性设置为隐藏,那么此字段最终是显示并可编辑的。
- 字段中设置的必填,只要字段可编辑,会加上必填验证,如果字段只读,则为只读。
3、多个业务规则之间,取属性优先级
将每个规则对比叠加,取最高优先级,然后覆盖字段原始属性。
例1:对于一个字段A,规则1为隐藏,规则2为显示,规则3为可编辑,原始属性设置为显示,最终字段A是隐藏的。
例2:对于一个字段A,规则1为可编辑,规则2为必填,原始属性设置为只读,最终字段A是必填的。
4、工作流、按钮、角色权限和业务规则之间取属性最高级
任意两种配置之间会按照属性优先级取最高级属性,然后再覆盖字段的原始属性。
其实只要有工作流、按钮、业务规则参与进来,那么字段配置都会被覆盖掉。
5、只读所有字段
业务规则中只读所有字段即锁定记录,只对工作表操作时有效,即直接通过工作表打开记录时,记录会锁定,还可以通过以下两种方式编辑填写。
可以通过自定义按钮编辑字段
工作流中的填写节点、审批节点、发送站内通知节点打开记录,依然可以继续编辑,不会锁定。
业务规则中字段隐藏时有效性逻辑
业务规则中参与的字段不可见,对业务规则的执行是有影响的,不同的规则动作有不同的逻辑。业务规则的动作主要分两类:
提示错误
非提示错误动作
- 显示、只读、隐藏、必填、可编辑、锁定
1 非提示错误动作的处理逻辑
只要条件字段存在没被删除,业务规则就执行。
2 提示错误的处理逻辑
A > 0 时,提示错误:xxx
示例:出库量 < 10 时;提示错误 :每次出库必须大于10。当出库量字段隐藏时,则不会提示错误。
A > B 时,提示错误:xxx
AB只隐藏一个,规则正常执行
AB都隐藏,则忽略业务规则
A >0且B>0 时,提示错误:xxx
AB只隐藏一个,两个条件正常判断,规则正常执行
AB都隐藏,则忽略业务规则
(A > B) 或 (C > D) 时,提示错误:xxx
- 当A或B隐藏时,按上面逻辑处理
- 当A和B都隐藏时,忽略A>B这组条件,走C>D这组条件
字段隐藏指的场景
- 字段配置的属性隐藏
- 视图隐藏的字段
- 业务规则隐藏的字段
- 公开表单未使用的字段
- 子表/关联记录未启用显示的字段
- 审批/填写按钮中隐藏的字段
文档问题反馈
文档中是否有错别字、内容过期、难以理解等问题? 点此给我们反馈吧