"该文档是关于工作流引擎的设计说明书,主要面向OA开发设计者,讲述了如何使用jgraph设计工作流编辑器,实现工作流的动态创建、并发执行以及流程图的存储。"
工作流引擎是一种核心组件,它负责管理、控制和自动化业务流程。在本设计说明书中,开发者详细阐述了其工作流引擎的实现方式:
1. **工作流编辑器**:使用jgraph库创建了一个图形化的工作流编辑器,允许用户动态创建和编辑工作流。编辑器采用树形结构展示工作流列表,提供直观的流程视图。
2. **并发任务执行**:利用Java的线程机制,工作流中的任务可以并发执行。在设计中,每个任务节点被转化为任务线程。同一层次的任务并行运行,只有当上一层任务全部完成,下一层的任务才会启动。这种设计提高了流程执行效率,符合并发编程的原则。
3. **工作流图遍历**:采用了图的广度优先搜索算法(BFS)来遍历工作流图,确定任务节点的执行顺序和层次。这有助于确保流程按照预定义的顺序和条件进行。
4. **程序运行结果**:
- **工作流编辑器主界面**:显示开始和结束的虚节点,以及添加、布局和连接节点的功能。
- **新建流程**:详细介绍了节点和边的创建过程,包括通过工具箱添加节点,通过拖拽和选择创建边。
- **保存流程图**:用户可以保存流程图到数据库,流程名称必须唯一。保存时会解析图的节点和边信息。
- **流程的显示**:保存后的流程会在界面的树形结构中显示,方便管理和追踪。
5. **数据存储**:流程信息分别存储在三个表中——`workflows`(流程表)、`nodes`(节点表)和`edges`(边表)。`workflows`表存储流程的元数据,`nodes`表包含节点的详细信息,如名称、状态和位置,而`edges`表记录边的属性和连接的节点ID。
6. **数据库设计**:流程表中的`id`使用序列+触发器实现自动递增,确保唯一性。节点表和边表则分别存储与节点和边相关的各种属性,如位置、状态、图标等。
这个工作流引擎设计说明书详细描述了如何构建一个功能完备、图形化且支持并发执行的工作流系统,提供了从流程设计到执行再到数据存储的完整流程,对OA系统的开发有着重要的参考价值。