声明客户端人员服务的变量

针对您创建的每个客户端人员服务,声明一些变量以捕获此人员服务中的步骤或活动所使用的数据。

关于本任务

您可以向客户端人员服务添加下列变量。

表 1. 可用于添加到客户端人员服务的变量
变量 描述
输入 表示传递给当前客户端人类服务的输入数据的变量
输出 表示当前客户端人员服务返回至其调用者的输出数据的变量
专用 仅在客户端人员服务中使用的局部变量
公开的流程值 可以从客户端人员服务链接到和使用的公开的流程值 (EPV)。
环境变量 可以从客户端人员服务链接到和使用的环境变量
缺省变量值
对于为 Root 或嵌套的客户端人员服务定义的输入和专用变量,您可以指定在运行时生效的缺省值。 对于缺省值,您可以指定简单和复杂值以及列表数组。 根据客户端人员服务的使用方式,缺省值将按照如下生效:
  • 将客户端人员服务作为任务实现,并且流程实例通过输入映射为任务指定变量值时,指定的值将在运行时生效。 如果未初始化进程中的映射变量,那么将使用其映射的 null 值。 如果未指定变量值(无映射),那么缺省值将在运行时生效。 另请参阅 在流程中创建与启动客户端人员服务任务
  • 将客户端人员服务作为可启动服务或 URL 实现时,例如,如果存在指定为 URL 参数的输入变量值,那么指定的值将在运行时生效。 否则,缺省值将生效。
  • 从父客户端人员服务调用嵌套的客户端人员服务并且父通过输入映射指定变量值时,指定的值将在运行时生效。 如果没有映射,那么嵌套的服务将使用缺省值。 如果有映射,那么嵌套的输入将使用父变量值,即使父变量值未进行初始化。
  • 在错误或数据变更类型的事件处理程序内声明变量时,事件处理程序在包含事件处理程序的嵌套服务的当前实例中首次运行时,缺省值将生效。 如果您退出包含事件处理程序的客户端人员服务并重新进入,那么将重置所有变量,包括事件处理程序变量。
提示: 在作为实例详细信息用户界面实现的客户端人员服务中,只有专用变量可以具有缺省值。
公开的流程变量 (EPV) 和环境变量
您可以在客户端人员服务的“变量”视图中链接到现有的公开的流程值 (EPV) 和环境变量,这样就可以通过您为客户端人员服务定义的脚本来访问变量。 您可以按照如下引用变量的名称:
  • tw.epv.[epv_name].[epv_variable_name]
  • tw.env.[env_variable_name]
根据您的客户端人员服务是在父 工作流程自动化 的上下文中运行,还是作为从属 Toolkit 的一部分运行,可以以不同方式访问其变量:
  • 如果父 工作流程自动化中存在同名变量,那么将使用工作流程自动化 中的值,而不考虑其结构或属性。
  • 如果在从属 Toolkit 中存在同名变量,但在流程应用程序工作流程自动化中不存在该变量,那么将使用 Toolkit 值。
当父 工作流程自动化 和从属 Toolkit 中都存在同名的 EPV 或环境变量时,您在脚本中指定的格式将确定使用的变量值。
  • 如果要使用工作流程自动化值,可在脚本中使用变量的简短名称等、tw.epv.[epv_name]tw.env.
  • 如果要使用 Toolkit 值,而不管重叠名称如何,请在脚本中使用 tw.epv.toolkittw.env.toolkit 格式。
注: 变量声明必须是运行客户端人员服务的上下文的直接依赖关系。 在运行时将不会解析嵌套工具箱中的声明。 因此,在 Toolkit 中声明变量时, 工作流程自动化 必须依赖于该 Toolkit。
在运行客户端人员服务时变量值可用,并且只有当启动客户端人员服务时,才会检索变量值。 要以编程方式更改值,请使用实现服务器端 JavaScript API 函数调用的被调用服务。 例如tw.epv.[epv_name].[epv_variable_name].update(<value>, <date>).
客户端人员服务不会自动检索新值。 新启动的客户端人员服务将在调度的时间之后看到新值。
有关 EPV 和环境变量的更多信息,请参阅 创建公开的流程值 (EPV)设置环境变量
在流程中创建和启动客户端人员服务任务
在流程中使用客户端人员服务任务或调用 Business Automation Workflow REST 流程或任务 API 时,将发生以下预期行为。 根据用于数据检索的任务实例, Process Inspector 可能会显示该任务的不同步数据,如下所示:
  • 创建任务时,将在创建时从流程实例中检索数据。
  • 之后,当用户启动任务时,会从运行时进程实例中获取数据,这些数据可能与创建任务时的数据不同。
