ThingWorx Flow > 创建和管理自定义操作 > 在 ThingWorx Flow 8.4.x 中创建自定义操作
在 ThingWorx Flow 8.4.x 中创建自定义操作
请在 ThingWorx Flow 设置页面中或在“操作”面板“自定义”选项卡下的工作流中创建自定义操作。
请按照以下步骤创建自定义操作:
1. 要将自定义操作添加至 ThingWorx Flow,请执行以下操作之一:
ThingWorx Flow 设置页面中,转至“自定义操作”,然后单击
在工作流编辑器的“操作”面板中,转至“自定义”选项卡,然后单击
“自定义操作”窗口随即打开。
2. “标签”字段中,为您的操作输入合适的名称。此参数是必需的。
3. 在代码编辑器中,编辑预填充的模板以写入操作的代码。有关如何定义操作的不同部分的详细信息,请参阅 定义自定义操作
4. 单击“编译”。如果代码中存在错误,则会在代码编辑器中突出显示。编译成功后,在自定义操作的输入部分定义的所有输入字段都将显示在左侧面板中。
5. 单击“保存”。该操作会被添加至“操作”面板“自定义”选项卡下的可用操作列表中,且可拖动至工作区以供在工作流中使用。
定义自定义操作
自定义操作是定义该操作的 Node.js JavaScript 函数。在创建新的自定义操作时,会预填充代码编辑器中的示例模板。使用此模板用作为构建自定义操作的起始点。
编号
说明
1
在代码的开头使用 require() 函数导入 Node.js 模块,以便用于自定义操作。在示例代码中,操作会导入 request 模块,以对第三方系统进行简单的 HTTP 调用。
* 
为防止使用不当,只能导入下列 Node.js 模块用于自定义操作:
assert, buffer, crypto, events, http, https, lodash, path, punycode, querystring, request, soap, string_decoder, url, ws, xml2js, zlib
2
this.id - 用作自定义操作唯一标识符的属性。
3
this.label - 用于指定自定义操作名称的属性。
* 
如果使用 this.label 设置该操作的标题,则会自动覆盖“自定义操作”窗口中已输入的操作标签。
4
this.input - JSON 属性,用于定义配置工作流中操作时显示的输入字段。您需要为三个 JSON 键赋值:
title - (必填) 内部用作标识符
type - (必填) 内部使用。此键的值应始终设置为对象且不应更改。
properties - (必填) JSON 属性,用于定义对应操作显示的输入字段和验证条件 (若有)。每个输入字段都应有一个唯一键 (例如 first_name),并为下列各项定义值:
tile - (必填) 对应字段显示的标签,如 First Name。
type - (必填) 字段类型。有效类型包括:字符串、对象、数组和任何其他类型
description - (选填) 显示为工具提示的消息。
minLength - (选填) 指定必须指定的最小字符数
* 
要使字段成为必填字段,请将 minLength 的值设为 1。
5
this.output - JSON 属性,用于定义操作所返回并使之可用于工作流其余部分的输出字段。您需要为三个 JSON 键赋值:
title - (必填) 内部用作标识符。
type - (必填) 内部使用。此键的值应始终设置为对象且不应更改。
properties - (必填) 用于定义输出字段的 JSON 属性。每个输出字段都应有一个唯一键 (例如 status),并为下列各项定义值:
tile - (必填) 对应字段显示的标签,如 status。
type - (必填) 字段类型。有效类型包括:字符串、对象、数组和任何其他类型
6
this.execute - 用于定义在工作流中执行操作时运行的程序逻辑的函数。该函数必须定义下列两个函数参数:
input - JSON 对象,其中包含工作流执行期间输入参数的值。可通过操作的 this.input 属性中定义的输入字段键来引用这些值。
output - 必须调用的回调函数,以将输出值传递到工作流。用于表示操作已完成。该函数的格式为 callback(err,output)
err - 用于报告工作流中可能出现的任何错误。如果无错误发生,则使用空值。
output - JSON 对象,其中包含在操作的 this.output 属性中定义的各个键的值。
* 
如果从 ThingWorx Flow 8.4.x 迁移到 ThingWorx Flow 8.5,则在 ThingWorx Flow 8.4.x 中创建的自定义操作会继续在 ThingWorx Flow 8.5 中工作。您可以为自定义操作的输入和输出字段添加本地化支持。但是,您无法本地化在 ThingWorx Flow 8.4.x 中创建的自定义操作的标签。