使用服务器端验证来验证客户机端 coach

您可以使用服务器端验证来验证客户机端人员服务中的 coach。

关于此任务

在使用服务器端验证来验证客户机端人员服务中的 coach 时,人员服务流调用服务器上的服务以执行验证。然后,客户机端人员服务处理由服务器返回的任何消息。

在下列情况下,使用服务器端验证来验证客户机端人员服务中 coach 内的数据:
  • 验证必须访问不能供客户机使用的私人或机密数据。服务器端验证为更安全的方法。
  • 验证必须访问基于服务器的数据或大量数据来执行验证。例如,您拥有用户可在其中订购部件的“订单”Coach,并且想要验证库存中是否有部件。在这种情况下,使用客户机端验证不符合实际。加载大量的数据会影响客户机的性能。
  • 您正在将 heritage 人员服务迁移至客户机端人员服务并且想要复用在 heritage 人员服务中具有的某些或所有验证脚本。客户机端人员服务调用您先前使用的验证服务。但是您应该检查脚本逻辑以将相应验证代码移至客户机,从而尽可能减少服务器调用。
如果您无需访问服务器来验证 Coach 数据,那么可以使用客户机端验证。有关信息,请参阅使用客户机端验证来验证客户机端 Coach
以下过程使用帮助中心客户机端人员服务作为示例。人员服务包含若干字段和“创建凭单”按钮。
提示: 在可能情况下,将您的服务器端验证与起作用的服务器端逻辑相结合, 如此过程中的示例所示。即,单一服务器端服务会验证凭单并保存凭单。在人员服务中分几个步骤执行此过程时,请以此种方式将它们结合起来以提高性能。 它也会将相关逻辑放在一起以生成更易于维护的模型。

过程

要使用服务器端验证来验证 coach:

  1. 打开 Process Designer 桌面编辑器。
  2. 创建可验证 Coach 数据的服务。 此服务不能是人员服务,但可以是任何其他类型。该示例代码使用名为“保存凭单服务”的常规系统服务。
    1. 在“变量”页面,创建包含 coach 中数据的输入变量
    2. 创建 validationResults(CoachValidation) 专用变量以包含所有验证消息。
    3. 创建 hasValidationErrors(Boolean) 专用变量以指示何时存在导致验证测试失败的数据。
    4. 在“”页面,添加以下元素:
      • 用于验证数据的服务器脚本。
      • 根据数据是否有效,路由流程的决策网关
      • 数据有效时,用于处理的服务流中的嵌套服务或其他元素。例如,保存 coach 数据的嵌套服务或用于完成服务的结束事件。
      • 错误结束事件
    5. 将“开始”节点连接至脚本,并将脚本连接至决策。将网关连接至处理有效数据的流,如保存 Coach 数据的服务。选择流线并将其重命名为。将网关连接至错误结束事件。选择流线并将其重命名为 生成的图类似于此示例:
      Service diagram
    6. 将 JavaScript 代码添加到脚本,以验证 Coach 数据。 脚本代码必须为 Coach 数据的每个问题创建包含 addCoachValidationError 实例的 CoachValidation 对象。如果 Coach 数据存在问题,那么脚本还必须将 isValid 设置为 false。 例如,如果帮助凭单必须在“摘要”字段中包含信息,那么添加类似以下示例的代码:
      // Create the CoachValidation object
      tw.local.validationResults = new tw.object.CoachValidation();
      tw.local.hasValidationErrors = false; 	// Set to false unless the data fails a validation test
      if (tw.local.ticket != null) {
      	// If there is nothing in the summary, add the error to the Coach Validation object
      	if (tw.local.ticket.summary == null || tw.local.ticket.summary.length == 0) {
          	tw.local.hasValidationErrors = true;
      		tw.system.addCoachValidationError(tw.local.validationResults, 
      			"tw.local.ticket.summary", "The problem summary is required.");
      	}
      }
    7. 在决策的“实现”属性中,向“否”分支添加以下代码:
      tw.local.hasValidationErrors == true
      决策的“否”分支,第一个字段为 tw.local.hasValidationErrors,第二个字段为 ==,
第三个字段为 true。
    8. 在错误结束事件的“实现”属性中,将错误代码设置为 coachValidation,并将错误映射设置为 tw.local.validationResults 变量。 这些属性是客户机端人员服务接收验证消息所使用的机制。
      错误结束事件属性
  3. 打开客户机端人员服务。 Process Designer Web 编辑器会显示人员服务。
  4. 在客户机端人员服务中,向图中添加服务,并将 Coach 连接至该服务。
    与服务连接的 coach
  5. 在客户机端服务的“实现”属性中,选择调用服务,然后选择在第二步中创建的服务器端验证服务。
    显示其调用服务器端服务(执行数据验证)的客户机端服务的“实现”属性
  6. 在“数据映射”属性中,将包含 coach 数据的变量映射至相应业务对象。
  7. 将中间事件添加到服务。 由于中间事件与服务连接,因此它是一个错误边界事件。
  8. 在错误边界事件的“实现”属性中,将其设置为捕获特定错误,并将错误数据映射至 tw.system.coachValidation 变量。
  9. 将错误边界事件连接到“留在页面上”节点。
    将嵌套服务上的边界中间事件连接至“留在页面上”事件。