乐趣区

关于工作流:Activiti7工作流idea2021监听器法器的使用

法器

宝贝宝贝转过身来

  • 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 后果图

      果然是一件好宝贝
退出移动版