Skip to main content

流程扩展节点接入

本文将会详细介绍如何使用 Node SDK 开发流程扩展节点接入服务.

介绍

流程扩展节点接入 是扩展 流程引擎 中的 扩展节点 的一种方式. 在流程引擎现有的功能不满足需求时, 可以通过开发流程扩展节点接入服务来实现自定义的功能.

info

流程扩展节点接入 只是扩展流程功能的方式之一. 除了 流程插件 扩展方式之外, 还可以开发一个独立的服务或与现有的服务集成. 例如: 在 数据接口 中添加被调用的目标服务, 然后在流程中使用 数据接口 节点调用该接口, 也可以实现对流程的扩展. 详细信息参考 HTTP数据接口数据库接口

开发步骤

1. 创建项目

该过程同 数据接入驱动开发-创建项目 中的创建项目过程一致.

2. 引入SDK

const {App, Extension} = require('@airiot/sdk-nodejs/flow_extension')

3. 实现流程扩展节点接入接口

SDK 中定义了 流程扩展节点接入, 该接口是平台扩展节点与该服务交互的桥梁. 开发者需要实现这个接口.

class Extension {
/**
* @name: schema
* @msg: 查询schema
* @param app
* @param callback (err,'string') 配置schema,返回字符串
*/
schema(app, callback) {}

/**
* @name: run
* @msg: 执行服务
* @param app
* @param cfg 执行参数 {} input 执行参数,应与输出的schema格式相同
* @param callback (err,result) result自定义返回的格式,应与输出的schema格式相同
*/
run(app, cfg, callback) {}


/**
* @name: stop
* @msg: 停止服务
* @param app
* @param callback (err)
*/
stop(app, callback) {}
}

流程扩展节点服务启动时, SDK 会连接平台的 流程引擎 服务, 并接收流程引擎发送的请求. 当流程执行到该扩展节点时, 会发送请求给该服务程序. SDK 接收到请求后会调用对应的服务实现, 并将服务处理结果返回给流程引擎扩展节点.

4. 配置流程扩展节点接入服务

扩展节点接入服务配置主要是服务与平台的连接配置.

{
"flow-engine": {
"host": "流程引擎服务地址",
"port": "流程引擎服务端口"
},
"logger": {
"level": "debug"
},
"extension": {
"id": "扩展服务唯一标识",
"name": "扩展服务显示名称"
}
}

windows系统打包发布时的插件配置

{
"flow-engine": {
"host": "127.0.0.1",
"port": 2333
},
"extension": {
"id": "testNodeFlowExt",
"name": "测试node扩展"
}
}

linux系统打包发布时的插件配置

{
"extension": {
"id": "testNodeFlowExt",
"name": "测试node扩展"
}
}