# 数据校验
在业务系统中数据质量非常重要,如果在业务流程中填报或录入了不合规范的数据可能会导致系统显示异常,严重的甚至可能影响业务功能的正常运行。在基于SuccBI低代码平台搭建的业务应用中,可以在前端设计器的输入组件中定义输入数据的校验规则,但是由于实际的业务系统中数据的来源方式比较多,如移动端、PC端、Excel导入、API接口等,需要在每个来源的页面都去定义相同的校验规则,很容易疏漏,不方便进行统一的管控。
数据校验是指在数据模型层面上定义数据的规范性约束,包括必填、逻辑校验、取数范围、数据唯一性等校验方式,不管数据是从哪里写入到模型中,都必须满足模型上定义的数据校验规则才能正常写入数据库。
另外,与输入组件的前端校验方式相比,模型上的数据校验属于后端校验,具有更高的安全性,黑客也无法通过伪造请求来绕过模型的数据校验。
# 新建校验
例如,创建逻辑校验规则:手机号必须为11位
,在模型管理 > 数据校验中新建校验规则,如下:
示例地址:人员采样信息表 (opens new window)
操作步骤:
- 在
人员采样信息表
的模型管理标签页栏切换至数据校验
- 点击添加规则,下拉选择逻辑校验
- 校验字段:选择【联系方式】字段
- 规则描述:
手机号(${[人员采样信息表].[联系方式]})必须是11位
- 校验条件:
LEN([人员采样信息表].[联系方式])=11
# 校验方式
在数据校验界面,可以点击添加规则按钮来创建校验规则,模型上支持定义四种类型的校验规则:必填、逻辑校验、取数范围、数据唯一性。
# 必填
必填表示字段不允许为空,比如身份证号不允许为空。在添加必填规则对话框中,可通过勾选字段来批量添加必填的字段。
# 逻辑校验
逻辑校验用来定义字段自身数据或字段之间数据的逻辑约束关系,比如【联系方式】字段值必须是11位的手机号、【身份证号】必须为18位、【身份证号】倒数第二位与人员的【性别】要相符等。
逻辑校验规则对话框,具有如下属性:
- 校验字段:选择需要进行逻辑校验的字段
- 规则描述:当写入数据不符合校验规则时,显示的描述信息,可以引入表达式,比如描述可以为
身份证号码(${[人员采样信息表].[证件号码]})必须为18位
,在描述信息中可以显示出关键的身份证号信息 - 校验条件:在生效条件下满足该校验条件的为校验成功,比如【联系方式】必须为11位,校验条件写为
LEN([人员采样信息表].[联系方式])=11
- 生效条件:只有当满足生效条件时该校验规则才生效,比如只有内资企业才需要填写某些指标、核酸检测中混样方式为
10混1
时采样人数不能超过10人等 - 自定义提示数据:勾选后可以添加多个提示数据键值对,以方便前端显示更加细化的提示信息,比如
身份证号中性别信息与性别字段相符
校验规则,不满足时最好能分别显示出身份证号、性别字段的值,则可以定义两条提示数据,如下:
描述 | 值 |
---|---|
身份证号: | [人员采样信息表].[身份证号] |
性别: | [人员采样信息表].[性别] |
# 取数范围
取数范围用来定义字段的取值范围,根据字段的不同类型,取数范围支持定义五种类型的范围检查,如下:
- 在关联表内:当模型的字段上设置了关联表,且要求写入表中的数据必须都存在于关联表中时,可以设置范围检查为在关联表内,设置后,取数范围自动设置为关联表
- 在枚举项内:指定字段的值只能在枚举项范围内,多个枚举项用逗号隔开,如
01,02,03
- 长度范围:用于字符字段,用来限制字符的长度,设置后,通过填写最小、最大值来限定字符长度的范围
- 日期范围:用于日期或时间类型字段,用来限制时间的范围,设置后,通过填写最小、最大值来限定时间范围
- 数值范围:用于数值字段,用来限制写入的数值的范围,设置后,过填写最小、最大值来限定数值范围
# 数据唯一性
数据唯一性用来定义除主键外需要在数据上保持唯一的字段组合,一般是业务上的主键,比如核酸检测中同一试管条码,证件类型+证件号码+姓名+检测机构不能重复。
数据唯一性校验规则对话框,具有如下属性:
- 校验字段:拥有该校验规则的字段
- 规则描述:当写入数据不符合校验规则时,显示的描述信息,可以引入表达式,与逻辑校验相同
- 字段组合:下拉选择必须唯一的字段组合
- 生效条件:只有当满足生效条件时该校验规则才生效,与逻辑校验相同
- 自定义提示数据:勾选后可以添加多个提示数据键值对,以方便前端显示更加细化的提示信息,与逻辑校验相同
# 校验规则管理
在如上工具栏中,可以对校验规则进行管理
- 新建
点击添加规则按钮,在下拉菜单中选择需要创建的校验规则类型来新建校验规则
- 编辑
在校验列表中,可以勾选一个校验规则,点击编辑进行修改。注意,只有逻辑校验和数据唯一性校验支持编辑,且每次只能选择一个校验规则进行编辑。
- 禁用/启用
在校验列表中,可以勾选一个或多个校验规则,点击禁用按钮来使校验规则失效但不删除,禁用后可点击启用来使规则生效。
- 过滤
当校验列表校验规则很多时,可以通过校验类型下拉过滤框,选择某种规则类型过滤校验列表。
# 数据校验的应用
模型上定义了数据校验规则后,在表单、SuperPage等页面进行数据的填写提交、批量导入数据时可以使用模型校验规则,分为两种场景:
- 应用中提交表单数据
在应用的数据集的权限设置中勾选启用模型上的校验规则,输入组件绑定的字段即可自动继承模型上的校验规则设置。
示例地址:模型数据校验-逐条校验 (opens new window)
- 导入Excel批量校验并记录校验结果
实际应用中常常需要把外部的Excel、CSV等数据批量导入到目标表中,同时希望只导入校验成功的数据,导入失败的能查看校验结果情况。例如,批量导入人员采样信息 (opens new window),先把所有的数据导入到人员采样信息-临时表 (opens new window)并记录校验结果,再过滤校验成功的数据复制到目标表。