1、Flowable UI可以做什么
Flowable提供了几个UI应用来方便了解Flowable工作流引擎的功能:
- Flowable IDM:对所有的Flowable UI应用提供注册于认证的应用,同时提供管理用户与组的管理功能,即我们说的权限管理。
- Flowable Modeler:让用户制作model,表单,决策表,和应用定义
- Flowable Task:启动流程引擎的运行任务,编辑,完成,查询工作流实例中的任务。
- Flowable Admin:允许管理员权限的用户查询BPMN,DMN,表单,提供一些选项来修改工作流中的任务,依赖Flowable Task和Flowable REST App。
Flowable REST应用主要提供了Flowable相关的REST 接口。
2、基于Flowable UI设计模拟一个请假流程
2.1 业务流程说明
创建一个自动审批的请假业务流程。
当员工请假天数<=10天时,系统自带审批通过,并发送通过邮件。
当员工请假天数>10天时,系统自带审批通过,并发送通过邮件。
2.2 Flowable IDM中创建用户和组
2.2.1 创建用户
创建一个用户:张三,隶属普通员工组。
创建普通员工组,将张三加入到对应的分组。
需要注意的是,添加成员时候需要搜索【用户名称】而非ID。
2.2.1 设置登陆权限
将张三添加到workflow的权限控制中,让其可以登陆。
2.3 Flowable Modeler中创建业务流程
2.3.1创建流程
进入Flowable Modeler,创建流程
点击创建新模型后会出现业务流程模版,如下我先列出了请假流程中需要使用的元素,以及各自的含义。
画请假的流程图:
创建一个请假流程的表单,选中请假任务,下面属性中填写表单引用,创建一个新表单即可自动关联。
创建表单,填写表单的名称、key、描述之后进入表单设计页面。
这里设计三个字段: 名字、天数、请假理由。
请假天数后续判断需要用到,这里我将天数重命名一下,为了方便我们在后边的决策表中使用。
创建表单之后保存,此时可以重命名。
表单创建完成之后,表单引用中会显示关联的表单,如下:
创建表单完成之后,还要为请假的用户任务分配用户,这里我分配了用户组
选择普通员工组。
接下来要编辑决策表,这里我们假定设置的决策为:
根据用户在请假表单中提交的请假天数做判断,若大于10天则驳回,若小于等于10天则批准。
点击决策任务,选择属性面板中的决策表参考,添加决策表。
新建决策表
编辑左边的输入列,变量名称holidays需要和表单中的holidays对应。
编辑右边的输出列,
完整的决策表:
决策表建立之后保存回到流程界面。
在互斥网关之后的连接线添加路由条件
分别设置${autoAudit==true}和${autoAudit==false},这里的autoAudit就是决策表的输出变量,注意表达式不能有空格。
autoAudit就是经过决策表之后输出的值,如果是决策表输出true就执行发送通过邮件,如果决策表输出fase就执行发送拒绝邮件。
设置邮件发送内容,正文 属性即邮件内容。
至此,业务流程已经完成了,接下来需要去创建一个应用程序。
2.3.2 创建应用程序
将流程模型保存之后点击应用程序,创建新的应用程序。
在app定义中编辑包含的流程模型
选择编辑包含模型
保存之后重新进入 请假应用程序,点击右上角的发布,请假流程就被发布到这个程序上了,用户只需要到流程里去认领即可。
发布
如果发布Flowable应用程序报错,需要去tomcat后台查询报错原因。
tomcat报错提示:初步判断是邮件任务出现问题,没有填写邮件任务的收件人、发件人等信息,回到流程里编辑邮件任务补充信息。
重新发布程序
2.4 Flowable Task启动流程
2.4.1 启动流程
切换到flowable-task,登陆对应候选组的用户,首页可以看到刚才发布的新的请假应用程序
选择对应的程序,点击流程,新建一个流程并启动。
点击右上角,启动流程
这样就启动了一个新流程。
2.4.2 认领任务
点击活动任务中的具体任务,填写请假表单,认领任务
这里对于新手有一个小坑。可以看到我的请假表单右上角并没有出现【认领】字样,是因为我的用户是testAdministrator用户,而我们请假表单在流程模型中已被设置为【普通员工】组,所以应该用zhangsan的角色来登陆,才会出现【认领】。
在flowable-idm中设置zhangsan可以访问flowable workflow,登录zhangsan账户
重新启动流程,认领 填写请假单的 用户任务。
这个时候就可以填写请假单了。
按照我们的预想,工作流会根据表单中的天数自动的判断是允许请假还是拒绝请假。
填写表单后,点击完成,代表用户任务已经完成,工作流将流转到下一步。
若程序报错,需要根据报错进行处理,如下报错,即我们在排他网关后的判断条件写作,修改重新发布应用程序即可。
检查流程图,在流程-已完成中,可以看到我们启动的流程实例的进度。
至此,我们一个完整的工作流程就结束了。
2.4.3 邮件报错处理
新手在实际操作中,会报如下错:could not send e-mail in execution,原因是无法发送邮件,我们没有配置smtp服务器,当然发送不了。
设置一下flowable的邮件发送设置,参考:
[[Flowable UI发送邮件设置SMTP服务 id=1171a6a4-706e-4121-8dc6-fa0e70fadadd]]
2.5 Flowable Admin查看
Flowable admin提供了一个可以查看流程部署、实例、任务等的界面
3、补充说明
流程修改后需要重新发布应用程序。
发布应用程序后,用户现有的任务中不会展示新的流程,需要取消现有流程重新发起流程实例来验证。