编排定义

新建逻辑流程
- 在
服务编排
->编排定义
页中,点击新建
按钮,新建一个逻辑流程
- 选择
基础信息
页签,修改流程的基础信息

数据解析
对于接口返回的数据,一般情况下需要进行解析以后才能使用,例如:
{
"variables": {
"allcount": 2,
"retcount": 2,
}
}
但我们需要其中的allcount
部分,此时就需要对接口返回的数据进行解析
- 在节点的数据输出中,右键点击
response
,选择编辑
在节点结果面板中,勾选
是否解析
复选框,表示此数据需要进行解析,根据返回数据的类型选择JSON
或XML
解析类型指的是将此数据如何解析,通常接口都会返回一个对象 (
Object
)点击添加参数按钮,可以为此对象添加一个参数,此参数也就代表下文中需要使用到的参数

- 配置完成后,回到输出结构面板即可看到我们解析的参数已经显示,可以将其赋予到流程变量中了

- 连线后需要删除,可以鼠标右键点击删除

组件配置
开始/结束
任意一条流程均需要以开始节点为起点,以结束节点为终点

条件
条件节点可以根据表达式对流程的走向进行控制

配置名 | 说明 |
---|---|
默认条件 | 设置当前条件连接为默认条件 |
条件类型 | 设置条件判断类型,可选表达式 |
条件内容 | 设置条件内容 |
案例
Restful 节点调用接口获取信息,条件节点根据
返回信息
的情况决定流程的走向
,即判断接口返回的字段是否为查询成功!

- 配置 Restful 节点的配置

- 配置 Restful 节点的数据输出

- 配置条件节点的默认条件

- 配置条件节点根据返回值进行判断

${zerocloud$var$reason=='查询成功!'}
- 测试

分合流
分合流节点可以将一条流程进行分合流操作

案例
通过分合流节点,将流程分开或合并

循环
允许对输出的内容进行循环处理

配置名 | 说明 |
---|---|
循环方式 | 设置循环的方式,如按次数循环或按数据循环 |
数据集合 | 设置循环使用数据集合 |
循环变量名 | 设置每次循环中循环项使用变量名 |
案例
此案例演示了循环节点的使用方法,首先会从
ZC_Word
表查询全部数据,然后通过调用WebService
将简体转换为繁体,将每一条转换完成的数据再插入 ZC_Word 的 TW 字段中

- 修改循环节点配置
循环节点配置可以控制循环的方式,可选按次数循环或按数据循环
数据集合代表按数据循环使用的数据,一般为一个数组
循环变量名指的是每次循环中当前循环项,如
variables.item.SW
即代表引用当前循环项中的SW
字段

- 修改
从ZC_Word表查询全部数据
节点配置,点击获取返回值结构
可以得到返回结果的数据结构

- 修改
从ZC_Word表查询全部数据
节点数据输出,配置映射关系


var result = {
variables: {
results: map(result.rows, function (row, rowIndex) {
return row;
}),
},
};
- 修改 WebService 节点配置
连接器配置如下
http://ws.webxml.com.cn/WebServices
输入地址之后,点击解析
按钮 服务
,命名空间
,端口
,操作
等位置会自动解析进去
/TraditionalSimplifiedWebService.asmx
- 修改 WebService 节点输入数据配置
var result = {
body: {
sText: variables.item.SW,
},
};
- 修改 WebService 节点输出数据配置
var result = {
variables: {
Tword: response.toTraditionalChineseResult,
},
};
- 配置
插入ZC_Word的TW字段中
节点配置

- 配置
插入ZC_Word的TW字段中
节点数据输入
var result = {
parameters: {
Tword: variables.Tword,
},
};
- 若想修改指定数据
UPDATE ZC_Word
SET TW = :Tword
WHERE ID = :ID;
数据输入 需要把循环中对象的id预置好,这样在sql中才可以使用
var result = {
parameters: {
Tword: variables.Tword,
ID: variables.item.ID
}
};
子流程
可以将一部分流程抽取到子流程中,实现流程意义上的封装
案例
此案例演示了如何将节点放入子流程中运行 对于节点的配置请参照本文档对应节点的说明

执行效果

Rest API
与 Rest API 连接器配合使用,允许发送 Http/Https 类型的请求

配置名 | 说明 |
---|---|
连接器 | 指定与服务连接中连接器的绑定关系 |
请求方式 | 指定请求方式,如 Get、Post 等 |
请求地址 | 指定请求地址,注意此处不需要附加基础地址 |
超时时间 | 指定请求等待时间 |
错误编码 | 指定发送错误使用的编码 |
错误信息 | 指定发送错误使用的信息 |
案例

Rest API 节点可以通过 Rest API 连接器对远程接口进行调用
- 配置 Restful 节点的配置

- 配置 Restful 节点的数据输出

也可以直接使用代码配置
var result = {
variables: {
value1: response
}
};
编辑流程变量跟response


- 查看运行结果

WebService
与 WebService 连接器配合使用,允许与服务器建立 WebService 通信

配置名 | 说明 |
---|---|
连接器 | 指定与服务连接中连接器的绑定关系 |
地址 | 指定服务器地址 |
服务 | 指定连接过程中使用的服务名 |
命名空间 | 指定命名空间 |
端口 | 指定端口 |
操作 | 指定操作名 |
案例
配置 WebService 节点配置
配置上正确的地址后,点击
解析
按钮,其他输入框内容会自动生成

- 配置 WebService 节点输入数据,此处采用了固定的字符串

