简介
snaker是一个基于Java的轻量级工作流引擎,适用于企业应用中常见的业务流程。本着轻量、简单、灵巧理念设计,定位于简单集成,多环境支持
常用表信息
表名称 | 表描述 |
---|---|
wf_process | 流程定义表 |
wf_order | 活动实例表 |
wf_task | 活动任务表 |
wf_task_actor | 活动任务参与者表 |
wf_hist_order | 历史实例表 |
wf_hist_task | 历史任务表 |
wf_hist_task_actor | 历史任务参与者表 |
wf_surrogate | 委托代理管理表 |
wf_cc_order | 抄送实例表 |
表定义(关系)
演示
此处演示从流程定义到流程结束的全过程,去了解数据库核心表存储数据的过程。
以下列流程为例
流程定义—>启动流程—>执行任务—>流程转派—>根据当前任务查询代办任务列表—>结束流程
流程定义
根据自己的实际业务情况设计一个流程
设计好的流程会在wf_process(流程定义表)中生成一条记录
启动流程
通过postman调用启动流程方法,启动流程,返回信息如下:
解释:
processId:主键id
operator:当前操作人
args: fq:流程发起人,pm:一级流程审批人,qa:二级流程审批人
注意:operator(当前操作人)就相当于fq(流程发起人),所以,这两个人必须一致,否则无法成功发起流程
流程成功启动之后,会在wf_order(活动实例表)新增一条实例。只要流程还在执行或者是流程没有销毁等,该实例一直存在。
wf_task(活动任务表)也新增一条流程任务信息
可以在wf_task_actor(活动任务参与者表)中查看该流程的下一级审批人是谁
执行任务
上一步查询出下一级审批人为“李四”,所以让“李四”来审批
解释:
taskId:任务id
operator:当前操作人
args:method:0(执行任务),result
同理,可以在wf_task_actor(活动任务参与者表)中查询下一节点审批人是谁
流程转派
有一种业务情况,比如财务请假或者离职,需要把财务需要审批的任务转派给新的人去审批。所以将财务(王五)的任务转派给“赵六”
转派之后,该节点执行人成功变更
根据当前任务查询代办任务列表
并且可以查看到“赵六”名下有一个待办任务
结束流程
补充
若要查询某一个用户名下的所有代办任务,可以通过wf_task和wf_task_actor联查,例如