变量类型
系统 Toolkit 在 Business Automation Studio 中提供,以便您创建的每个 工作流程自动化 和 Toolkit 都可以访问公共系统数据。 系统 Toolkit 提供了以下类别的变量:
- 基本类型
- 基本类型允许您创建称为业务对象的定制变量类型。 有关所有基本类型的列表,请参阅下表。
- 系统类型
- 系统类型提供的是不能修改的变量类型。 有关所有系统类型的列表,请参阅 流程和服务流中的JavaScript API。
| 基本类型 | 描述 |
|---|---|
String |
允许将字母数字字符输入变量中 |
Integer |
接受范围 -2147483648 到 2147483647 的无小数位的数字,例如 45 或 20 |
Decimal |
接受采用 IEEE 754 双精度的带小数位的数字,例如,45.3 或 20.13 |
Date |
允许将日期和时间格式输入到变量中 |
Time |
允许将日期格式作为时间输入到变量中。 用户输入时间;在将变量输入符号表之前,将其转换为日期。 |
Selection |
允许您向用户提供可能的输入的列表,用户只能从中选择一个选项。 选择是不同值的列表;每个值都是一个字符串。 运行时,选择变量将以列表或单选按钮的形式显示在 coach 表单上。 |
Boolean |
接受 true 或 false 作为值。 运行时,布尔值作为复选框显示在 coach 表单上。 |
Structure |
要使用结构类型,必须创建定制结构类型并定义其属性。 结构会对与同一主题相关的业务数据重新分组。 例如,Customer 结构可能包含诸如 lastName、firstName、homeNumber 和 streetAddress 等元素。 |
定制变量类型
使用业务对象定义定制变量类型。 如果系统 Toolkit 中提供的预定义业务对象没有代表您所需,那么您可以创建自己的业务对象。 如需了解系统数据工具包中提供的常规业务对象的更多信息,请参阅系统数据工具包。
- 定制变量类型的验证
- 您可以针对使用简单类型定义的定制变量类型定义验证设置。 在以下情况下,将检查这些验证规则:
- 将值分配给此类类型的流程或服务中的变量时,例如,当脚本将值分配给 tw.local 变量或将服务结果映射到 tw.local 变量的输出映射时,将验证该值。
- 整数和小数定制变量类型的验证
- 对于整数和小数业务对象定义,您可以定义最小值和最大值以指定范围。 例如,如果指定最小值 0 和最大值 100(全都包含),那么您将具有可用于变量的类型,其中用户指定不能为负或超过 100% 的百分比。
通过指定精度和小数位,您可以限制数字的小数和小数位。
在服务器配置的业务对象配置中指定必须如何解释验证设置。
表 2. 精度和小数位验证属性 属性 Type 缺省值 描述 precision-validation-on-server-enabled布尔值 否 用于在设置变量时启用精度设置验证。
precision-validation-strip-trailing-zeros布尔值 否 用于在验证精度之前除去小数点后面的零结尾。
precision-validation-typeenum (equals, lessOrEquals) 等于 如果将此属性设置为
equal,那么变量值的精度必须等于在变量类型中指定的值。 如果将属性设置为lessOrEquals,那么变量值的精度必须等于或小于在变量类型中指定的值。scale-validation-strip-trailing-zeros布尔值 否 用于在验证小数位之前除去小数点后面的零结尾。
scale-validation-typeenum (equals, lessOrEquals) 等于 如果此属性设置为
equals,那么变量值的小数位必须等于在变量类型中指定的值。 如果将属性设置为lessOrEquals,那么值的小数位必须等于或小于在变量类型中指定的值。
precision-validation-on-server-enabled 属性设置为 true 但是保留所有其他设置为缺省值,那么以下值有效:- 123.45
- 1234.56(精度错误,6 而不是 5)
- 12.34(精度错误,4 而不是 5)
- 12.345(小数位错误,3 而不是 2)
- 1234.1(小数位错误,1 而不是 2)
以下 JavaScript 表达式也会导致验证错误,因为运行时 JavaScript 会在分配值之前除去零结尾:
tw.local.variable = 123.40
以下 JavaScript 表达式不会导致验证错误,因为正确验证字符串,然后自动转换为数字以设置变量值:
tw.local.variable = "123.40"
totalDigits 和 fractionDigits,那么必须如下表中所示设置配置标记:| 设置 | Type |
|---|---|
precision-validation-on-server-enabled |
是 |
precision-validation-strip-trailing-zeros |
是 |
precision-validation-type |
lessOrEquals |
scale-validation-strip-trailing-zeros |
是 |
scale-validation-type |
lessOrEquals |
- 123.45
- 12.34
- 123.4
- 123
- 1234.56(精度错误,6 而不是最大值 5)
- 12.345(小数位错误,3 而不是最大值 2)
脚本中的数字计算
您可以使用 JavaScript 在流程或服务步骤中进行编程。 双精度用于存储变量的数字值。
在脚本中执行计算时,请注意可能到达此精度的限制。 例如,在添加 1000.06 + 0.01 时,从数学意义上讲,正确结果为 1000.07。 但是,如果在 JavaScript 中添加数字,那么结果为 1000.0699999999999。
如果需要以数学方式正确计算,请在 JavaScript 代码外部执行这些计算。 例如,您可以使用 BigDecimal 和 BigInteger 类在 Java™ 程序中进行完全精确的计算。 如果必须在流程或服务变量中存储具有完整精度的结果,那么可以将数字格式化为字符串,并将“字符串”数据类型用于变量。
NaN 或 Infinity 存储在数据库中。 如果您计算这样一个变量的值,请确保结果不是 NaN 或 Infinity;否则,会将错误写入 SystemOut.log 文件。