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

此示例说明如何使用客户机端验证,在客户机端人员服务中验证 Coach 中的数据。

关于此任务

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

该示例包含“开始日期和结束日期提示”Coach,其中包括开始日期字段、结束日期字段和确定按钮。开始日期必须早于结束日期。包含脚本和排他式网关的 Coach 验证模式用于验证 Coach 数据。
注: 此示例为您显示如何使用 IBM® Process Designer 在客户机端人员服务中验证 coach。有关在 Heritage 人员服务中验证 Coach 的信息,请参阅示例:验证遗留人员服务中的 Coach

过程

  1. 创建将包含要验证的 Coach 的客户机端人员服务。请参阅构建客户机端人员服务
  2. 在该人员服务的变量选项卡中,创建两个专用变量:startDateendDate,并将每个变量的类型均设置为 Date
    人员服务的变量选项卡显示两个专用变量 startDate 和endDate。每个变量的类型均设置为 Date。
  3. 在客户机端人员服务图中,将 coach 重命名为开始日期和结束日期提示
    含“开始日期和结束日期提示”Coach 的人员服务。服务流包含“开始”事件、该 Coach 和“结束”事件。
  4. Coach 选项卡中,从选用板的变量部分,将 startDateendDate 参数拖到该 Coach 上。将缺省确定按钮保持不变。
    该 Coach 显示两个日期字段(开始日期和结束日期)和一个确定按钮。
  5. 在该 Coach 中,选择开始日期参数并确保它与常规选项卡的行为部分中的 startDate 变量绑定在一起。
    对于开始日期参数,该数据必须正确绑定到 startDate 变量。
  6. 针对结束日期参数重复步骤 5,以确保该参数已正确绑定到 endDate 变量,然后保存该 Coach 配置。
  7. 在图中,添加脚本、排他式网关和中间事件,它们将自动变为“留在页面上”事件。将脚本重命名为验证变量值,将排他式网关重命名为验证错误?。 按以下顺序连接这些元素:
    插入 coach 验证模式的结果。
    1. 删除 coach 与结束事件之间的流程线。
    2. 将 coach 连接到脚本。
    3. 将脚本连接到排他式网关。
    4. 将排他式网关连接到“留在页面上” 事件。将流程线重命名为 Yes。因为这是离开网关的第一个流程线,将通过 / 指示符来显示它是缺省流程。Stay On Page 事件将此流程返回到 coach。
    5. 将排他式网关连接到结束事件。
    现在,人员服务流包含 coach 验证模式。流程将首先达到脚本。如果数据无效,那么脚本将创建验证错误并将错误添加到 tw.system.coachValidation 对象。 网关将确定流程所采用的路径。如果数据有效,那么将转至该流中的下一个步骤,即结束事件。 如果数据无效,那么会记录验证错误并且该流会循环回到该 Coach。
  8. 选择验证变量值脚本,在脚本选项卡中,输入以下 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 对象中,第一个字符串包含到要验证其数据的元素的完整变量路径。 第二个字符串是面向用户的消息,此消息指定数据中存在哪些错误并告知用户如何纠正问题。
    注:
    • 如果验证的数据元素未绑定到 Coach 视图,那么若发生验证错误将无处显示。
    • 如果验证的 Coach 视图包含富文本,那么验证脚本必须除去格式化信息,然后才能验证内容。
    • 如果您正在验证列表并且希望该错误引用整个列表,那么 variableName 参数必须包含 [] 作为后缀。这与 Coach 视图绑定相匹配,其中 [] 指示该对象是一个列表。例如,如果 Coach 视图绑定到 tw.local.var3[](即一个列表),那么您需要与以下示例类似的代码:
      tw.system.coachValidation.addValidationError("tw.local.var3[]", "Var3 has validation error");
  9. 选择排他式网关,在其实施属性中,创建测试。 该测试为 tw.system.coachValidation.validationErrors.length==0。 该测试检查是否存在验证错误,如果没有,使其路由至流的其余部分。如果有错误,流转到“留在页面上”事件,以便 coach 显示含问题数据的控件和消息。
    网关的实施属性,第一个字段为 tw.system.coachValidation.validationErrors.length,
第二个字段为 ==,第三个字段为 0。
  10. 保存您的更改,然后单击运行 运行 以运行该人员服务。
  11. 在显示 Coach 的浏览器中,通过完成以下步骤来测试验证:
    1. 结束日期设置为早于开始日期的日期。单击确定 浏览器将突出显示开始日期字段,并显示警告图标。如果将鼠标悬停在警告图标上,您将看到开始日期必须早于结束日期的消息。
      插入 coach 验证模式的结果。
    2. 结束日期设置为晚于开始日期的日期。单击确定 由于两个日期均有效,因此该人员服务将成功完成。