Shark流程启动过程
1) 定位工作流服务器
Shark.configure("Shark.conf");
SharkInterface si= Shark.getInstance();
2) 连接工作流服务器
SharkConnection sc= si. getSharkConnection();
sc. connect(username, pwd, engineName, scope);
3) 产生流程
WfProcess wfp = sc.createProcess(pkgId, pDefId);
在产生流程时,使用的是SharkConnection的对象,该对象中保存了用户信息,用户信息作为产生的流程的requester;
然后用两个参数:包定义ID和流程定义ID获取流程管理器的ID;
最后,用该流程管理器来产生流程
4) 启动流程
wfp.start();
经过SHARK的几轮跳转,最后的实现在org.enhydra.shark.WfProcessImpl中,实现代码如下:
//前面有对异常的判断
//启动时间在后面要用
startedTime = System.currentTimeMillis();
//改变状态
change_state(t,SharkConstants.STATE_OPEN_RUNNING);
//激活计时器
this.activateLimitAgent(t);
//驱动流程
run(t, null);
5)断开连接