当前位置: 代码迷 >> 综合 >> flowable 资源部署
  详细解决方案

flowable 资源部署

热度:59   发布时间:2023-11-25 04:07:39.0

资源部署涉及到的表

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());}