一、整合角色人员
在设置审批人和候选人的时候,我们希望能够选取业务数据库中的用户,也是是集成系统中的用户和角色,来帮助我们快速选择审批人,不再需要通过flowable的用户。
1. 加载系统用户
在设置候选用户的时候,能够从数据库中查询用户信息,然后选择,效果如下:
实现:
首先定义查询用户的接口如下:
/**
* 候选用户从系统用户获取
*/
@GetMapping("/getUserList")
public JsonResult getUserList(@RequestParam(value = "filter", required = false) String filter) {
List<UserRepresentation> userList = new ArrayList<>();
// 这里模拟10个用户,实际从数据库中查询用户数据
for (int i = 0; i < 10; i++) {
UserRepresentation userRepresentation = new UserRepresentation();
userRepresentation.setId(UUID.randomUUID().toString());
userRepresentation.setFirstName("yi" + i);
userRepresentation.setLastName("master");
userList.add(userRepresentation);
}
return ResultUtil.success(userList);
}
修改候选人请求接口,找到对应的js文件。
将上述的请求接口修改成自己定义的接口,重启项目之后,就能够加载自己提供的用户信息,选择成为候选用户,设置之后保存,下载流程定义xml可以看到,设置的候选用户实际上是用的我们接口返回的id。
因此,无需做过多的处理,上述就已经实现了,从自己的系统用户中选择候选人。
2. 加载系统角色
有时候我们设置审批人需要按照角色进行设置,将某一个角色上的所有人都设置成为审批人,这个时候就需要设置候选人组,但是默认的候选人组是不支持自己系统的角色信息的,因此我们对其进行改造。
改造方法和上述的流程差不多,一是创建自定义的查询系统角色的接口,而是修改flowable的访问接口地址。
/**
* 候选组
*/
@GetMapping({"/getRoleGroupList"})
public JsonResult getGroups(@RequestParam(value = "filter", required = false) String filter) {
List<GroupRepresentation> representations = new ArrayList<>();
// 这里模拟使用角色为一个候选组,实际可以是角色、岗位等,将其划分成一个候选组
for (int i = 0; i < 10; i++) {
GroupRepresentation representation = new GroupRepresentation();
representation.setId(UUID.randomUUID().toString());
representation.setName("系统管理员角色" + i);
representation.setType("role");
representations.add(representation);
}
return ResultUtil.success(representations);
}
注意:以上只是简单介绍了,如何绘制流程图的时候选择系统中的人员和角色的方法,实际在使用的时候,可能需要加入处理用户到候选人中,以及处理角色下所有的用户到候选人组中,详细的关于候选人和候选人组的设置,可以参考前面的文档。
三、结语
上述的介绍可能比较简单,但大体思路如上,实际的使用还需要参考具体的系统和业务情况而定。
下一节:flowable-内嵌表单 Flowable-内嵌表单-CSDN博客