• ACTIVITI工作流的集成记录


    1、添加jar包

    <activiti.version>5.22.0</activiti.version>
    <!-- Activiti -->
    <dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-engine</artifactId>
    <version>${activiti.version}</version>
    </dependency>
    <dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-spring</artifactId>
    <version>${activiti.version}</version>
    </dependency>
    <dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-explorer</artifactId>
    <version>${activiti.version}</version>
    <exclusions>
    <exclusion>
    <artifactId>vaadin</artifactId>
    <groupId>com.vaadin</groupId>
    </exclusion>
    <exclusion>
    <artifactId>dcharts-widget</artifactId>
    <groupId>org.vaadin.addons</groupId>
    </exclusion>
    <exclusion>
    <artifactId>activiti-simple-workflow</artifactId>
    <groupId>org.activiti</groupId>
    </exclusion>
    </exclusions>
    </dependency>
    <dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-modeler</artifactId>
    <version>${activiti.version}</version>
    </dependency>
    <dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-diagram-rest</artifactId>
    <version>${activiti.version}</version>
    </dependency>
    <dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-rest</artifactId>
    <version>${activiti.version}</version>
    </dependency>


    2、原理

    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    
    RuntimeService runtimeService = processEngine.getRuntimeService();
    RepositoryService repositoryService = processEngine.getRepositoryService();
    TaskService taskService = processEngine.getTaskService();
    ManagementService managementService = processEngine.getManagementService();
    IdentityService identityService = processEngine.getIdentityService();
    HistoryService historyService = processEngine.getHistoryService();
    FormService formService = processEngine.getFormService();

    3、常见使用设计规则

    (1)bpmn规范中:在编辑模型的时候,可给定任务执行人

    (2)领取任务:在模型中没有指定执行人的时候,可以使用TaskService#claim领取任务(当然不领取任务,也是可以完成任务的)

    (3)完成任务:为了业务的完整性,必须有人先领取任务,才能完成任务

    (4)审批是否通过:activiti中有变量这一概念,通过这一概念,可以在流程完毕的时候,判断审批是否通过。      pass(dataType=Integer)://流程是否全部审批通过 1:全部通过 | 0:流程不通过

    (5)流程模型设计:每个任务后面都设置一个互斥网关,一个是通过进入下一步,一个是不通过结束流程(赋值变量),这样在流程完成的时候根据变量判断流程是否审批通过

    4、常用service封装

    详见:https://git.oschina.net/bunic/qy-erp/tree/master/erp-common/src/main/java/com/qysxy/erp/framework/activiti

    5、集成activiti-explore,web流程设计器

    js包:https://git.oschina.net/bunic/qy-erp/tree/master/erp-acceptor/src/main/webapp/third/activiti

    json接口:https://git.oschina.net/bunic/qy-erp/tree/master/erp-acceptor/src/main/java/com/qysxy/erp/common/activiti

    /service/model/{modelId}/save
    /service/model/{modelId}/json
    /service/editor/stencilset



    
    
    
    
  • 相关阅读:
    Taobao OpenERP Connector 简要说明
    OpenERP 搜索过滤: 过去三个月
    openerp编辑与非编辑下隐藏按钮的方法
    javascript入门系列演示·三种弹出对话框的用法实例
    Linux Ubuntu 开机自动启动项设置方法 例:svn服务
    Linux下SVN(Subversion)自动启动脚本
    PgSql备份pg_dump与还原手记pg_restore(转)可以直接跳转至最后面的示例进行查看
    windows下cmd命令行显示UTF8字符设置(CHCP命令)
    Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)
    Linux的fuser命令解析
  • 原文地址:https://www.cnblogs.com/yuan951/p/7442720.html
Copyright © 2020-2023  润新知