一、流程变量
流程变量在整个工作流中扮演很重要的作用。例如:请假流程中有请假天数、请假原因等一些参数都为流程变量的范围。流程变量的作用域范围是流程实例。也就是说各个流程实例的流程变量是不相互影响的。流程实例结束完成以后流程变量还保存在数据库中(存放到流程变量的历史表中)。
二、部署流程定义
public class VatTest {
@Test
public void testDeploy() throws Exception {
//获取核心对象 服务大管家
ProcessEngine defaultProcessEngine = ProcessEngines.getDefaultProcessEngine();
//获取服务
RepositoryService repositoryService = defaultProcessEngine.getRepositoryService();
//部署对象
DeploymentBuilder createDeployment = repositoryService.createDeployment();
//上传资源
InputStream inputStream = this.getClass().getResourceAsStream("Leave.bpmn");
InputStream inputStream2 = this.getClass().getResourceAsStream("Leave.png");
createDeployment.addInputStream("Leave.bpmn", inputStream);
createDeployment.addInputStream("Leave.png", inputStream2);
createDeployment.name("申请假期");
//部署
createDeployment.deploy();
}
}
三、启动流程实例
/**
* 启动流程实例
* @throws Exception
*/
@Test
public void testStart() throws Exception {
//获取核心对象 服务大管家
ProcessEngine defaultProcessEngine = ProcessEngines.getDefaultProcessEngine();
//获取服务
RuntimeService runtimeService = defaultProcessEngine.getRuntimeService();
//启动 并且设置变量
Map<String,Object> map = new HashMap<>();
map.put("time", new Date());// s时间
map.put("is", true); // 是否是会员卡
map.put("user", new User(1, "kd", "1111"));
ProcessInstance startProcessInstanceByKey = runtimeService.startProcessInstanceByKey("Leave",map);
System.out.println(startProcessInstanceByKey);