因此, Process Inspector 和 Business Automation Workflow 进程或任务 REST API 可能会显示不同步的任务数据,直到用户启动任务。
使用传统人员服务时不会观察到所描述的行为,在用户启动任务时,这些服务不会自动从运行时流程实例中检索数据。
在用户任务级别公开业务数据,供搜索应用程序接口使用
除了流程级别的简单类型和非列表变量外,您现在还可以在任务活动级别公开业务数据。 这意味着,当用户任务实例正在运行或已经完成时,数据可供搜索,从而可以有效检索相关信息。 此外,您还可以为暴露的变量定义别名,并在任务搜索 API 中与任务和流程元数据一起使用。

对于用户界面开发人员来说,业务数据搜索提供了对可搜索任务数据的控制,只公开相关信息。 对于企业用户来说,它有助于在任务完成过程中和完成后使用特定数据值在 Workplace 中建立和完善任务搜索。

提示: 业务数据搜索既可用于高级搜索,也可用于基本搜索。 不过,要进行基本搜索,需要配置联合数据存储库索引。 有关详细信息,请参阅启用和配置联合数据存储库索引。 外部链接会打开一个新窗口或选项卡. 有关如何在搜索中使用暴露的业务数据的更多信息,请参阅 Workplace 中的搜索 外部链接会打开一个新窗口或选项卡.

您可以公开以下变量类型:

表 2. 可暴露的变量类型
变量类型 可在任务搜索中使用
简单类型(例如布尔、字符串、整数)
非列表(单值)
列表(多值) False
复合型 False
业务对象的简单类型属性
公开业务数据并为其定义别名:
  1. 在客户端人类服务中,转到 " 变量 "选项卡,选择要公开的变量。
  2. 选择在工作环境中公开 ,以便在用户任务活动中提供业务数据。
  3. 在 " 别名 "字段中,键入要分配给暴露变量的唯一名称。
注意: 名称在客户端人工服务中必须是唯一的,除非它与具有相同名称、类型和数量的输入或输出变量共享。

过程

要向客户端人员服务添加输入、输出、专用或 EPV 变量:

  1. 打开客户端人员服务。
  2. 切换到 变量,然后单击 输入 旁边的加号以添加新的输入变量。
  3. 详细信息 部分中:
    1. 指定变量名称。
      变量名区分大小写,并且必须以小写字母开头,后续单词的首字母大写,例如:myVar。 请勿在变量名中使用下划线或空格。
    2. 单击 变量类型 旁边的 选择 以从 选择库项 列表中选择变量类型。
      还将列出创建的定制业务对象。 要创建新的业务对象,请单击新建,然后完成向导步骤。
      客户端人员服务不支持引用自身的业务对象实例。 例如,在客户端人员服务内部使用时,以下 JavaScript 会生成错误:
      tw.local.myVariable= {};
      tw.local.myVariable.pointer= tw.local.myVariable;
    3. 可选: 文档下指定变量描述。
    4. 可选: 如果希望变量是数组,请选择 是列表
  4. 要为要添加的输入或专用变量指定缺省值,请在 缺省值下选择 具有缺省值 ,然后输入缺省值。
    注: 对于复杂业务对象,缺省值脚本必须声明变量,并通过指定最后一行作为变量名称来返回该变量。 例如:
    var autoObject = <new_instance>; 
    ...
    autoObject
  5. 保存此配置。
  6. 重复步骤 2 到 4,以向客户端人员服务添加输出、专用、EPV 或环境变量。
  7. 单击 保存完成编辑
    有关为客户端人类服务声明变量的详情,请参阅声明变量

下一步操作

现在,可以映射要传递给客户端人员服务中的步骤和活动的输入和输出变量。 请参阅 嵌套客户端人员服务的数据映射