关键词:流程启动,服务集成,系统集成,获取流程数据,服务包装

O2OA允许用户自行修改源码或者增加源码来扩展系统服务,也可以包装功能更强的业务服务。本文主要介绍如何在Java代码中通过接口获取流程的业务数据


第一步:单点登入

一、创建SSO配置,请参考组织管理里中的SSO管理

二、通过下面代码获取token

接口:http://127.0.0.1:20020/x_organization_assemble_authentication/jaxrs/sso

String token = ""; 

//单点登入
String path = "http://127.0.0.1:20020/x_organization_assemble_authentication/jaxrs/sso"; 
long time = new Date().getTime(); 
String login_uid = "test"; 
String sso_key = "12345678"; 
String xtoken = null;

try { xtoken = Crypto.encrypt( login_uid + "#" + time, sso_key ); 
     System.out.println(xtoken); } 
catch (Exception e1) { 
    e1.printStackTrace(); 
}

String string = "{\"token\": "+xtoken+", \"client\": \"unicom\"}";
String  str =  HttpClientUtils.getInstance().sendPost(path,string);
try {
    JSONObject jsonObj = (JSONObject)(new JSONParser().parse(str));
    // System.out.println(jsonObj.toJSONString() + "\n" + jsonObj.getClass());
    JSONObject data = (JSONObject) jsonObj.get("data");
    System.out.println(data.get("token"));
    token = (String) data.get("token");
} catch (ParseException e) {
    e.printStackTrace();
}


第二步:获取待办列表

//获取待办数
http://127.0.0.1:20020/x_processplatform_assemble_surface/jaxrs/work/count/%E6%88%91@9938@P;

//其中:%E6%88%91@9938@P 为参数名

//获取待办列表
http://127.0.0.1:20020/x_processplatform_assemble_surface/jaxrs/task/list/(0)/next/"+count

//参数:
//(0) 为开始参数名
//count为几条参数名


