我们前面创建的用户现在是没有任何权限的,例如现在如果使用 zhangsan/123 进行登录,登录成功后页面是空的,没有任何东西:
所以我们要为用户添加相应的权限。点击顶部的权限控制一栏,如下:
我们可以为这五种访问分别设置对应的用户/用户组:
- 访问 idm 应用:这个就是访问身份管理应用,如果用户没有访问这个的权限,那么用户在登录成功的后的首页上就看不到身份管理应用程序这个菜单项。
- 访问 admin 应用:这个是访问管理员应用程式,如果没有没有这个的访问权限,那么用户在登录成功之后的首页上就看不到管理员应用程式这个菜单项。
- 访问 modeler 应用:这个是访问建模器应用程序,如果没有没有这个的访问权限,那么用户在登录成功之后的首页上就看不到建模器应用程序这个菜单项。
- 访问 workflow 应用:这个是访问任务应用程序,如果没有没有这个的访问权限,那么用户在登录成功之后的首页上就看不到任务应用程序这个菜单项。
- 访问 REST API:这个是指用户通过 REST API 访问工作流的权限。
以访问 idm 应用为例,在设置的时候,我们可以直接设置用户,也可以设置用户组,设置用户组的话,则这个组中的所有用户都能访问这个菜单项。
我这里设置的是经理可以访问所有应用,而组长只可以访问 workflow 应用。
点击创建流程,可以开始一个流程图的绘制:
我们来看一下初始页面:
左边是菜单栏,里边是绘制流程图的各种组件,下边是流程图的各种属性了。其他东西大家看一下就懂了,我就不多说了。下边没有什么需要配置的,我就设置了一下版本号。
接下来我绘制一个简单的流程,如下图(一个流程启动之后,经过两个 UserTask 然后就结束了):
绘制的时候,光标放在上一个组件上,然后会自动提示后面的组件,直接点击即可:
如果想要的组件没有提示,那么就只能在左边菜单中寻找,找到之后拖过来就行了。
这两个流程中的 UserTask 节点我也不做额外的设置,就设置一下每一个 UserTask 应该由谁来处理就可以了。假设第一个节点是组长来处理,第二个节点是经理处理,我们来看如何配置。
选中第一个 UserTask 之后,然后在下方找到分配用户,设置任务分配人:
另外我这里啰嗦一句,每一个组件都需要设置组件的主键 ID(下方的第一个属性),当然也可以不设置,不设置这里会自动生成一个随机字符串,当然随机生成的可读性肯定是不如自己设置的可读性好了。
大家看到有四种不同的用户选项,我这里选择候选组,也就是将来由指定的用户组中的用户来处理这一个任务:
选择完成之后,点击保存按钮:
利用相同的方式,给第二个 UserTask 也设置由经理进行处理。
好了,我们就绘制这样一个简单流程。
绘制完成后,点击左上角的勾进行检查,查看是流程图绘制是否正确,有的时候流程节点之间的连线起点和终点可能并没有放入正确的位置,肉眼不容易看到,点击左上角的勾可以帮我们检查一下。
验证完成没有问题,点击左上角的保存按钮对当前流程图进行保存。
保存完成后,就可以在流程首页看到我们刚刚绘制的流程图了:
点击流程图就可以查看流程图的详情,点击右上角的下载按钮,就可以下载这个流程图对应的 XML 文件了,将 XML 文件拷贝到我们的项目中,就可以开始开发啦。
经过前面的步骤之后,现在我们重新回到主页面,就可以发现除了刚刚一开始默认的四个菜单之外,现在还额外多了一个,就是我们刚刚新建的应用程序:
我们可以直接点击 my_first_app 进入到任务应用程序中,也可以先进入到任务应用程序中,然后选择 my_first_app,都行。我以后者为例和大家演示一下吧:
首先进来之后,默认情况下是没有要执行的任务:
点击到流程中,如下:
默认情况下,也是没有正在执行的流程,我们现在可以点击启动流程按钮,来启动一个新的流程:
点击启动流程按钮之后,左边会展示出来所有的流程实例,我们现在只有一个发布的流程,所以选中该流程,点击右边的启动流程按钮:
启动流程之后,点击显示图,可以查看流程走到哪一步了:
点击活动任务,查看自己需要完成的任务。点击之后发现并没有需要完成的任务:
这是因为当前用户是 admin,而我们流程中第一个 UserTask 应该是由组长来处理的,所以我们现在注销登录,先以 zhangsan 的身份登录,因为 zhangsan 的角色是经理,所以他登录上来应该也是没有任务的:
注意在筛选条件中选择我是其中一个候选人的任务(还是没有):
再以 lisi 的身份登录,lisi 是组长,如下(也记得修改一下筛选条件):
先点击认领按钮,认领该任务,然后点击完成按钮,完成自己的审批:
完成之后,然后点击到流程中,然后点击左上角的显示图,如下:
此时可以看到,流程已经向后走了一步了。
接下来该经理审批了。
我们注销登录,再以 zhangsan 的身份登录,然后重复 lisi 的步骤,就可以完成这个流程了。
最终执行结果如下图:
流程执行完毕。
如果流程中涉及到排他性网关,似乎里无法测试,如果有小伙伴知道这里如何测试带有排他性网关的流程,欢迎留言告知。