处理客户机端人员服务中的错误

您可以使用独立错误事件处理程序来处理客户端人员服务中的错误,或者可以通过将边界错误事件连接到单个服务以在特定步骤捕获错误。 您可以使用错误结束事件来抛出特定错误并在指定步骤结束服务的处理。

要捕获错误,您可以使用错误边界事件或错误事件处理程序。 两个选项都提供相同的功能来捕获错误。 区别在于错误处理逻辑驻留在图中,并且在捕获的错误范围内。
  • 错误边界事件将捕获从所连接到的服务抛出的错误。 并且可以将错误边界事件连接到被调用的服务节点或嵌套的客户端人员服务节点。
  • 错误处理程序将捕获从客户端人员服务及其所有嵌套的服务抛出的错误。

您可以配置边界事件和错误事件处理程序来捕获所有错误或特定错误。 在运行时,边界事件优先于错误事件处理程序,特定错误优先于捕获所有错误。

您可以指定错误属性以捕获或抛出特定错误,基于错误代码过滤错误类型,并在捕获错误后将错误代码映射到变量。
  • tw.error.codetw.error.data 变量中捕获错误事件信息。 有关更多信息,请参阅 用于客户端人员服务开发的JavaScript API
  • 通过将错误事件映射到变量,过滤出数据类型不兼容的事件,并在局部变量中捕获数据。
用户定义的错误和系统定义的错误
错误事件处理程序捕获的特定错误可以包含从模型层次结构(即,从具有错误结束事件的服务或客户端人员服务)中抛出的用户定义的错误,也可以包含系统定义的错误。 系统定义的错误的错误代码选项有:
  • BPMBOSaveFailedError:从共享业务对象保存服务中捕获错误
  • BPMTaskOwnerError:捕获从当前用户收回任务所有权时发生的错误
例如,当 Process Portal 用户在用户界面中执行的交互式任务从外部源重新分配给其他用户时,系统定义的错误可能是在运行时发生的任务所有权错误。 例如,外部源可以是另一个服务或重新分配 REST API 调用。 重新分配任务之后,当前用户(之前的任务所有者)对该任务执行的工作触发了与服务器的交互时,该用户将收到所有权错误。 要使用户能够正常处理错误,在指定用户界面的底层客户端人员服务中,您可以实施错误事件处理程序,以捕获特定错误并提供显示该错误的逻辑。
注: 来自客户机端脚本活动的错误不会通过错误事件处理程序进行处理。 通常情况下,客户机端脚本的错误会导致 Coach 窗口中出现错误消息。 您可以使用浏览器调试工具修复该问题。 使用 JavaScript 代码中的 try/catch 块也是一种很好的故障诊断做法。
表 1. 客户端人员服务中错误事件的使用
图标 错误事件 描述
此图标指示客户机端人员服务的选用板上的错误边界事件。 错误边界事件。 连接到客户端人员服务中服务节点的中间错误事件 从所连接的服务中捕获错误并接收错误数据。 要对客户端人员服务捕获错误后进行恢复的情形进行建模,您可以将每个错误边界事件连接到运行错误处理逻辑的活动。 您可以将错误边界事件连接到任何节点。

您可以将错误边界事件连接到被调用的服务节点或嵌套的客户端人员服务节点。 您可以重新安置错误边界事件和服务边界。 您可以从服务中将其除去,或者您可以将其移到另一服务。

快捷键 快捷键:B

有关更多信息,请参阅 使用错误中间事件捕获错误

此图标指示客户机端人员服务的选用板上的错误事件处理程序。 全局错误事件处理程序,在客户端人员服务中捕获错误并运行错误处理逻辑 捕获所有错误或特定错误。 可用作服务外部的独立事件处理程序。 在错误处理程序中实现错误处理逻辑。

您可以在客户端人员服务中使用多个错误事件处理程序。 例如,您可以配置错误事件处理程序来捕获特定错误代码,并配置用于捕获所有其他错误的错误事件处理程序。 然后,您可以实施不同的逻辑来处理特定错误,并实施用于处理所有其他错误的逻辑。

嵌套的客户端人员服务中使用的错误事件处理程序将从定义错误事件处理程序的服务和其下的所有嵌套服务中捕获错误。

有关更多信息,请参阅 使用错误事件处理程序捕获错误

此图标指示客户机端人员服务的选用板上的错误结束事件。 错误结束事件,将抛出错误并结束实现它的客户端人员服务的处理。 抛出特定错误并结束用于实现的客户端人员服务的处理。 您可以将错误结束事件连接到客户端人员服务中的任何节点。 您可以为错误指定错误代码和错误数据。

有关更多信息,请参阅 使用错误结束事件抛出错误