TJC.Cyclops.ApprovalFlow 2026.2.26.1

dotnet add package TJC.Cyclops.ApprovalFlow --version 2026.2.26.1
                    
NuGet\Install-Package TJC.Cyclops.ApprovalFlow -Version 2026.2.26.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TJC.Cyclops.ApprovalFlow" Version="2026.2.26.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TJC.Cyclops.ApprovalFlow" Version="2026.2.26.1" />
                    
Directory.Packages.props
<PackageReference Include="TJC.Cyclops.ApprovalFlow" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add TJC.Cyclops.ApprovalFlow --version 2026.2.26.1
                    
#r "nuget: TJC.Cyclops.ApprovalFlow, 2026.2.26.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package TJC.Cyclops.ApprovalFlow@2026.2.26.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=TJC.Cyclops.ApprovalFlow&version=2026.2.26.1
                    
Install as a Cake Addin
#tool nuget:?package=TJC.Cyclops.ApprovalFlow&version=2026.2.26.1
                    
Install as a Cake Tool

Cyclops.ApprovalFlow

项目概述

Cyclops.ApprovalFlow是企服版框架中的审批流开发套件,提供灵活、可扩展的工作流管理能力。该项目采用图论模型设计,通过节点和边的组合构建复杂的审批流程,支持多种节点类型和流转逻辑,为企业应用提供强大的业务流程管理支持。

核心功能模块

1. 流程引擎 (FlowEngine)

流程引擎是整个审批流系统的核心,负责管理流程的执行、监控和自动推进。

  • 线程池管理:使用SimpleThreadPool高效处理流程任务
  • 执行器监控:按流程键分组管理和监控执行器状态
  • 自动推进:定期检查执行器状态并推进流程实例
  • 资源管理:提供完整的资源释放机制,确保系统稳定运行

2. 流程构建器 (FlowBuilder)

流程构建器提供了流程定义的加载、创建和管理功能,支持多种方式创建流程执行器。

  • JSON文件加载:从JSON配置文件加载流程定义
  • JSON字符串加载:从JSON字符串直接加载流程定义
  • 内存缓存:维护流程执行器的内存缓存,提高性能
  • 执行器管理:支持创建、获取和更新流程执行器

3. 图式流程定义 (GraphFlowDefinition)

基于图论的流程定义模型,通过节点和边的组合描述完整的审批流程。

  • 流程标识:唯一的流程编码和友好的流程名称
  • 节点集合:定义流程中的各个步骤和环节
  • 边集合:定义节点之间的连接关系和流转条件

4. 节点模型 (GraphNode)

支持多种节点类型,满足不同的流程需求。

  • 节点类型:开始节点、任务节点、用户节点、网关节点、结束节点等
  • 节点属性:支持自定义属性扩展业务配置
  • 可视化信息:包含节点在画布上的位置和文本信息

5. 边模型 (GraphEdge)

描述节点之间的连接关系和流转条件。

  • 连接关系:定义源节点和目标节点
  • 动作标签:支持通过文本信息定义流转动作(如:通过、退回、不通过等)
  • 属性扩展:支持自定义边的属性配置

技术栈

  • 开发框架:.NET 8.0
  • 项目类型:类库(Class Library)
  • 核心依赖
    • Cyclops.Common
    • Cyclops.DI
  • 数据格式:JSON(用于流程定义序列化)

环境依赖要求

  • .NET 8.0 SDK 或更高版本
  • 引用的Cyclops.Common和Cyclops.DI项目

安装与配置

安装方式

可以通过以下方式安装Cyclops.ApprovalFlow包:

  1. NuGet包管理器

    Install-Package Cyclops.ApprovalFlow
    
  2. .NET CLI

    dotnet add package Cyclops.ApprovalFlow
    

基本配置

使用Cyclops.ApprovalFlow需要以下基本配置:

  1. 准备流程定义JSON文件或字符串
  2. 初始化FlowBuilder实例
  3. 加载流程定义并创建FlowExecutor
  4. 初始化并启动FlowEngine

核心功能代码示例

1. 从JSON文件加载流程定义

// 创建流程构建器实例
var flowBuilder = new FlowBuilder();

// 从JSON文件加载流程定义
string jsonPath = "path/to/your/flowdefinition.json";
var executor = await flowBuilder.CreateExecutorFromJsonFileAsync(jsonPath);

