今天我们来发布一个流程,然后查看数据库中都发生了什么变化。
下面我们使用activiti designer设计一个流程。如图
流程很简单,我们先简单后增加难度。
创建流程图的顺序,新建一个文件夹(diagram)右键新建一个activiti diagram如图:
至于这个流程图怎么画,就不在这里详细的讲述了,如果你顺利的把activiti designer安装上,这个流程并不难画出来。其实这个流程图就是一个xml文件,遵循了bpmn协议。我们可以使用xml编辑器将他打开,查看里面的内容(这里我只截取了一段xml内容):
在生成这个xml的同时,activiti插件还可以给我们生成对应的bmp图片。做如下图设置
这时候我们的流程图必须发生变化并保存,才会生成这个图片。
我之前在流程图上面点击右键,也可以到处bmp图片,但当发布的时候就会报错。查看错误原因是因为图片过大,activiti应该是要将这个图片的字节数组保存到数据库中去,如果自己手动导出这个图片,会导致图片达到1M左右,插入数据的时候就会报错,而activiti插件生成的图片会很小,没有这个问题。
下面我们开始部署这两个资源文件。
1 @Test 2 public void deployProcess() throws SQLException, ClassNotFoundException{ 3 String resource="activiti.cfg.xml"; 4 ProcessEngineConfiguration configuration=ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(resource); 5 ProcessEngine engine=configuration.buildProcessEngine(); 6 RepositoryService repositoryService= engine.getRepositoryService(); 7 String resourceName_bpmn="leave_bpmn"; 8 String resourceName_bmp="leave_bmp"; 9 InputStream inputStream_bpmn=this.getClass().getClassLoader().getResourceAsStream("MyProcess.bpmn"); 10 InputStream inputStream_bmp=this.getClass().getClassLoader().getResourceAsStream("MyProcess.bmp"); 11 DeploymentBuilder builder= repositoryService.createDeployment(); 12 builder.addInputStream(resourceName_bpmn, inputStream_bpmn); 13 builder.addInputStream(resourceName_bmp, inputStream_bmp); 14 builder.name("test123"); 15 builder.category("test321"); 16 builder.tenantId("546"); 17 builder.deploy(); 18 }