通达OA二次开发工作流设计参考(包括PHP实现)
# 工作流管理系统技术博客文章
## 系统概述
介绍了一个完整的 workflow 管理系统,支持多种组件和功能,包括流程初始化、任务管理等功能。
### 组件结构
### 1. WorkflowService
#### 描述
- 中央服务类,协调工作流程的执行,包含初始化进程、启动线程等功能。
### 2. WorkflowProposalHandler
#### 描述
- 特化处理工作流程提案相关操作,包括数据准备和运行提案流程等。
## 工作流程操作
### 常见操作
| 操作 | 描述 |
|------------|----------------------------------|
| list_defination | 列出所有可用的工作流程定义 |
### 线程管理
#### start_process
- 启动基于给定定义 ID 的新进程。
#### run_thread(thread_id)
- 启动特定线程。
## 实用场景
### 业务流程初始化
1. 手动创建业务表单
2. 使用 WorkflowService 初始化进程
3. 设置业务表单 ID 到过程上下文
4. 启动第一个线程
5. 转换到下一个节点
### 流动执行路径
1. 收集以 'f_' 前缀的输入变量
2. 将输入赋值给 WorkflowService 的输入
3. 获取线程 ID
4. 执行该线程