资源部署涉及到的表
act_re_deployment (部署对象表)存放流程定义的显示名称和部署时间,每部署一次增加一条记录
act_re_procdef (流程定义表)存放流程定义的属性信息 部署每个新的流程定义都会在这张表中增加记录 在流程定义的key相同的情况下,使用的是版本升级+1
流程文件中 targetNamespace字段对应着 表中CATEGORY
流程文件中id对应着表中key
流程文件name对应着表中name
主键id规则为 key:virsion:generatedid
act_ge_bytearray (资源文件表)存储流程定义相关的部署信息。即流程定义文档的存放地。没不输一次就会增加两条记录,一条是关于bpmn规则文件的,一条是图片的(如果部署时只指定了bpmn一个文件,flowable会在部署时解析bpmn文件内容自动生成流程图)。两个文件不是很大,都是以二进制存储在数据库中
资源部署方式
1.classpath方式
2.文本方式
3.模型方式
4.字节方式
5.流方式
DeploymentBuilder addInputStream(String resourceName, InputStream inputStream);DeploymentBuilder addClasspathResource(String resource);DeploymentBuilder addString(String resourceName, String text);DeploymentBuilder addBytes(String resourceName, byte[] bytes);DeploymentBuilder addZipInputStream(ZipInputStream zipInputStream);DeploymentBuilder addBpmnModel(String resourceName, BpmnModel bpmnModel);
流程部署 DeploymentBuilder classpath方式
@Test
public void DeploymentBuild1() {DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().category("测试分类").name("名称").addClasspathResource("Complex_compensation.manualmodif.importInFlowable_NOSHAPE.bpmn20.xml");//流程部署Deployment deploy = deploymentBuilder.deploy();System.out.println(deploy.getId());
}
/**
*字符串方式
*资源名称限制 结尾必须是bpmn20.xml or bpmn 才可以部署到流程定义表
*/@Testpublic void deploy1() {String text = IoUtil.readFileAsString("Complex_compensation.manualmodif.importInFlowable_NOSHAPE.bpmn20.xml");DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().category("测试分类").name("名称").key("测试的key").addString("testStr.bpmn20.xml", text);//流程部署Deployment deploy = deploymentBuilder.deploy();System.out.println(deploy.getId());}/*** 输入流方式*/@Testpublic void deploy2() {InputStream inputStream = SpringTest.class.getClassLoader().getResourceAsStream("Complex_compensation.manualmodif.importInFlowable_NOSHAPE.bpmn20.xml");DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().category("测试分类").name("名称").key("测试的key").addInputStream("inputStream.bpmn20.xml", inputStream);//流程部署Deployment deploy = deploymentBuilder.deploy();System.out.println(deploy.getId());}