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