工作流引擎开发系列四核心设计
由于某些原因,源码不能过多公布,请谅解。在整个工作流里面,最主要的部分在工作流的核心API,Acitivity和Incatior的处理上。调用过程是:工作流服务包含2个主要的服务:Run和Do,Run方法是工作流启动时候需要调用的方法,工作流启动就会按照模板来实例化一个工作流Instance,然后选取该Instance的第一个节点,并把它设为running的状态,同时该instance的状态也是running。然后会根据activity的类型来控制指针的变化,如果是approve有2种指针:next和previous;如果是countersign的话也是有2种指针:next和previous,只是next的条件必须是所有角色都有审批动作;如果是condition的话,动作主要有goto和previous,goto是根据所传的条件来判断该审批动作该走哪个节点;如果是prallel的话,工作也是主要有goto和previous,goto是同时走几个并行的分支。因此,设计如下:
1. API的设计(不允许直接调用数据服务接口)
2. 移动指针的设计
3. Acitivy活动接口的设计(主要用5种不同的活动去实现接口)
在设计个过程中,原理如下:UI调用工作流的Run和Do方法,Run根据配置的工作流模板信息去调用API实例化一个Instance,然后设置Instance中某个节点为Running状态,接着会根据xml文件中配置的节点服务地址去创建一个Activity的服务,通过Activity服务去判断Incatior的指针方向,接着会修改某些节点的running状态。
有兴趣的可以加QQ讨论270715490