|
本帖最后由 song_ning_ning 于 2013-8-30 10:16 编辑
当前流程流转时启动另一个流程并暂停当前流程,另一个流程结束后再唤醒当前流程
例子如下:
俩个流程:1.外出申请 2.借书申请
1.在外出申请环节的onAfterAdvance事件中添加如下代码:- String fID=CommonUtils.createGUID();//生成fID
- String task=(String)ContextHelper.getActionContext().getParameter("task");//获取当前流程(外出申请)的task
- String sql="insert into ST_JSSQB p (p,p.version,p.fMC,p.fSL,p.fSQR,p.fSData1) values ('"+fID+"',0,'java书',20,'王五','"+task+"')";
- //在借书申请表中插入数据并把当前流程(外出申请)的task保存到借书申请表中
- KSQL.executeUpdate(sql, null, "/StartProcess/StartProcess/data", null);
- ProcessUtils.suspendProcess(task, null);//暂停当前流程(注意:要先暂停当前流程,再启动其他流程)
- ProcessUtils.startProcess("/StartProcess/StartProcess/process/brrownBook/brrownBookProcess", "手动启动"fID,"/ORG01.ogn/PSN01@ORG01.psm");
复制代码 2.在借书流程的onAfterFinish事件中添加如下代码:- String sData1=ProcessUtils.getProcessData1();//获取当前流程的(借书申请)的sData1
- String sql="select ST_JSSQB.* from ST_JSSQB ST_JSSQB where ST_JSSQB='"+sData1+"'";//根据当前流程的sData1从借书申请表中查找刚刚启动借书申请流程的流程(外出申请)的task
- Table table=KSQL.select(sql, null,"/StartProcess/StartProcess/data", null);
- Iterator<Row> row=table.iterator();
- String task=row.next().getString("fSData1");
- ProcessUtils.resumeProcess(task);//唤醒刚刚暂停的流程(外出申请)
复制代码 |
|