ExecutionServiceImpl是JBPM的核心类,通过它用户可以启动工作流、使工作流进入下一个节点等等。
一、InvocationLog startProcessInstance(Long definitionId, Map variables,
String transitionName)
功能:启动一个工作流示例。
1) 根据definitionId得到工作流定义并初始化一个流程实例;
2) 得到示例的根令牌,并在令牌中记录InvocationLog;
3) 流程实例持久化;
4) 初始化执行上下文;
5) 如果根令牌分配了actor,则将actor存储在上下文中;
6) 触发PROCESS_START事件;
7) 找到开始状态的转换,让其接收令牌。
二、InvocationLog endOfState(Long tokenId, Map variables,
String transitionName)
功能:使工作流进入下一个状态。
1) 根据tokenId从数据库得到令牌;
2) 检查令牌是否满足认证要求;
3) 创建记录InvocationLog;
4) 创建运行上下文,并初始化上下文变量;
5) 触发STATE_LEAVE事件;
6) 令牌状态的转换接受令牌;