法器
宝贝宝贝转过身来
4、监听器
工作流的开头都是创建bpmn文件,注意一点细节问题:需要加监听器了
首先我们得有一个监听器package listener; import org.activiti.engine.delegate.*; public class MyTaskListener implements TaskListener { public void notify(DelegateTask delegateTask) { //delegateTasK是当前任务的对象 //默认是create事件 if("创建申请".equals(delegateTask.getName()) && "create".equals(delegateTask.getEventName())){ delegateTask.setAssignee("张三"); } } }
然后呢启动Camunda Modele,也就是我之前文章放的那个链接,解压后就可以用了。为什么用它而不使用插件呢,因为插件里面根本没有监听器,在填完阶段的基本信息后(也就是id和name),找到Listeners,点击Execution是全局,Task是活动阶段,点击加号创建一个监听器,默认是create创建时监听,下面的Java Class就是监听器的包放置位置。我放的很简单
构建好之后将这个流程导出来,这是一张图该怎么导成bpmn文件呢?
点击xml文件,如果下面没有这两个选项点击log打开菜单,复制粘贴或者直接另存为,另存为文件的时候默认xml格式的,需要改成bpmn文件格式
导进idea之后会报错:
如果删了呢,会有更多错误。
这里就有一个坑:
idea跟Camunda Modeler不兼容的问题,其实就是一个camunda标签的问题,idea里面是没有的,将他全部改成activiti就可以了,然后正常走流程看效果:ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); RepositoryService repositoryService = processEngine.getRepositoryService(); Deployment deploy = repositoryService.createDeployment() .name("测试监听器") .addClasspathResource("bpmn/demo-listen.bpmn") .addClasspathResource("bpmn/testListener.bpmn20.png") .deploy();
定义好之后数据表会有信息
- act_re_procdef表结果:
启动流程:
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); RuntimeService runtimeService = processEngine.getRuntimeService(); runtimeService.startProcessInstanceByKey("testListener");
- ACT_RU_TASK结果图
果真是一件好宝贝
- act_re_procdef表结果:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。