Map headMap = new HashMap();
headMap.put("x-token", token); 
headMap.put("accept", "/"); 
headMap.put("connection", "Keep-Alive"); 
headMap.put("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

//获取待办数
String count = "0";
String url =  "http://127.0.0.1:20020/x_processplatform_assemble_surface/jaxrs/work/count/%E6%88%91@9938@P";
HttpClientUtils2 httpClientUtils = new HttpClientUtils2();
str = httpClientUtils.httpGet(url,headMap);
try {
    JSONObject jsonObj = (JSONObject)(new JSONParser().parse(str));
    JSONObject data = (JSONObject) jsonObj.get("data");
    count = data.get("task").toString();
    System.out.println("count=" + count);
} catch (ParseException e) {
    e.printStackTrace();
}


//获取待办列表
url = "http://127.0.0.1:20020/x_processplatform_assemble_surface/jaxrs/task/list/(0)/next/"+count;
str = httpClientUtils.httpGet(url,headMap);

try {
    JSONObject jsonObj = (JSONObject)(new JSONParser().parse(str));
    JSONArray datas = (JSONArray) jsonObj.get("data");
    for(int i =0;i<datas.size();i++) {
        JSONObject data=(JSONObject)datas.get(i);
        String workid = (String) data.get("work");
        System.out.println(workid);
    }
} catch (ParseException e) {
    e.printStackTrace();
}



第三步:获取表单数据

http://127.0.0.1:20020/x_processplatform_assemble_surface/jaxrs/work/workorworkcompleted/3085d704-bc2b-444b-9e00-114b96f7fe4e";

//其中:3085d704-bc2b-444b-9e00-114b96f7fe4e 为work id 参数名

 //获取表单数据
url = "http://127.0.0.1:20020/x_processplatform_assemble_surface/jaxrs/work/workorworkcompleted/3085d704-bc2b-444b-9e00-114b96f7fe4e";
str =  httpClientUtils.httpGet(url,headMap);
try {
    JSONObject jsonObj = (JSONObject)(new JSONParser().parse(str));
    JSONObject data = (JSONObject) jsonObj.get("data");
    data = (JSONObject) data.get("data");
    String explain = (String) data.get("explain");
    System.out.println(explain);
} catch (ParseException e) {
    e.printStackTrace();
}



四:下载附件

http://127.0.0.1:20020/x_processplatform_assemble_surface/jaxrs/attachment/download/9e46ea49-ec79-4161-ad6c-23e0ccbc6c59/work/3085d704-bc2b-444b-9e00-114b96f7fe4e

//其中:
//9e46ea49-ec79-4161-ad6c-23e0ccbc6c59 为附件id参数名
//3085d704-bc2b-444b-9e00-114b96f7fe4e 为work id 参数名


//下载附件       
  url = "http://127.0.0.1:20020/x_processplatform_assemble_surface/jaxrs/attachment/download/9e46ea49-ec79-4161-ad6c-23e0ccbc6c59/work/3085d704-bc2b-444b-9e00-114b96f7fe4e";
  String filePath = "d:\\5831241667.pdf";
  httpClientUtils.download(
      url, 
      filePath, 
      new HttpClientUtils2.HttpClientDownLoadProgress() {
          public void onProgress(int progress) {
              //System.out.println("download progress = " + progress);
          }
      }, 
      headMap
  );


五:获取流程记录

http://127.0.0.1:20020/x_processplatform_assemble_surface/jaxrs/worklog/list/workorworkcompleted/3085d704-bc2b-444b-9e00-114b96f7fe4e;

//其中:3085d704-bc2b-444b-9e00-114b96f7fe4e 为work id 参数名

url = "http://127.0.0.1:20020/x_processplatform_assemble_surface/jaxrs/worklog/list/workorworkcompleted/3085d704-bc2b-444b-9e00-114b96f7fe4e";
str = httpClientUtils.httpGet(url,headMap);
try {
    JSONObject jsonObj = (JSONObject)(new JSONParser().parse(str));
    JSONArray datas = (JSONArray) jsonObj.get("data");
    for(int i =0;i<datas.size();i++) {
        JSONObject data=(JSONObject)datas.get(i);
        String fromActivityName = (String) data.get("fromActivityName");
        System.out.println("fromActivityName="+fromActivityName);
    }
} catch (ParseException e) {
    e.printStackTrace();
}


推荐文章:

服务API-服务端OpenAPI接口查询方法
2021-03-02
O2OA使用前后端分离的模式进行系统设计,并且也开放了全部的后端API供开发者使用,开发者可以根据各类API组织出符合实际业务需求的新服务或者新业务。本文主要介
权限管理-平台组织人员权限管理
2021-02-25
O2OA开发平台组织架构管理组件不局限于传统的组织,群组,角色,人员的关系,在减小授权管理的复杂性基础上,通过独特的职位管理,汇报关系管理思想,增强了架构管理的
移动办公-移动端应用权限配置
2021-02-25
O2OA平台拥有配套的原生开发的安卓和IOS移动APP,开发者在拥有公网IP或者域名的服务器上可以轻松体验移动办公环境,并且不会产生任何费用。本篇主要介绍如何配
通用版企业信息化协同平台演示环境
2021-09-22
概述通用版信息化协同平台适用于各企事业单位等。用户可以一目了然的看到工作中的待办事宜、通知公告等信息,也可以按用户的需要设置各类功能,包括:信息发布、文件管理、
流程设计-拆分流程样例
2021-03-01
在复杂的流程设计中通常需要使用到拆分功能,比如公文管理流程中的各部门办理。本文主要介绍如何在O2OA平台中设计流程时使用流程拆分功能。
密码管理-普通用户初始化密码设置
2021-02-25
O2OA可以配置新用户初始化密码的规则。本篇主要介绍如何配置新用户初始化密码的规则。
页面-平台应用配置
2022-02-21
简介V7.0版本中,O2OA平台的门户页面中新增了组件-平台应用。该组件允许设计人员在门户的页面嵌入平台的应用。设计界面用户界面组件脚本API手写板的脚本API
开发知识-Vue篇:在O2门户页面中使用Vue
2021-02-07
  在O2OA门户页面中使用Vue非常容易,本章我们介绍两个实例,来展示如何在门户页面中使用Vue。版本要求本文适用于如下版本:O2OA版本要求:5.1及以上版
平台服务器下载及安装部署-Windows系统
2021-05-25
@平台部署@O2OA@开源办公系统@windows@系统安装 @服务器设置@端口配置O2OA信息化系统开发支持公有云,私有云和混合云部署,也支持复杂的网络结构下
服务管理-开发接口服务
2021-03-01
O2OA提供的服务管理中心可以让用户使用Javascript语言自由编写脚本的处理逻辑来实现与第三方的数据交互,数据同步以及系统内的数据处理等工作,也可以编写系

results matching ""

    No results matching ""