Shark流程掛起過程
1) 得到執行管理器介面
ExecutionAdministration ea= Shark.getInstance().getAdminInterface()..getExecutionAdministration();
2) 串連工作流程伺服器
ea.connect(username, password, enginename, scope);
3) 用流程執行個體號擷取流程
WfProcess wfp = ea.getProcess(processInsKey);
4) 掛起流程
wfp.suspend();
下面是掛起操作的具體分析
//狀態不能是已經掛起
if (state(t).equals(SharkConstants.STATE_OPEN_NOT_RUNNING_SUSPENDED)) {
throw new AlreadySuspended("The process is already suspended");
}
//運行中的流程才能掛起
if (state(t).startsWith(SharkConstants.STATEPREFIX_OPEN_NOT_RUNNING)) {
throw new NotRunning("The process is not in the running state");
}
try {
//改變狀態
change_state(t,SharkConstants.STATE_OPEN_NOT_RUNNING_SUSPENDED);
Iterator it=getActiveActivities(t).iterator();
while (it.hasNext()) {
WfActivityInternal act=(WfActivityInternal)it.next();
//對每個活動都做同樣的操作
if (act.state(t).startsWith(SharkConstants.STATEPREFIX_OPEN)) {
act.suspend(t);
}
}
}
5) 中斷連線
ea.disconnect();