一、snakerflow工作流概述
1、Snakerflow工作流运作机制,其实就是围绕7张核心的增删改查进行运作。
1)首先你需要定义一个流程文件也就是*.snaker文件,这个文件是对流程的描述。 2)部署流程文件*.snaker,也就是在数据库中对wf_process新增一条记录,其中表wf_process的content字段就是存的流程文件内容。这表中的一条记录相当于一个模板,所有的流程实例都已据此生成。
3)启动一个流程,也就是我们所说的生成一个流程实例;生成时要指定wf_process表的一条记录的ID。启动成功后会在数据库中wf_order和wf_hist_order表中分别插入一条记录,两个表的ID是相同的,不带hist的表都是存储当前有效(执行中)的记录。带hist是存储的结束的(下同)。wf_hist_order比wf_order表多一个字段order_state,用来表示该流程实例是否已经结束,1进行中;0结束。所有字段的含义和枚举值都在源码bean中有解释。(下同)。Order表中variable字段存的是该流程实例的全局变量,你可以在任何节点的时候获取使用。
4)执行节点的任务A2,上述中wf_task存的是执行中的记录,也就是说在执行A2前,wf_task中肯定会有一条执行中的任务记录,假设为A1,那么执行A2时的增删改为先将wf_task和wf_task_actor表中A1的记录插入wf_hist_task和wf_hist_task_actor中;其次是删除wf_task和wf_task_actor中A1记录,然后将A2的信息插入到wf_task和wf_task_actor中。此时wf_task表的parent_task_id是历史表A2记录的Id,通过此可将所有任务串联起来。task表的variable中的