启动活动:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1.涉及到工作流的表设计时增加”实例化过程ID”,” 实例化活动ID”。
每一个流程只有一个启动活动,并且活动(Workflow_Act_M)的功能模块(menu_id)也是唯一的。
2.实例化过程(Workflow_Process_RT)的同时要实例化启动活动。
3.而后根据传递进来的操作值,判断后续活动ID(M),实例化后续活动ID(RT)。
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))将之保存到某一具体流程数据表内。
过程(RT)Workflow_Process_RT 过程实例状态:初始化
当前活动(RT)Workflow_Act_RT 活动实例状态:初始化
后续活动(RT)Workflow_Act_RT 活动实例状态:初始化
注:启动活动无前趋活动
判断时候有启动活动的权利。
执行活动(通过):
1. 根据活动类型,判断活动是否启动活动,如果是启动活动,将过程(Workflow_Process_RT) 的过程实例状态变更为:由 初始化 变更为 运行中,将后续活动的活动实例状态变更为 运行中。如果是结束活动,执行完以后将改变过程(RT)Workflow_Process_RT的过程实例状态:结束 。
2. 如果为人工活动、自动处理活动,判断当前活动实例状态(没有启动、初始化、就绪等待、运行中、挂起、与汇聚同步、终止、完成),当为 运行中 时,该活动可以运行。
3. 人工活动、自动处理活动:根据某一流程的 实例化过程ID、实例化活动ID ,首先查询实例化过程的状态(初始化、运行中、挂起、终止、结束),执行当前活动(首先要求判断当前活动的活动实例状态(没有启动、初始化、就绪等待、运行中、挂起、与汇聚同步、终止、完成),运行中时可以执行,挂起的活动解除挂起,方可执行。没有启动的活动实例,只有等过程实例启动方可执行。),并且要根据条件得到后续活动ID(M),实例化后续活动ID(RT)。同时要求查询出前趋活动ID(RT),将之实例化 依赖变迁(RT)、条件判断(RT) 。
传递进来的值:@MenuID(功能模块ID),@OperateValue(操作值)
Output值:
执行活动(不通过)
1. Update依赖变迁(RT)Workflow_Transmit_RT的after_act_id_rt为启动活动的ID。
2. 如果是结束活动,需要改变该活动的 活动实例状态 ,需要将 活动类型 结束活动 改变。改变为 人工活动 ,将后续活动ID(M)变为活动类型 启动活动 的ID。同时要求查询出前趋活动ID(RT),将之实例化 依赖变迁(RT)、条件判断(RT) 。
3. 如果是人工活动、自动处理活动 ,执行你的操作,将后续活动ID(M)变为活动类型 启动活动 的ID。 同时要求查询出前趋活动ID(RT),将之实例化 依赖变迁(RT)、条件判断(RT) 。
活动的挂起,同时要求过程挂起。
活动的解除挂起,同时要求解除过程挂起。
活动的终止,过程也终止。