覆盖主要内容
版本: 6.1.0

数据校验

案例说明

数据一般都要遵守一定的规则,在前面参照表的例子里,数据必须是参照表里定义的格式。基于参照表的数据验证比较简单,因为符合规则的数据都已经在参照表中事先定义好了。但是大多数数据校验比基于参数表的这种方式更复杂,例如下面的几种情况:

  • 电子邮箱的地址必须是有效的格式。
  • 输入的数据都必须是大写/小写。
  • 日期必须是 dd-mm-yyyy 的格式。
  • 电话号码必须是 xxxx-xxxx-xxxx 的格式。
  • 数值不能超过最大值 X。
  • 订阅用户必须大于 18 岁。
  • IBAN(国际银行账户号)必须是有效的。

其实还能列出上百个和上面类似的例子,但这些例子都有一个共同点:检查数据是否遵照预定义的业务规则,要找出不符合业务规则的数据。注意,这些都属于“属性值域约束”的范畴。

本节将介绍如何在 UDI Studio 中实现数据校验。

使用数据校验组件实现数据校验

UDI Studio 提供了数据校验组件,可以对输入的数据进行校验。具体操作如下:

  1. 新建转换,首先需要一些输入数据,将自定义常量数据拖至画布,双击组件,步骤名称填入“Data Grid”,插入如下图所示字段:

  1. 选择“数据”标签,输入如下图所示数据:

  1. 计算器组件拖至画布来计算平均值,与上一步骤自定义常量数据连接,并双击组件,步骤名称填入“PricePerItem”,在计算里选择“A/B”,把【amount】和【items】作为字段 A 和字段 B,新增加字段名为【ItemPrice】,具体配置如下图:

  1. 使用日期格式校验组件对数据中的日期格式进行校验。将自定义常量数据拖至画布,并把上一步骤的计算器步骤都连接到数据校验,双击组件,修改步骤名称为“Date Validator”

  2. 拖动 空操作(什么也不做)数值检测组件到画布,分别命名为“Invalid Date”和“Numeric Validator”,将“Date Validator”的输出连接到两个组件,合法格式数据输出到“Numeric Validator”组件,不合法格式数据输出到“Invalid Date”组件,各组件的配置如图所示:

  1. 拖动两个 空操作(什么也不做) 组件到画布,分别命名为“Result Data”和“Invalid Number”,同样,将“Numeric Validator”组件合法数据输出到 Result Data,不合法数据输出到 Invalid Number。完整转换如下图所示:

  1. 运行转换,结果如下图所示:

  1. 选中名为Invalid Date的组件,右击并选中预览查看数据。可以观察到【ItemPrice】字段中有 NULL 值,【amount】字段中有大于设置的最大值数据,【adate】字段中有无效的日期点,结果如下图所示:

  1. 选中名为Invalid Number的组件,右击并选中预览查看数据。【ItemPrice】字段中有 NULL 值,结果如下图所示:

  1. 选中名为Result Data的组件,右击并选中预览查看数据。通过校验的数据结果如下图所示: