Skip to content

如何配置验证规则

验证规则用于在用户保存新建或编辑的对象数据前,校验所填写的字段值是否符合业务要求。

概述

验证规则本质上是一个逻辑公式。如果公式的计算结果为 true,系统就会判定数据不合规,进而触发阻断或提示动作。


开始之前

  • 您已确认需要校验的自定义或预设对象及相关字段。
  • 您已理清校验的触发场景(新建数据时、编辑数据时,或两者皆是)。
  • 您已拟定好给用户展示的错误提示信息。

操作步骤

第一步:进入验证规则

  1. 登录管理后台,进入 对象管理
  2. 打开目标对象详情,选择 验证规则
  3. 点击 新建 按钮。

第二步:配置基础属性

  1. 填写 规则名称描述
  2. 选择 使用场景
    • 新建:用户点击“新建”按钮录入保存时触发校验。
    • 编辑:用户在详情页点击“编辑”按钮并保存时触发校验。
  3. 配置 是否阻断保存
    • 阻断:前台弹出提示,且不允许保存,用户必须修改正确后才能提交。
    • 不阻断:前台弹出警告提示,但提供“继续保存”的选择。
  4. 填写 提示内容(即返回 true 时展示给用户的错误信息)。

第三步:配置规则公式与空值处理

  1. 在公式编辑区中,输入校验的逻辑条件(如:手机号开始日期 > 结束日期)。

  2. 高级模式:如需引用主对象下的字段或跨查找关联(Lookup)对象下的属性,必须勾选启用 高级模式

  3. AI 公式助手:您可以通过在输入框输入 / 或点击 Ai公式助手,输入中文业务需求,让 AI 自动为您生成公式。

    AI 公式助手

    AI 公式生成

  4. 空值处理策略:对于公式中参与数学计算的字段,如果用户未填,可能导致计算报错(Null 报错)。

    • 管理员应在下方设置【公式中字段为空值时-默认为零】。

      WARNING

      对于非数值、非金额、非百分比类型的字段(如日期、文本等),“默认为零”选项不起作用,系统直接以空值参与计算。空值进行日期加减或逻辑判断会报错返回 Null。管理员必须在公式中显式使用 ISNULL(field) 等判空函数来处理这些字段。

  5. 点击 保存


常见排查与解决思路

如果前台发现数据没有按预期拦截,请按以下原因进行排查:

1. 验证规则中使用了查找关联对象的“统计字段”

  • 现象:新建记录时不阻断,二次编辑时却被阻断;或者新建时明细满足错误条件,但未触发拦截。

  • 原因分析:验证规则在执行时,使用的是数据库中上一次保存的统计字段历史值,而非页面上实时看到的最新累加值。在新建记录时,数据库中该统计字段尚无数据,故规则判定不满足而放行。

    统计字段不生效 1

    统计字段不生效 2

  • 解决思路

    • 方案一:将从对象上的计算字段设置为数值字段,使用默认值公式,使其在页面端进行前端实时计算。
    • 方案二:直接在保存按钮中,配置 前验证函数 来执行统计校验。

2. 使用了本对象的“负责人主属部门/负责人所在部门”字段

  • 原因分析:在新建记录保存并提交的瞬间,“负责人主属部门”字段在数据库中尚未被计算并赋值(它是在数据成功存入数据库后由负责人自动带出的)。因此,验证规则获取不到该部门值。

    部门校验失败 1

  • 解决思路:在验证公式中,不要使用 负责人主属部门 字段,而是采用跨对象级联引用的方式:负责人.主属部门 进行校验。由于负责人在新建时已有值,级联引用可以正常读取到部门数据。

    级联引用

3. 数据不满足校验条件但依然保存进去了

请依次检查:

  1. 确认该验证规则是否处于 启用 状态。
  2. 该记录的创建/编辑时间是否早于该规则的创建时间(规则对历史已存数据不生效)。
  3. 检查数据录入入口是否为 Web 页面端。如果是通过后台导入、OpenAPI 接口调用、自定义按钮字段变更或工作流函数更新的数据,系统默认会直接绕过验证规则
  4. 查看该数据的修改记录,检查是否在保存后被其他后置工作流或函数将值修改为了空。

相关主题