一、部署Activiti
- 下载Activiti
地址:https://github.com/Activiti/Activiti/releases/download/activiti-6.0.0/activiti-6.0.0.zip -
解压,将这三个war复制到tomcat的webapp目录下
war
目录结构如下:
.
├── activiti_readme.png
├── database
│ ├── create
│ ├── drop
│ └── upgrade
├── libs
│ ├── activiti-app-logic-6.0.0-sources.jar
│ ├── activiti-app-logic-6.0.0.jar
│ ├── activiti-app-rest-6.0.0-sources.jar
│ ├── activiti-app-rest-6.0.0.jar
│ ├── ......
├── license.txt
├── notice.txt
├── readme.html
└── wars
├── activiti-admin.war
├── activiti-app.war
└── activiti-rest.war
database存放数据库对象相关脚本,包含不同的数据库脚本
libs包含activiti开发过程中需要用到的jar包和源码,不建议通过jar包直接引用,建议通过maven进行管理
wars包含三个app,activiti-app提供了一个流程的建模工具,支持流程模型的导出和发布到activi系统,也提供了一个相对简单到流程审批界面和流程发起界面,但完成度不高。
activiti-admin提供管理员功能,可以查看当前流程实例运行情况。
activiti-rest提供activiti 所有rest api接口
将wars文件夹下三个war文件复制到tomcat的webapps目录下,启动tomcat即可自动部署,首次部署需要初始化数据库,时间可能比较长,默认用的是自带的内存数据库h2,我们也会介绍如何修改为我们自己的数据库。
应用 | 说明 | 地址 | 默认用户名/密码 |
---|---|---|---|
activiti-app | 在线流程设计发布应用 | http://localhost:8080/activiti-app | admin/test |
activiti-admin | 流程平台管理应用,用于查看流程平台运行详情 | http://localhost:8080/activiti-admin | admin/admin |
activiti-rest | rest-api接口应用 | http://localhost:8080/activiti-rest | kermit/kermit |
activiti-app:
这个应用包含流程建模和用户管理相关功能,activiti-app提供了一个bpmn的建模工具,可以将模型导出或者部署到activiti系统中。
默认有三个app:
Kickstart app包含四个功能,流程模型设计,表单设计,决策表设计,app管理
Task App提供一个简单到待办审批界面和流程发起界面。
Identity management用来管理用户和用户组。
- 启动Tomcat
- 在线流程设计发布应用
http://localhost:8080/activiti-app
二、 界面国际化
1、添加多语言json文件:
以下文件地址位于activiti-app目录中:
流程设计器界面文件地址:activiti-app\editor\i18n
应用程序界面文件地址:activiti-app\i18n
任务列表界面文件地址:activiti-app\workflow\i18n
用户管理界面文件地址:activiti-app\idm\i18n
2、修改js文件:
以下文件地址位于activiti-ui模块下的activiti-app模块下:
流程设计器界面js文件地址:activiti-app\scripts\app.js
应用程序js文件地址:activiti-app\scripts\landing-app.js
任务列表js文件地址:activiti-app\workflow\scripts\workflow-app.js
用户管理js文件地址:activiti-app\idm\scripts\idm-app.js
以上四个文件中需要做的修改是一样的,都是按照以下步骤:
(1)先在js文件中搜索:var proposedLanguage = $translate.proposedLanguage(); 然后将下面代码注释掉。
// if (proposedLanguage !== 'de' && proposedLanguage !== 'en' && proposedLanguage !== 'es' && proposedLanguage !== 'fr'
// && proposedLanguage !== 'it' && proposedLanguage !== 'ja') {
// $translate.use('en');
// }
在下面添加代码:
var lang = (navigator.browserLanguage || navigator.language).toLowerCase();
switch (lang) {
case 'zh-cn':
$translate.use('zh-CN');
break;
case 'en':
$translate.use('en');
break;
default:
$translate.use('zh-CN');
}
(2)然后再搜索registerAvailableLanguageKeys方法,将其修改为以下代码:
// .registerAvailableLanguageKeys(['en'], {
// 'en_*': 'en',
// 'en-*': 'en'
// });
$translateProvider.registerAvailableLanguageKeys(['en', 'zh-CN'], {
'en_*': 'en',
'en-*': 'en',
"zh-*": "zh-CN" // 这里将zh-CN、zh-TW都转为zh-CN
});
- 添加多语言json文件
流程设计器界面:
新建文件zh-CN.json放在:D:\apache-tomcat-8.5.23\webapps\activiti-app\editor\i18n 目录下:
内容:
拷贝en.json为zh-CN.json自行翻译
应用程序界面:
新建文件zh-CN.json放在:D:\apache-tomcat-8.5.23\webapps\activiti-app\i18n 目录下:
内容:
{
"GENERAL": {
"MAIN-TITLE": "Activiti",
"ERROR": {
"GENERIC": "抱歉,发生了一个错误。",
"UNKNOWN": "抱歉,执行请求的操作时出错。",
"BAD_REQUEST": "执行请求的操作时出错。",
"NOT_FOUND": "您试图访问的资源不存在。",
"UNAUTHORIZED": "您应该登录才能执行请求的操作。",
"FORBIDDEN": "不允许您执行请求的操作。",
"INTERNAL_SERVER_ERROR": "抱歉,执行请求的操作时发生意外错误。",
"QUOTA-EXCEEDED-RUNTIME-APPS": "作为试用用户,您只能同时部署 {{quota}} 应用程序。",
"QUOTA-EXCEEDED-LICENSE-APPS": "许可证只允许同时部署 {{quota}} 应用程序。"
},
"ACTION": {
"LOGOUT": "退出",
"HELP": "入门",
"EDIT-PROFILE": "编辑配置文件",
"SAVE": "保存",
"CANCEL": "取消",
"CLOSE": "关闭",
"DEPLOY": "部署",
"ABOUT": "关于Alfresco Activiti"
}
},
"LOGIN": {
"TITLE": "登录",
"USERNAME": "用户名",
"USERNAME-PLACEHOLDER": "输入您的用户名",
"PASSWORD": "密码",
"PASSWORD-PLACEHOLDER": "输入您的密码",
"INVALID-CREDENTIALS": "无效的凭据",
"ACTION": {
"CONFIRM": "登录"
}
},
"ACCOUNT": {
"ACTIVATE": {
"TITLE": "激活帐户",
"ACTIVATING-MESSAGE": "请稍候 {{userFullName}} 我们正在激活您的帐户。",
"SUCCESS-MESSAGE": "您的帐户已激活。请在下面登录以开始设计和运行流程。",
"FAILURE-MESSAGE": "无法激活您的帐户。它已被激活或激活链接已过期。"
},
"RESET-PASSWORD-REQUEST": {
"MESSAGE": "忘记密码了?在下面输入您的电子邮件地址以接收电子邮件以重置密码。",
"TITLE": "重置密码",
"EMAIL": "电子邮件地址",
"EMAIL-PLACEHOLDER": "输入您的电子邮件",
"SECURITY-SECTION": "安全检查",
"CONFIRM": "请求密码重置",
"SUCCESS-MESSAGE": "您将很快收到一封邮件,其中包含重置密码的链接",
"ERROR": {
"UNEXISTING-USER": "具有给定电子邮件地址的用户不存在。"
}
},
"RESET-PASSWORD": {
"TITLE": "重置密码",
"PASSWORD": "密码",
"PASSWORD-CONFIRM": "确认密码",
"PASSWORD-PLACEHOLDER": "输入新密码",
"PASSWORD-CONFIRM-PLACEHOLDER": "确认新密码",
"CONFIRM": "更改密码",
"LOADING": "正在重置密码...",
"SUCCESS-MESSAGE": "您的密码已更改。",
"LOGIN": "马上登录",
"FAILURE-MESSAGE": "您的密码无法重置。重置链接无效或已过期。"
}
},
"APP": {
"KICKSTART": {
"TITLE": "启动程序",
"DESCRIPTION": "创建流程模型、表单和应用程序定义,然后与其他人共享您的模型和定义。"
},
"TASKS": {
"TITLE": "任务应用程序",
"DESCRIPTION": "访问您的完整任务列表,并从任何流程应用程序处理分配给您的任何任务。同时,启动新的流程和任务。"
},
"IDENTITY-MANAGEMENT": {
"TITLE": "身份管理",
"TITLE-TENANT-ADMIN": "身份管理",
"DESCRIPTION": "管理您的配置文件:更改图片、名称和其他设置。作为管理员用户,管理用户和组。",
"DESCRIPTION-TENANT-ADMIN": "管理组织中的用户和组。"
},
"CUSTOM-APP" : {
"TITLE-TASKS": "任务",
"TITLE-PROCESSES": "流程"
},
"POPUP" : {
"ADD-APP-TITLE": "将App添加到登录页",
"ADD-APP-SUMMARY": "将App添加到登录页"
},
"ACTION": {
"DELETE": "删除App"
},
"MESSAGE": {
"DELETED": "已成功删除App"
}
}
}
任务列表界面:
新建文件zh-CN.json放在:D:\apache-tomcat-8.5.23\webapps\activiti-app\workflow\i18n 目录下:
拷贝en.json为zh-CN.json自行翻译
用户管理:
新建文件zh-CN.json放在:D:\apache-tomcat-8.5.23\webapps\activiti-app\idm\i18n 目录下:
拷贝en.json为zh-CN.json自行翻译
三、流程设计器国际化
1、添加语言json文件:
二、流程设计
-
创建用户
创建用户
创建用户
创建用户
创建用户 -
创建流程
创建流程
创建流程
请假流程
画流程图并指定user:
画流程
选择用户
name:部门审批
Assignment:wanghao
name:HR审批
Assignment:houjianjun
-
创建应用
在 activiti-app 中,一个 App 可包含多个流程模型,因此在发布流程前,先新建一个 App并为其设置流程模型。点击 Apps 菜单,再点击“Creaea App”按钮,新建一个 App,该App就包含我们前面所设计的请假流程模型。
创建应用
创建应用
添加模型
添加模型
-
发布流程
发布流程
-
启动与完成流程
点击进入
启动流程
启动流程
启动流程 - 部门审批
使用wanghao用户登录。
进入审批
点击claim进行任务领取
:
点击claim
完成审批
完成审批
显示流程图
显示流程图 - HR审批
使用houjianjun用户登录进行审批,方法与部门审批相同。 - 流程结束