activity启动流程实例+设置流程变量+获取流程变量+向后执行一步

ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();

/**部署流程定义(从inputStream)*/
@Test
public void deploymentProcess_inpustream(){
InputStream  inputBpmn=this.getClass().getResourceAsStream("receiveTask.bpmn");
InputStream  inputPng=this.getClass().getResourceAsStream("receiveTask.png");
Deployment deployment=processEngine.getRepositoryService()
             .createDeployment()
             .name("部署名称")
             .addInputStream("receiveTask.bpmn", inputBpmn)   // 部署ID:3801
             .addInputStream("receiveTask.png", inputPng)     // 部署名称:部署名称
             .deploy();
System.out.println("部署ID:"+deployment.getId());
System.out.println("部署名称:"+deployment.getName());
}

/**启动流程实例+设置流程变量+获取流程变量+向后执行一步*/
@Test
public void startProcessIntance(){
// 流程实例key
String processKey="receiveTask";
ProcessInstance pi=processEngine.getRuntimeService()
          .startProcessInstanceByKey(processKey);
System.out.println("流程实例ID:"+pi.getId());     // 流程实例ID:4101
System.out.println("流程定义ID:"+pi.getProcessDefinitionId()); // 流程定义ID:receiveTask:1:3804

// 查询 任务中的 流程
ProcessInstance  pit=processEngine.getRuntimeService()
            .createProcessInstanceQuery()
            .processInstanceId(pi.getId())
            .singleResult();
/*if(pit==null){
HistoricProcessInstance hpi=processEngine.getHistoryService()
                   .createHistoricProcessInstanceQuery()
                   .processInstanceId(pi.getId())
                   .singleResult();
System.out.println(" "+hpi.getId()+" "+hpi.getProcessDefinitionId()+" "+hpi.getStartTime()+" "+hpi.getEndTime());
}*/

// 执行流程对象
Execution execution1=processEngine.getRuntimeService()
            .createExecutionQuery()
            .processInstanceId(pi.getId())
            .activityId("receivetask1")
            .singleResult();
/**使用流程变量设置当日销售额,用来传递业务参数*/             
processEngine.getRuntimeService().setVariable(execution1.getId(), "汇总当日销售额", 2000);

/**向后执行一步,如果流程处于等待状态,使得流程继续执行*/
processEngine.getRuntimeService().signal(execution1.getId());
/**查询执行对象ID*/
Execution execution2=processEngine.getRuntimeService()
            .createExecutionQuery()
            .processInstanceId(pi.getId())
            .activityId("receivetask2")
            .singleResult();
/**从流程变量中获取汇总当日销售额的值*/
Integer value=(Integer)processEngine.getRuntimeService().getVariable(execution2.getId(), "汇总当日销售额");
System.out.println("给老板发送短信:金额是:"+value);   //给老板发送短信:金额是:2000
/**向后执行一步,如果流程处于等待状态,使得流程继续执行*/
processEngine.getRuntimeService().signal(execution2.getId());
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值