启动活动:

1.涉及到工作流的表设计时增加实例化过程ID”,” 实例化活动ID”

每一个流程只有一个启动活动,并且活动(Workflow_Act_M)的功能模块(menu_id)也是唯一的。

2.实例化过程(Workflow_Process_RT)的同时要实例化启动活动。

3.而后根据传递进来的操作值,判断后续活动IDM),实例化后续活动IDRT)。

4.实例化依赖变迁(RT),实例化条件判断(RT)。

 

传递进来的值:@MenuID功能模块ID),@OperateValue操作值

Output值:@ProcessID_RT过程ID(RT)),@CurrentlyActID_RT当前活动ID(RT)),@AfterActID_RT后续活动ID(RT)

 

根据Output@ProcessID_RT过程ID(RT)),@CurrentlyActID_RT当前活动ID(RT))将之保存到某一具体流程数据表内。

 

过程(RTWorkflow_Process_RT   过程实例状态:初始化

当前活动(RTWorkflow_Act_RT   活动实例状态:初始化

后续活动(RTWorkflow_Act_RT   活动实例状态:初始化

注:启动活动无前趋活动

判断时候有启动活动的权利。

 

 

执行活动(通过):

1.  根据活动类型判断活动是否启动活动,如果是启动活动,将过程(Workflow_Process_RT 过程实例状态变更为:由 初始化 变更为 运行中后续活动活动实例状态变更为  运行中。如果是结束活动,执行完以后将改变过程(RTWorkflow_Process_RT过程实例状态:结束 

2.  如果为人工活动、自动处理活动,判断当前活动实例状态(没有启动、初始化、就绪等待、运行中、挂起、与汇聚同步、终止、完成),当为 运行中 时,该活动可以运行。

3.  人工活动、自动处理活动:根据某一流程的 实例化过程ID、实例化活动ID ,首先查询实例化过程的状态(初始化、运行中、挂起、终止、结束),执行当前活动(首先要求判断当前活动的活动实例状态(没有启动、初始化、就绪等待、运行中、挂起、与汇聚同步、终止、完成),运行中时可以执行,挂起的活动解除挂起,方可执行。没有启动的活动实例,只有等过程实例启动方可执行。),并且要根据条件得到后续活动ID(M),实例化后续活动IDRT。同时要求查询出前趋活动IDRT,将之实例化 依赖变迁(RT)、条件判断(RT)

 

传递进来的值:@MenuID功能模块ID),@OperateValue操作值

Output值:

 

 

 

 

执行活动(不通过)

1.  Update依赖变迁(RTWorkflow_Transmit_RTafter_act_id_rt启动活动ID

2.  如果是结束活动,需要改变该活动的 活动实例状态 ,需要将 活动类型 结束活动 改变。改变为 人工活动 将后续活动IDM)变为活动类型 启动活动ID。同时要求查询出前趋活动IDRT,将之实例化 依赖变迁(RT)、条件判断(RT)

3.  如果是人工活动、自动处理活动 ,执行你的操作,将后续活动IDM)变为活动类型 启动活动ID。 同时要求查询出前趋活动IDRT,将之实例化 依赖变迁(RT)、条件判断(RT)

 

 

活动的挂起,同时要求过程挂起。

活动的解除挂起,同时要求解除过程挂起。

活动的终止,过程也终止。

posted on 2006-03-07 10:18  星火燎原  阅读(361)  评论(0编辑  收藏  举报