1.绘制流程图
流程图配置:
2.部署流程
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
// 仓库管理流程服务
RepositoryService repositoryService = engine.getRepositoryService();
// 部署管理构建
DeploymentBuilder builder = repositoryService.createDeployment();
// 部署流程,使用deploy()方法部署,部署同时还可以使用name方法为流程起一个名字,
// 使用category()方法为流程设定类别,返回值为Deployment对象
// 使用流程文件路径部署,会自动生成图片文件,建议将图片文件一同部署addClasspathResource("process/hello.png")
Deployment d = builder.addClasspathResource("process/hello.bpmn")
.addClasspathResource("process/hello.png")
.name("hello").category("first").tenantId("1").deploy();
System.out.println("流程定义id: "+d.getId());
3.启动流程
//流程运行服务
RuntimeService runtimeService = engine.getRuntimeService();
//1.使用流程定义的id启动流程实例,返回值为流程实例对象
//ProcessInstance processInstance = runtimeService.startProcessInstanceById(id);
//2.使用流程定义的key启动流程实例,推荐使用
//同一个流程key相同,不同的是版本,使用key启动可以默认启动最新版本的流程
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("u1", "u1");//启动流程同时设置任务办理人
ProcessInstance processInstance = runtimeService.startProcessInstanceById(key,variables);
4.完成任务
TaskService taskService = engine.getTaskService();
taskService.complete("22502");