0
点赞
收藏
分享

微信扫一扫

Jbpm通知custom


一、如图:

Jbpm通知custom_ide

二、实现类

public class ActivityBehaviourImpl implements ExternalActivityBehaviour{

private static final long serialVersionUID = 1L;

//任务到了马上执行,默认离开
@Override
public void execute(ActivityExecution execution) throws Exception {
System.out.println("发送了通知");
//默认的连接
//execution.takeDefaultTransition();
//使用指定连线名称
//execution.take(transitionName);

//不离开,而是在本活动上等待,直到外部调用signal方法
execution.waitForSignal();
}

//本活动停留了,调用了signalExecution()离开活动之前所执行的代码
//如果execute没停留,不执行此方法
@Override
public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) throws Exception {
System.out.println("signal---------");
}

}

三、运用:

public class ProcessDecisition {
private static ProcessEngine processEngine = Configuration.getProcessEngine();

@Test
public void testProcess() throws Exception {
//部署
String deployId = processEngine.getRepositoryService()
.createDeployment()
.addResourceFromClasspath("custom/custom.jpdl.xml")
.addResourceFromClasspath("custom/custom.png")
.deploy();
System.out.println("部署完毕:deployId=="+deployId);

ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey("custom");
System.out.println("启动完毕:processInstanceId=="+pi.getId());
System.out.println("正在执行的活动名称=="+pi.findActiveActivityNames());

}

@Test
public void testSignal() throws Exception {
//jbpm4_execution表中的_id字段
String executionId = "custom.360008";
processEngine.getExecutionService().signalExecutionById(executionId);

}

}


举报

相关推荐

0 条评论