将activiti集成到项目中

(1)官方demo学习

1.官网下载最新版本https://www.activiti.org/download-bpm

2.解压压缩包得到以下目录,docs文件夹下放置了参考文档和API找到wars文件夹下的activiti-explorer.war文件放到tomcat下的webapp下启动tomcat

3.打开浏览器进去http://localhost:8083/activiti-explorer/官方demo登入页面

登入用户密码在docs/userguide文件夹下index.html页面中列出,具体看参考文档。

4.登入进入管理页面创建流程页面


5.点击编辑模式进去流程配置页面(传入流程id即获取流程信息,使用该功能将activiti流程设计集成到项目中),流程设计在前端是一个独立的模块

6.流程设计相关的文件

(2)将activiti集成到现有项目

1.后端使用spring进行集成,maven进行包管理。spring配置

<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
        <property name="dataSource" ref="dataSource" />
        <property name="transactionManager" ref="transactionManager" />
        <property name="databaseSchemaUpdate" value="true" />
        <property name="jobExecutorActivate" value="false" />
        <property name="dbIdentityUsed" value="false" />
        <!-- 发布流程生成图片是正常显示中文 -->
        <property name="activityFontName" value="宋体"/>
        <property name="labelFontName" value="宋体"/>
    </bean>

    <bean id="objectMapper" class="com.fasterxml.jackson.databind.ObjectMapper"/>

    <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
        <property name="processEngineConfiguration" ref="processEngineConfiguration" />
    </bean>

    <bean id="identityService" factory-bean="processEngine"
        factory-method="getIdentityService" />
    <bean id="formService" factory-bean="processEngine"
        factory-method="getFormService" />
    <bean id="repositoryService" factory-bean="processEngine"
        factory-method="getRepositoryService" />
    <bean id="runtimeService" factory-bean="processEngine"
        factory-method="getRuntimeService" />
    <bean id="taskService" factory-bean="processEngine"
        factory-method="getTaskService" />
    <bean id="historyService" factory-bean="processEngine"
        factory-method="getHistoryService" />
    <bean id="managementService" factory-bean="processEngine"

        factory-method="getManagementService" />

同时在resource文件夹下放置stencilset.json文件(此处使用中文版)

pom.xml配置

<!-- activiti工作流版本5.21.0 -->
        <activiti.version>5.21.0</activiti.version>

<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-modeler</artifactId>
            <version>${activiti.version}</version>

        </dependency>

忽略其他依赖配置

2.将diagram-viewer、editor-app文件夹和modeler.html拷贝到webapp下



此处涉及到处理国际化问题,在editor-app/i18n下加入zh-CN.json文件


修改editor-app/app.js文件

找到 $translateProvider.preferredLanguage('en');   修改成

 //$translateProvider.preferredLanguage('en');
        var language = navigator.language;  
        if(!language || "zh-CN" == language){  
            $translateProvider.preferredLanguage('zh-CN');  
        }else{  
            $translateProvider.preferredLanguage('en');  

        }

修改editor-app/app-cfg.js文件的contextRoot属性为自己的应用名称


(3)流程列表获取发布等等