2. 从JSON字符串加载流程定义

// 创建流程构建器实例
var flowBuilder = new FlowBuilder();

// 流程定义JSON字符串
string flowJson = @"{
  ""key"": ""LeaveApprovalFlow"",
  ""name"": ""请假审批流程"",
  ""nodes"": [
    {
      ""id"": ""start"",
      ""type"": ""start-node",
      ""text"": { ""value"": ""开始"" }
    },
    {
      ""id"": ""manager-approval",
      ""type"": ""user-node",
      ""text"": { ""value"": ""经理审批"" },
      ""properties"": {
        ""assignee"": ""manager""
      }
    },
    {
      ""id"": ""end",
      ""type"": ""end-node",
      ""text"": { ""value"": ""结束"" }
    }
  ],
  ""edges"": [
    {
      ""id"": ""edge1",
      ""sourceNodeId"": ""start",
      ""targetNodeId"": ""manager-approval",
      ""text"": { ""value"": ""提交"" }
    },
    {
      ""id"": ""edge2",
      ""sourceNodeId"": ""manager-approval",
      ""targetNodeId"": ""end",
      ""text"": { ""value"": ""通过"" }
    }
  ]
}";

// 从JSON字符串加载流程定义
var executor = await flowBuilder.CreateExecutorFromJsonStringAsync(flowJson, "LeaveApprovalFlow");

3. 初始化并启动流程引擎

// 初始化流程引擎
var flowEngine = FlowEngine.Instance;

// 启动流程引擎
flowEngine.Start();

// 在应用关闭时停止流程引擎并释放资源
// flowEngine.Dispose();

4. 获取已缓存的流程执行器

// 创建流程构建器实例
var flowBuilder = new FlowBuilder();

// 尝试获取已缓存的执行器
if (flowBuilder.TryGetExecutor("LeaveApprovalFlow", out var executor))
{
    // 使用执行器处理流程
    // ...
}

使用注意事项

  1. 流程定义格式:确保流程定义JSON符合GraphFlowDefinition的数据结构要求,特别是节点和边的ID必须唯一且相互匹配。

  2. 节点类型选择:根据业务需求选择适当的节点类型,如开始节点(start-node)、任务节点(task-node)、用户节点(user-node)、网关节点(gateway-node)和结束节点(end-node)等。

  3. 资源管理:使用完FlowEngine后,务必调用Dispose()方法释放资源,避免内存泄漏。

  4. 错误处理:加载流程定义时可能会抛出异常,请确保添加适当的错误处理逻辑。

  5. 并发安全:在多线程环境下使用FlowBuilder和FlowEngine时,请注意线程安全问题。

  6. 流程版本管理:对于需要频繁变更的流程,建议实现版本管理机制,确保流程定义的可追溯性。

  7. 性能优化:对于大量流程实例的场景,可以考虑优化线程池配置和定期清理过期的流程实例。

贡献者

  • yswenli

许可证

保留所有权利

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on TJC.Cyclops.ApprovalFlow:

Package Downloads
TJC.Cyclops.Web.Core

企服版框架中api核心功能项目,基于aspnetcore集成di、jwt、swagger、codefirtst、支持多种常见数据库、nacos配置中心、统一接口回复参数、全局异常捕获、全局接口日志、防重放攻击、图形验证码、快捷上下文对象、上传下载、数据导入导出等功能

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2026.2.26.1 56 2/26/2026
2026.2.4.1 126 2/4/2026
2026.1.15.1 145 1/15/2026
2026.1.14.2 139 1/14/2026
2026.1.14.1 134 1/14/2026
2026.1.13.2 136 1/13/2026
2026.1.13.1 153 1/13/2026
2026.1.7.1 164 1/7/2026
2025.12.23.1 238 12/23/2025
2025.12.16.1 348 12/16/2025
2025.12.15.2 295 12/15/2025
2025.12.15.1 313 12/15/2025
2025.12.12.1 208 12/12/2025
2025.12.11.1 494 12/11/2025
2025.12.4.1 269 12/4/2025
2025.12.3.3 755 12/3/2025
2025.12.3.2 715 12/3/2025
2025.12.3.1 740 12/3/2025
2025.12.2.1 744 12/2/2025
2025.11.28.1 236 11/28/2025
Loading failed

企服版框架中审批流开发套件