第一种,使用bpmn和png文件部署流程
定义完流程后会生成bpmn文件和png文件。
就是把定义的流程部署到activiti的数据库中,也就是把bpmn的xml文件部署到activiti的服务中。
ProcessEngin engin=ProcessEngins.getDefaultProcessEngin();
RepositoryService service =engin.getRepositoryService();
Deployment deploy=service.createDeployment
.addClasspathResource("/bpmn/test.bpmn") //加载流程文件
.addClasspathResource("bpmn/test.png") //加载流程图
.name("test") //给当前的流程起个名字
.deploy(); //部署
System.out.println("流程部署的id:"+deploy.getId());
System.out.println("流程部署的名称"+deploy.getName());
;
这个就是一个部署流程的一段代码。
第二种,使用zip来部署流程
把bpmn文件和png文件打包程zip包。
InputStream inputStream=this.getClass.getClassLoader().getResourceStream("bpmn/test.zip");
ZipInputStream zipInputStream=new ZipInputStream(inpuStream);
ProcessEngin engin=ProcessEngins.getDefaultProcessEngin();
RepositoryService service =engin.getRepositoryService();
Deployment deploy=service
.createDeployment
.addZipInpustream(zipInputstream)
.name("请假申请")
.deploy();
System.out.println("流程部署的id:"+deploy.getId());
System.out.println("流程部署的名称"+deploy.getName());
部署的时候操作的三张表:
act_re_deployment:流程部署定义表,每次部署都会部署到这张表里边。
act_re_procdef:流程定义表,每次部署这个表里边会增加一条记录。
act_ge_bytearray:流程部署资源表。