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);
文档更新时间: 2021-01-31 17:12   作者:hujun