Skip to main content

流程插件开发

本文将会详细介绍如何使用 Dotnet SDK 开发流程插件.

介绍

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

info

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

开发步骤

1. 创建项目

  1. 创建项目C#控制台程序
  2. 创建 Programs.cs 文件

2. 引入SDK

  1. 添加nuget包,详细步骤见Dotnet sdk介绍-使用方式
  2. 引用命名空间
    using AiriotSDK.Data;
using AiriotSDK.Flow;
using AiriotSDK.Tools;

3. 实现流程插件接口

SDK 中定义了 流程插件接口, 该接口是平台与插件交互的桥梁. 开发者需要实现这个接口.

    public class Request {
public string ProjectId { get; set; }
public string FlowId { get; set; }
public string Job { get; set; }
public string ElementId { get; set; }
public string ElementJob { get; set; }
public byte[] Config { get; set; }
}

/// <summary>
/// Flow interface
/// </summary>
public interface IFlow
{
/// <summary>
/// 流程节点处理方法
/// </summary>
/// <param name="app"></param>
/// <param name="req"></param>
CommResult Handler(IFlowApp app, Request req);
}

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

4. 配置插件

插件配置主要是插件与平台的连接配置.

flow:
name: 插件名称
mode: service // service 插件执行方式

flowEngine:
host: 流程引擎服务地址
port: 流程引擎服务端口

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

flow:
name: dotnetFlow
mode: service

flowEngine:
host: 127.0.0.1
port: 2333

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

flow:
name: dotnetFlow
mode: service