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

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"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"fromActivityName");
        System.out.println("fromActivityName="+fromActivityName);
    }
} catch (ParseException e) {
    e.printStackTrace();
}

推荐文章:

快速入门-流程表单载入基础数据
2021-02-07
表单载入数据以联系电话为例:联系电话字段默认值写脚本:returnthis.session.user.mobile(脚本详解在下方)即可人员基础信息当前用户信息
系统配置-服务器端口冲突和端口修改
2021-02-25
在安装O2OA的服务器上很可能已经启用了IIS、apache或者nginx等服务器,已经有其他的应用或者web站点正在运行中,所以O2OA启动所需要的80端口已
常见问题-如何使用脚本控制流程自动流转
2021-03-24
   vardata2={};data2["routeName"]=“送******”;data2["opinion"]="同意(超时)";vartaskid=
开发知识-神通数据库安装
2021-02-07
一、安装配置界面上:勾选择“兼容Oracle模式”,库字符集“UTF8”,页大小"32K"成功创建神通数据库实例后,系统通常为该实例默认创建三个用户:SYSDB
源码编译-Android客户端编译打包处理
2021-03-15
O2OA是真正全代码开源的应用开发平台,开发者可以直接使用从github或者gitee上clone的源码编译成安卓客户端,代码可以修改,安全可靠,无限制。本文主
业务开发-组织架构-人员信息创建
2021-02-26
O2OA提供多级组织架构设置能力,用户可以在系统内设置集团、分公司、部门、小组等多级企业组织结构来满足办公需要。本文主要介绍如何在O2OA中添加人员信息。
流程设计-Excel数据导入数据网格(仅支持IE)
2021-02-26
O2OA提供数据网格组件来简体表单中的可编辑表格或者数据展现表格的设计,如费用报销,差旅报销等业务都可能使用到数据网格。本文主要介绍如何将Excel中的数据导入
开发知识-平台中使用Druid数据库连接及监控
2021-02-07
一、o2oa数据库连接及使用原理o2oa使用阿里的druid与数据库进行连接及管控,在平台启动时druid管控了一个共享数据库连接池,默认的最大连接数是50(如
服务集成-表单界面上自定义弹出选择器功能
2021-03-15
O2OA允许用户对表单进行自由的功能定制,可以增加自定义的组件和插件。本文介绍如果在表单界面上自定义弹出选择器的功能。
企业办公首页使用说明
2021-02-19
O2OA企业办公首页的导航栏中,有直观清爽的界面、功能丰富的应用。根据企业办公需求随心使用,包含流程管理、会议管理、组织管理、日程管理等等。

results matching ""

    No results matching ""