示例:在客户端人员服务中验证 coach

本示例向您显示如何使用客户端人员服务中 Coach 的数据更改属性来验证 Coach 数据,而无需退出 Coach。

关于本任务

以下示例演示如何验证 Coach 中用户输入的数据,以便在数据无效时,在 Coach 中显示错误消息。 该示例还演示数据无效时如何防止用户继续执行下一步骤。

此示例包含 Prompt for Start and End Dates Coach ,其中包含 开始日期 字段, 结束日期 字段和 确定 按钮。 开始日期必须早于结束日期。 要验证 Coach 数据,您将在 Coach 中指定用于执行验证的客户端 JavaScript。
注: 此示例显示如何使用 IBM® Process Designer在客户端人员服务中验证 Coach。 有关在传统人员服务中验证 Coach (不推荐) 的信息,请参阅 示例: 在桌面 Process Designer 中验证传统人员服务中的 Coach 数据 (不推荐)

过程

  1. 创建包含要验证的 Coach 的客户端人员服务。 请参阅 构建客户端人员服务
  2. 变量教练中 ,创建两个私有变量 startDateendDate ,并将每个变量的类型设置为 Date
  3. 在客户端人员服务图中,将 Coach 重命名为 Prompt for Start and End Dates
  4. 在教练中,使用 OK按钮的顶部插入点添加两个日期时间选择器视图(垂直堆叠),将视图重命名为 startDateendDate ,并确保它们分别绑定到 startDateendDate变量。 将缺省 OK 按钮保持不变。
    对于 startDate 和 endDate, ,数据必须分别正确绑定到 startDate 和 endDatevariables,。
  5. 保存 Coach 配置。
  6. 在 Coach 的图视图中,在 数据更改 > 脚本下,输入以下 JavaScript 构造:
    if (tw.local.startDate.getTime() > tw.local.endDate.getTime())
    	tw.system.coachValidation.addValidationError("tw.local.startDate", "The start date must precede the end date. Set the start date before the end date, and try again.");
    coachValidation 对象中,第一个字符串包含到要验证其数据的元素的完整变量路径。 第二个字符串是面向用户的消息,此消息指定数据中存在哪些错误并告知用户如何纠正问题。
    注:
    • 如果验证的数据元素未绑定到视图,那么若发生验证错误将无处显示。
    • 如果正在验证的视图包含富文本,那么验证脚本必须除去格式化信息,然后才能验证内容。
    • 如果您正在验证列表并且希望该错误引用整个列表,那么 variableName 参数必须包含 [] 作为后缀。 这与视图绑定相匹配,其中 [] 指示该对象是一个列表。 例如,如果视图绑定到 tw.local.var3[](即一个列表),那么您需要与以下示例类似的代码:
      tw.system.coachValidation.addValidationError("tw.local.var3[]", "Var3 has validation error");
  7. 可选: 要阻止用户在数据无效时继续执行下一步,请完成以下步骤:
    1. 变量教练中 ,为“人类服务”添加另一个名为 readyToSubmit的私有变量,并将其类型设置为 Boolean
    2. 数据更改 > 脚本 Coach 属性中,将以下 JavaScript 代码附加到现有脚本:
      tw.local.readyToSubmit = tw.system.coachValidation.validationErrors.length==0;
    3. 在 Coach 中,将 确定 按钮配置为未就绪时只读,如下所示:
      显示 Coach 中用于在未就绪时将 "确定" 按钮设置为只读的位置的屏幕截图。
  8. 单击 保存完成编辑
  9. 单击 运行 运行 以运行人员服务。
  10. 在显示 Coach 的浏览器中,通过完成以下步骤来测试验证:
    1. 结束日期 设置为开始日期之前的日期。 单击确定
      浏览器将突出显示开始日期字段,并显示警告图标。 如果将鼠标指针悬停在警告图标上,您将看到一条消息,指示开始日期必须早于结束日期。
      Coach 验证的结果。
    2. 将结束日期设置为晚于开始日期的日期。 单击确定
      由于两个日期均有效,因此该人员服务将成功完成。