跳到主要内容

业务规则


在创建、查看或编辑记录数据时,通过设定业务规则,可以改变字段的属性(隐藏、显示、只读、编辑、必填),或者整条记录不允许编辑;也可以比较字段之间的值,然后提醒给操作人员。

功能示例

  • 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这组条件

字段隐藏指的场景

  • 字段配置的属性隐藏
  • 视图隐藏的字段
  • 业务规则隐藏的字段
  • 公开表单未使用的字段
  • 子表/关联记录未启用显示的字段
  • 审批/填写按钮中隐藏的字段

文档问题反馈

文档中是否有错别字、内容过期、难以理解等问题? 点此给我们反馈吧