九游会官网登录入口网页-ag8九游会j9登录入口允许用户自行修改源码或者增加源码来扩展系统服务,也可以包装功能更强的业务服务。本文主要介绍如何在java代码中通过接口从第三方应用系统启动九游会官网登录入口网页-ag8九游会j9登录入口中的业务流程(通过第三方调用启动流程)。
本例使用java语言发送请求,向服务器进行认证后,启动一个新的流程,创建一个工单
完整代码:
demo_startprocess.java package net.o2oa.demos; import java.io.bufferedreader; import java.io.ioexception; import java.io.inputstreamreader; import java.io.printwriter; import java.net.url; import java.net.urlconnection; import java.util.arraylist; import java.util.hashmap; import java.util.list; import java.util.map; import org.apache.commons.codec.binary.stringutils; import org.json.jsonarray; import org.json.jsonobject; import net.o2oa.demos.demo_logintoserver.loginresult; /** * 本例使用java语言发送请求,向服务器进行认证后,启动一个新的流程,创建一个工单 * @author 九游会官网登录入口网页-ag8九游会j9登录入口 * */ public class demo_startprocess { static final string url_login="/x_processplatform_assemble_surface/jaxrs/work/process/"; public static void main( string[] args ) { string applicationserver = "127.0.0.1"; integer applicationport = 20020; string username = "张三"; string password = "o2oa@2022"; string identity ="张三@9659e75d-b3f3-4eb3-bf26-52812d9228ec@i"; string processflag = "bc4b0018-edee-4225-838e-1b2db5c24f25"; string processdata = "{"latest":"false","title":"使用java启动流程示例一","identity":"" identity "","data":"{'name':'这是name参数'}"}"; try { loginresult result = demo_logintoserver.login(applicationserver, applicationport, username, password); if( stringutils.equals( "success", result.gettype() )) { //成功登录 到o2server system.out.println("成功登录到o2server!xtoken=" result.gettoken() ); //启动指定的流程 start( applicationserver, applicationport, processflag, processdata, result.gettoken() ); }else { //登录失败 system.out.println("登录失败!message:" result.getmessage() ); } } catch (exception e) { e.printstacktrace(); } } public static liststart( string applicationserver, integer applicationport, string processflag, string processdata, string xtoken ) throws exception { //将xtoken添加到httpheader里,调用服务一定要添加认证过的token map headmap = getheader( xtoken ); string path = "http://" applicationserver ":" applicationport url_login processflag ; string responsedata = sendpost( path, processdata, headmap); jsonobject jsonobj = new jsonobject( responsedata ); jsonarray dataarray = jsonobj.getjsonarray("data"); list workids = new arraylist<>(); if( dataarray != null && dataarray.length() > 0 ) { for (int i = 0; i < dataarray.length(); i ) { jsonobject data = (jsonobject) dataarray.get(i); string workid = data.getstring("work"); workids.add( workid ); system.out.println("流程启动完成,生成workid=" workid); } } return workids; } public static string sendpost( string url, string param, map headers ) { printwriter out = null; bufferedreader in = null; string result = ""; try { url realurl = new ; urlconnection conn = realurl.openconnection(); headers.entryset().foreach( header->{ conn.setrequestproperty(header.getkey(),header.getvalue()); }); conn.setdooutput(true); conn.setdoinput(true); out = new printwriter(conn.getoutputstream()); out.print(param); out.flush(); in = new bufferedreader( new inputstreamreader(conn.getinputstream())); string line; while ((line = in.readline()) != null) { result = line; } } catch (exception e) { system.out.println(" post" e); e.printstacktrace(); } finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (ioexception ex) { ex.printstacktrace(); } } return result; } public static map getheader( string xtoken ) { map headmap = new hashmap (); headmap.put("x-token", xtoken ); headmap.put("cookie", "x-token=" xtoken ); headmap.put("accept", "*/*"); headmap.put("connection", "keep-alive"); headmap.put("content-type", "application/json; charset=utf-8"); headmap.put("user-agent", "mozilla/4.0 (compatible; msie 6.0; windows nt 5.1;sv1)"); return headmap; } }
返回json格式:
{ "type": "success", "data": [ { "taskcompletedlist": [], "tasklist": [ { "id": "773c19e8-46b8-4fd5-b998-618e9a259958", "job": "8baa58cb-914c-4c30-b32f-d9c23cf1cf7f", "title": "测试----123321", "starttime": "2019-10-19 15:41:48", "starttimemonth": "2019-10", "work": "a3e0d9c6-aa73-4346-8ad9-d929903477d4", "application": "a34ea9d9-cceb-45d4-8e55-d81b932ee438", "applicationname": "测试应用", "applicationalias": "发文管理", "process": "bc4b0018-edee-4225-838e-1b2db5c24f25", "processname": "李义测试", "processalias": "", "serial": "", "person": "张三@0b31209b-cc14-46c6-afcb-d3823d0abfb7@p", "identity": "张三@9659e75d-b3f3-4eb3-bf26-52812d9228ec@i", "unit": "测试部门@b3a3a25b-6a10-45ed-8dc5-b354d7449c59@u", "activity": "5596e264-7bd7-4d51-ad2d-1a0cf152695f", "activityname": "拟稿", "activityalias": "", "activitydescription": "", "activitytype": "manual", "activitytoken": "9d79104c-dfce-4407-8bd1-cb4981787267", "creatorperson": "张三@0b31209b-cc14-46c6-afcb-d3823d0abfb7@p", "creatoridentity": "张三@9659e75d-b3f3-4eb3-bf26-52812d9228ec@i", "creatorunit": "测试部门@b3a3a25b-6a10-45ed-8dc5-b354d7449c59@u", "expired": false, "urged": false, "routelist": [ "cadae125-ff16-41e1-89dd-0e04f43295f0" ], "routenamelist": [ "送核稿" ], "routeopinionlist": [ "" ], "routedecisionopinionlist": [ "" ], "routename": "", "opinion": "", "modified": false, "viewed": false, "first": true, "createtime": "2019-10-19 15:41:48", "updatetime": "2019-10-19 15:41:48" } ], "currenttaskindex": 0, "id": "322e82e0-b5d6-45a9-9cb3-e4c93ea71150", "job": "8baa58cb-914c-4c30-b32f-d9c23cf1cf7f", "work": "a3e0d9c6-aa73-4346-8ad9-d929903477d4", "completed": false, "fromactivity": "5596e264-7bd7-4d51-ad2d-1a0cf152695f", "fromactivitytype": "manual", "fromactivityname": "拟稿", "fromactivityalias": "", "fromactivitytoken": "9d79104c-dfce-4407-8bd1-cb4981787267", "fromtime": "2019-10-19 15:41:48", "application": "a34ea9d9-cceb-45d4-8e55-d81b932ee438", "applicationname": "测试应用", "process": "bc4b0018-edee-4225-838e-1b2db5c24f25", "processname": "李义测试", "connected": false, "splitting": false, "splittokenlist": [], "createtime": "2019-10-19 15:41:48", "updatetime": "2019-10-19 15:41:48" } ], "message": "", "date": "2019-10-19 15:41:48", "spent": 192, "size": 1, "count": 0, "position": 0 }
pom.xml
4.0.0 net.o2oa.demos test_o2oa_java_demo 0.0.1-snapshot jar test_start_process_demo http://maven.apache.org utf-8 org.apache.httpcomponents httpclient 4.5.10 org.apache.httpcomponents httpcore-nio 4.4.12 org.apache.httpcomponents httpcore 4.4.12 org.apache.httpcomponents httpmime 4.5.10 org.apache.commons commons-lang3 3.9 com.google.code.gson gson 2.8.5 org.json json 20190722 junit junit 3.8.1 test
若有收获,就点个赞吧