1. 概要
流程配置支持在线编辑脚本,有很多情况需要调用其他系统的微服务,一般情况,我们可以通过定义feign 接口去访问,但是有些情况,客户可能没有源码。另外开发源码也不是一个什么好的办法,因此我们希望有通用的方法去访问微服务。
2. 解决方案
2.1 调用服务脚本
在配置流程时,我们可以选择调用服务脚本。
这里提供了一系列的接口,可以方便我们调用服务。其实我们可以只使用调用自定义服务接口
就够了,其他的调用服务接口是固定死了调用某个微服务。当然如果是调用平台的几个微服务还是推荐使用具体的调用接口。
2.2 调用接口解释
2.2.1 调用自定义服务接口
ApiScript.executeCustomerApi(appName,url,type,params)
参数 | 说明 |
---|---|
appName | 微服务名称 比如 jpaas-user |
url | 微服务接口地址 |
type | HTTP方法 ,这个取决于 微服务的定义 |
params | 这个是一个map 定义,可以传入键值对类型的参数 |
2.2.2 调用流程服务接口
其他的接口,包括流程接口调用,都是指定了具体的微服务名称,关于其他的接口就不再一一介绍。
ApiScript.executeBpmApi(url,type,params)
参数 | 说明 |
---|---|
url | 微服务接口地址 |
type | HTTP方法 ,这个取决于 微服务的定义 |
params | 这个是一个map 定义,可以传入键值对类型的参数 |
2.3 接口返回值处理
使用此接口返回的数据,为复杂数据时,在审批人员脚本编写时需要进行转换。
2.3.1 GET请求返回单个实例
import com.redxun.dto.user.OsUserDto;
Map<String,Object> params=new HashMap<>();
params.put("userId","1");
Object obj = ApiScript.executeUserApi("/user/org/osUser/getByIdGetMap","GET",params);
return SysFunApi.parseObj(obj,OsUserDto.class);
2.3.2 GET请求返回多个对象实例
import com.redxun.dto.bpm.TaskExecutor;
Map<String,Object> params=new HashMap<>();
params.put("userId","1");
Object obj = ApiScript.executeUserApi("/user/org/osUser/getByIdGetListMap","GET",params);
return SysFunApi.parseList(obj,TaskExecutor.class);
2.3.3 POST 请求返回单个对象实例
import com.redxun.dto.user.OsUserDto;
Map<String,Object> params=new HashMap<>();
params.put("userId","1");
Object obj = ApiScript.executeUserApi("/user/org/osUser/getByIdPostMap","POST",params);
return SysFunApi.parseObj(obj,OsUserDto.class);
文档更新时间: 2022-06-22 15:25 作者:hujun