var result = {
body: {
sText: "一段中文文字,用于演示转换效果",
},
};
- 配置 WebService 节点输出数据,此处将输出数据放入变量中

var result = {
variables: {
Tword: response.toTraditionalChineseResult,
},
};
- 执行结果

SQLServer
与 SQLServer 连接器配合使用,可以远程执行 SQL 语句

配置名 | 说明 |
---|---|
连接器 | 指定与服务连接中连接器的绑定关系 |
操作类型 | 指定 SQL 操作类型 |
SQL 脚本 | 配置 SQL 语句或脚本 |
案例
此案例通过 item_code 查询出一条记录,然后将查询出的记录插入到另一个表中

- 配置查询节点的配置,点击
获取返回值结构
按钮,获取 SQL 的返回值结构

使用的 SQL
select * from idemo_product where item_code = :item_code ;
- 配置查询节点的输入

固定
查询条件
为1006
var result = {
parameters: {
item_code: "1006",
},
};
- 配置查询节点的输出

var result = {
variables: {
response: {
rows: result.rows,
},
},
};
- 配置插入节点的配置

使用的 SQL
SQL 中使用的变量通过
:变量名
的形式引用
insert into [dbo].[idemo_product3] (item_code, item_name, price, unit, update_date, item_cat, is_stop_use) values (:item_code, :item_name, :price, :unit, getdate(), :item_cat, :is_stop_use);
- 配置插入节点的输入

var result = {
parameters: {
item_code: variables.response.rows[0].item_code,
item_name: variables.response.rows[0].item_name,
price: variables.response.rows[0].price,
unit: variables.response.rows[0].unit,
item_cat: variables.response.rows[0].item_cat,
is_stop_use: variables.response.rows[0].is_stop_use,
},
};
- 执行结果

MySQL
与 MySql 连接器配合使用,可以远程执行 SQL 语句

配置名 | 说明 |
---|---|
连接器 | 指定与服务连接中连接器的绑定关系 |
操作类型 | 指定 SQL 操作类型 |
SQL 脚本 | 配置 SQL 语句或脚本 |
案例
此案例演示了如何通过 MySQL 节点查询数据库中的数据

- 配置节点

- 配置节点输出数据
var result = {
variables: {
item_name: response.rows[0].item_name,
},
};

- 查看结果

发送邮件
与 邮件服务器 连接器配合使用,可以根据配置发送邮件

配置名 | 说明 |
---|---|
连接器 | 指定与服务连接中连接器的绑定关系 |
发送邮件节点需要通过数据输入的方式将邮件的收信人、邮件主题和内容等信息传入
案例
此案例演示了如何通过发送邮件节点向指定用户发送一封邮件 以qq邮箱为例,首先需要开启邮箱的smtp服务,获得授权码。操作方式根据邮箱种类不同有所区别,请自行搜索。
- 修改邮件节点配置

- 修改数据输入配置
注意js代码中不要出现//这种注释,//注释后依然会被识别进内容,可能会报错。
var result = {
subject: "主题",
body: "邮件内容",
to: [
{
address: "收件人邮件地址@163.com",
displayName: "收件人",
},
],
cc: [
{
address: "抄送人邮件地址@163.com",
displayName: "抄送人",
},
],
};
- 查看结果,正常收到发送的邮件

U8Cloud
与 U8Cloud 连接器配合使用,允许调用 U8Cloud API

配置名 | 说明 |
---|---|
API | 指定 U8C 平台提供的 API |
连接器 | 指定与服务连接中连接器的绑定关系 |
请求方式 | 指定请求的请求方式 |
请求地址 | 指定请求的请求方式 |
案例
此案例介绍了如何通过
U8Cloud节点
调用 U8C 上的服务,此处演示如何调取 U8C 上币种信息

- 修改 U8C 节点的配置

- 修改数据输入配置
var result = {
queryParams: {},
body: {
currtypecode: "",
currtypename: "",
page_now: "",
page_size: "",
startTs: "",
endTs: "",
},
};

- 修改数据输出配置
var result = {
variables: response.data,
};

- 执行结果,通过编排追踪即可查看执行结果
{
"variables": {
"allcount": 2,
"retcount": 2,
"queryallsql": "select pk_currtype from bd_currtype",
"datas": [
{
"currbusidigit": "2",
"currdigit": "2",
"currtypecode": "CNY",
"currtypename": "人民币",
"currtypesign": "¥",
"dr": "0",
"pk_currtype": "000",
"ts": "2000-01-01 12:00:00"
},
{
"currbusidigit": "2",
"currdigit": "2",
"currtypecode": "USD",
"currtypename": "美元",
"currtypesign": "$",
"dr": "0",
"pk_currtype": "000",
"ts": "2000-01-01 12:00:00"
}
]
}
}
阿里云短信
与 阿里云 连接器配合使用,允许通过阿里云发送短信

配置名 | 说明 |
---|---|
连接器 | 指定与服务连接中连接器的绑定关系 |
短信签名 | 配置短信前面名称 |
短信模板 | 配置短信模板的 Code |
钉钉推送
与 钉钉 连接器配合使用,允许调用钉钉 API 实现消息推送

配置名 | 说明 |
---|---|
连接器 | 指定与服务连接中连接器的绑定关系 |
钉钉推送节点需要通过数据输入的方式将节点需要的信息传入
企微推送
与 企业微信 连接器配合使用,允许调用企业微信 API 实现消息推送

配置名 | 说明 |
---|---|
连接器 | 指定与服务连接中连接器的绑定关系 |
企微推送节点需要通过数据输入的方式将节点需要的信息传入
