第三方获取待办数
第三方系统需要获取某个用户(传入用户名)的待办数量。
在应用中添加一个服务请求,获取某个人的待办数。这个请求设置为匿名访问,提供给第三方系统调用。
由于调用工作流的 API 需要先登录,查询待办数需要人的 id,所以服务请求分为三部分:
- 登录系统
- 用用户名查询出用户 id
- 查询该用户的待办数
登录系统
登录系统的代码参考《登录平台》中后端 Java 登录里面的代码
- 可以固定一个用户用于登录
- 存储登录后获取到的 user_session
根据用户名查询出用户 id
根据用户名查询出用户 id,代码如下
String url = "/uaa/dbrest/users?select=users.id&users.username=eq."+username;
JSONArray users = ServiceUtil.get(SpringWebUtil.getRequest(),"entry",url,null,JSONArray.class);
if(users.size()>0) {
String userId = users.getJSONObject(0).getString("users.id");
}
查询某个用户的待办数
查询某个用户待办数的 API 如下
get https://域名/wf/biz/task/count
headers
Cookie :第一步获取的 user_session
Content-Type : application/json
body
{
"org": 第二步获取的用户 id,
"filter": "SA_Task.sKindID<>'tkNotice'" //只查询待办任务数
}
执行 get 请求的部分代码如下
String url = ServiceUtil.getServiceUrl("wf") + "/biz/task/count";
Map<String, String> headers = ServiceUtil.getExtHeaders(request);
headers.put("Cookie", user_session);
headers.put("content-type", "application/json");
ServiceUtil.post(url, data, headers, String.class);
返回查询到的待办数