常规工作流模型

什么是工作流?

https://en.wikipedia.org/wiki/Workflow_engine

就是我提交点东西给老大审批,老大通过的话给别的人审批,再到XX审批,最后一系列的人审批完才通过。中间还可能驳回什么的一个流程

流程,步骤,定义,实例 分别代表什么,自己要分清楚咯。

java常见的工作流引擎

  • activiti
  • osWorkflow(已经过时)
  • JBPM(较臃肿,但是一个规范)
  • bonita(不了解^_^)
个人推荐重点学习activiti。然而要了解JBPM规范。JBPM就像是OSI/RM 7层模型,这是一些良好的定义,但是臃肿;activiti就像是TCP/IP,偏向实际应用。
spring有一个spring web flow。可是这只是个页面流。用于引导页面等。不属于工作流的范围。
 

常见工作流的模型库表定义

  • 定义(流程、步骤)
  • 实例表(流程实例表、当前步骤表、历史步骤表)
  • 表单(一般都要的)
  • 步骤执行者(和用户表有一定的关联,可能允许某一些人审批,可能允许某一个人审批,或者主管等,根据实际情况划分)
  • 用户表(不一定是工作流的)

上面的几个点不一定代表的是数据表。但是是比较重要的结构。

另外一些很可能需要的表:

  • 评审意见(可以放到历史步骤表)
  • 委托定义,委托记录表(这个工作流实例本来给我审批的,我委托给谁谁处理。)

举个例子,

先编写XML配置,定义流程。

执行流程的时候,工作流引擎会创建表单数据,创建流程实例数据,创建具体的步骤数据

提交评审动作,原来的“当前步骤”A变成历史步骤,另外新增一个新的“当前步骤”B。创建评审意见。

原文地址:https://www.cnblogs.com/ELMND/p/5284041.html