Activiti⼯作流之实现⼀个简单的流程审批该代码在上⼀篇博客的基础上开发。 在resources⽬录下新建⼀个diagram⽂件夹来存放我们绘制的bpmn流程图
由于我的IDEA中已经安装了actiBPM插件,所以我们可以直接创建
然后利⽤IDEA中提供的组件来绘制流程图
我们可以点击对应的流程,在Assignee中指定任务负责⼈。
在IDEA中将bpmn格式的后缀改为.xml
时钟显示器导出png图⽚,最终效果如下:
部署流程定义就是要将上边绘制的图形即流程定义(.bpmn)部署在⼯作流程引擎 activiti 中,⽅法 如下:
/**
* 流程定义的部署
* 背后影响的表:
* act_re_deployment: 部署信息
* act_re_procdef: 流程定义
* act_ge_bytearray: 流程定义的bpmn⽂件和png⽂件
*/
public class ActivitiDeployment {
public static void main(String[] args) {
//1.创建ProcessEngineer对象
ProcessEngine processEngine = DefaultProcessEngine();
//2.获取repositoryService
RepositoryService repositoryService = RepositoryService();
//3.部署对象
塑胶面板Deployment deploy = ateDeployment()
//添加bpmn资源
.addClasspathResource("diagram/holiday.bpmn")
//添加图⽚⽂件资源
.addClasspathResource("diagram/holiday.png")
.
deploy();
//4.输出部署的⼀些信息
一个度导航System.out.Id());
System.out.Name());
}
}
我们还可以⽤zip压缩包部署
@Test
public void deployProcessByZip() {
//1.创建ProcessEngineer对象
ProcessEngine processEngine = DefaultProcessEngine();
/
/2.获取repositoryService
RepositoryService repositoryService = RepositoryService();
//3.定义zip输⼊流
InputStream inputStream = Class() .getClassLoader() .getResourceAsStream(
" diagram/holiday.zip");384孔板
//4.部署对象回转窑烧嘴
ZipInputStream zipInputStream = new ZipInputStream(inputStream);
Deployment deploy = ateDeployment()
.addZipInputStream(zipInputStream)
//5.输出部署的⼀些信息
System.out.Id());
System.out.Name());
}
4.启动⼀个流程实例
温玉理疗床流程定义部署在 activiti 后就可以通过⼯作流管理业务流程了,也就是说上边部署的请假申请流程可以使⽤了。
针对该流程,启动⼀个流程表⽰发起⼀个新的请假申请单,这就相当于 java 类与 java 对象的关 系,类定义好后需要 new 创建⼀个对象使⽤,当然可以 new 多个对象。对于请假申请流程,张三发起⼀个请假申请单需要启动⼀个流程实例。