申請免費試用、咨詢電話:400-8352-114
第十一部分 泛普OA工作流程webservices接口
一. 泛普OA免費版接口說明
可以通過該接口對系統(tǒng)中的流程進行操作。具體方法見下面的使用說明。
二. 使用說明
一、泛普OA破解版檢查部署是否成功:輸入下面的地址
http://192.168.4.183(換成實際的地址):8060(實際的端口號)/services/,界面中有如下服務(wù)即可:
采用Web Serverice技術(shù)進行協(xié)同系統(tǒng)和業(yè)務(wù)系統(tǒng)進行數(shù)據(jù)交互,由協(xié)同系統(tǒng)方開發(fā)實現(xiàn)Web Serverice服務(wù),業(yè)務(wù)系統(tǒng)方需在本地實現(xiàn)Web Serverice本地代理來進行調(diào)用。
協(xié)同系統(tǒng)方需提供的服務(wù)接口如下:
1、 流程創(chuàng)建接口
2、 流程流轉(zhuǎn)控制接口
提供流程提交,退回和轉(zhuǎn)發(fā)控制接口
3、 需業(yè)務(wù)系統(tǒng)處理的任務(wù)列表
根據(jù)用戶id和流程id獲取該人員需要業(yè)務(wù)系統(tǒng)處理的任務(wù)列表,如果需要獲取表單的數(shù)據(jù)在通過reqestid調(diào)用獲取表單數(shù)據(jù)接口
4、 獲取表單數(shù)據(jù)接口
根據(jù)協(xié)同系統(tǒng)中流程主鍵requestid獲取表單中所有數(shù)據(jù)
5、 已歸檔任務(wù)列表
根據(jù)創(chuàng)建人id和流程id獲取已經(jīng)歸檔的任務(wù)列表
2.2.2接口說明
接口名稱 參數(shù)說明 返回值 功能描述
創(chuàng)建新流程:
doCreateWorkflowRequest
WorkflowRequestInfo wri:
請求信息對象
userId:
用戶id String:新流程的requestid
如果小于0表示失敗
-1:創(chuàng)建流程失敗
-2:用戶沒有流程創(chuàng)建權(quán)限
-3:創(chuàng)建流程基本信息失敗
-4:保存表單主表信息失敗
-5:更新緊急程度失敗
-6:流程操作者失敗
-7:流轉(zhuǎn)至下一節(jié)點失敗
-8:節(jié)點附加操作失敗
根據(jù)請求信息對象創(chuàng)建一條新的流程,請求信息對象中需包含創(chuàng)建人、創(chuàng)建流程id和表單的數(shù)據(jù)
代辦數(shù)量:
getToDoWorkflowRequestCount int userId:
用戶id
String[] conditions:
查詢流程的條件,為字符串?dāng)?shù)組 Int:代辦的數(shù)量 返回滿足條件的用戶可以得到的代辦數(shù)目
代辦列表:
getToDoWorkflowRequestList int pageNo:
當(dāng)前頁數(shù)
int pageSize:
每頁的分頁數(shù)量
int recordCount:
總行數(shù)
int userId:
用戶id
String[] conditions:
查詢流程的條件,為字符串?dāng)?shù)組類型 WorkflowRequestInfo []:請求基本信息列表 根據(jù)參數(shù)條件獲取需處理任務(wù)列表
排除創(chuàng)建節(jié)點任務(wù)
歸檔數(shù)目:
getRejectRequestCount int userId:
用戶id
String[] conditions:
查詢流程的條件,為字符串?dāng)?shù)組 Int:歸檔的數(shù)量
歸檔任務(wù):
getProcessedRequest int pageNo:
當(dāng)前頁數(shù)
int pageSize:
每頁的分頁數(shù)量
int recordCount:
總行數(shù)
int userId:
用戶id
String[] conditions:
查詢流程的條件,為字符串?dāng)?shù)組類型 WorkflowRequestInfo []:請求基本信息列表 根據(jù)參數(shù)條件獲取歸檔任務(wù)列表
表單數(shù)據(jù):
getRequest int requestId:
請求requestid RequestInfo:
請求信息對象 根據(jù)流程requestid獲得表單數(shù)據(jù)
流程提交:
submitWorkflowRequest WorkflowRequestInfo request:
請求信息對象
int requestid:
請求id
int userid:
提交人ID
String type:
類型
String remark:
提交意見 Boolean:
True 成功
False 失敗 流程提交
流程退回:
nextNodeByReject int requestid:
請求id
int userid:
提交人ID
String remark:
退回意見 Boolean:
True 成功
False 失敗 流程退回
流程轉(zhuǎn)發(fā):
forwardWorkflowRequest int requestid:
請求id
String forwardoperator:
接收人id 多個用逗號分隔
String remark:
轉(zhuǎn)發(fā)意見
String userId:
用戶用戶id
String clientip:
客戶端ip地址 Boolean:
True 成功
False 失敗 流程轉(zhuǎn)發(fā)
搜索所有可用流程數(shù)量:
getAllWorkflowRequestCount Int userid:
用戶id
String[] conditions:
查詢條件字符串?dāng)?shù)組 Int
返回數(shù)目
所有可用流程列表
getAllWorkflowRequestList int pageNo:
當(dāng)前頁數(shù)
int pageSize:
每頁的分頁數(shù)量
int recordCount:
總行數(shù)
int userId:
用戶id
String[] conditions:
查詢流程的條件,為字符串?dāng)?shù)組類型 WorkflowRequestInfo []:請求基本信息列表 根據(jù)參數(shù)條件獲取可用任務(wù)列表
得到所有抄送的流程數(shù)量
getCCWorkflowRequestCount Int userid:
用戶id
String[] conditions:
查詢條件字符串?dāng)?shù)組 Int
返回數(shù)目
得到所有抄送流程列表
getCCWorkflowRequestList int pageNo:
當(dāng)前頁數(shù)
int pageSize:
每頁的分頁數(shù)量
int recordCount:
總行數(shù)
int userId:
用戶id
String[] conditions:
查詢流程的條件,為字符串?dāng)?shù)組類型 WorkflowRequestInfo []:請求基本信息列表 根據(jù)參數(shù)條件獲得抄送流程列表
得到可創(chuàng)建的工作流數(shù)量
getCreateWorkflowCount Int userid:
用戶id
String[] conditions:
查詢條件字符串?dāng)?shù)組 Int
返回數(shù)目
取得可創(chuàng)建的工作流列表
getCreateWorkflowList int pageNo:
當(dāng)前頁數(shù)
int pageSize:
每頁的分頁數(shù)量
int recordCount:
總行數(shù)
int userId:
用戶id
String[] conditions:
查詢流程的條件,為字符串?dāng)?shù)組類型 WorkflowBaseInfo []:流程基本信息列表 根據(jù)參數(shù)條件獲得可創(chuàng)建流程列表
取得可創(chuàng)建的工作流類型數(shù)量
getCreateWorkflowTypeCount Int userid:
用戶id
String[] conditions:
查詢條件字符串?dāng)?shù)組 Int
可創(chuàng)建的工作流類型數(shù)量
取得可創(chuàng)建的工作流類型列表
getCreateWorkflowTypeList int pageNo:
當(dāng)前頁數(shù)
int pageSize:
每頁的分頁數(shù)量
int recordCount:
總行數(shù)
int userId:
用戶id
String[] conditions:
查詢流程的條件,為字符串?dāng)?shù)組類型 WorkflowBaseInfo[]:
工作流基本信息數(shù)組 根據(jù)參數(shù)條件獲得可創(chuàng)建的流程類型列表
取得創(chuàng)建流程的相關(guān)信息
getCreateWorkflowRequestInfo Int workflowId:
流程id
Int userid:
用戶id WorkflowRequestInfo:
流程信息對象
取得已辦工作流類型數(shù)量
getHendledWorkflowRequestCount Int userid:
用戶id
String[] conditions:
查詢條件字符串?dāng)?shù)組 Int:
可創(chuàng)建流程數(shù)量
取得已辦流程列表
getHendledWorkflowRequestList int pageNo:
當(dāng)前頁數(shù)
int pageSize:
每頁的分頁數(shù)量
int recordCount:
總行數(shù)
int userId:
用戶id
String[] conditions:
查詢流程的條件,為字符串?dāng)?shù)組類型 WorkflowRequestInfo []:請求基本信息列表 根據(jù)參數(shù)條件獲得已辦流程列表
取得已辦工作流類型數(shù)量
getMyWorkflowRequestCount Int userid:
用戶id
String[] conditions:
查詢條件字符串?dāng)?shù)組 Int:
我的請求流程數(shù)量
取得已辦流程列表
getMyWorkflowRequestList int pageNo:
當(dāng)前頁數(shù)
int pageSize:
每頁的分頁數(shù)量
int recordCount:
總行數(shù)
int userId:
用戶id
String[] conditions:
查詢流程的條件,為字符串?dāng)?shù)組類型 WorkflowRequestInfo []:請求基本信息列表 根據(jù)參數(shù)條件獲得我的請求列表
取得流程new標(biāo)記
getWorkflowNewFlag String[] requestIds
多個流程id組成的數(shù)組
String ResourceId
人力資源id String[]:
結(jié)果數(shù)組,0或者1組成的數(shù)組
取得流程詳細(xì)信息
getWorkflowRequest Int requestid
請求id
Int userid
用戶id
Int fromrequestid
從相關(guān)id的工作流過來 WorkflowRequestInfo:流程信息
寫入流程查看日志
writeWorkflowReadFlag String requested
請求id
String userId
用戶id 無返回值
取得歸檔工作流類型數(shù)量
getProcessedWorkflowRequestCount Int userid:
用戶id
String[] conditions:
查詢條件字符串?dāng)?shù)組 Int:
歸檔流程數(shù)量
取得歸檔流程列表
getProcessedWorkflowRequestList int pageNo:
當(dāng)前頁數(shù)
int pageSize:
每頁的分頁數(shù)量
int recordCount:
總行數(shù)
int userId:
用戶id
String[] conditions:
查詢流程的條件,為字符串?dāng)?shù)組類型 WorkflowRequestInfo []:請求基本信息列表 根據(jù)參數(shù)條件獲得歸檔請求列表
接口對象說明:
1)WorkflowRequestInfo 工作流請求信息
/**
* 請求ID
*/
private String requestId;
/**
* 請求標(biāo)題
*/
private String requestName;
/**
* 請求重要級別
*/
private String requestLevel;
/**
* 短信提醒
*/
private String messageType;
/**
* 流程類型
*/
private WorkflowBaseInfo workflowBaseInfo;
/**
* 當(dāng)前節(jié)點名稱
*/
private String currentNodeName;
/**
* 當(dāng)前節(jié)點Id
*/
private String currentNodeId;
/**
* 流程狀態(tài)
*/
private String status;
/**
* 創(chuàng)建者
*/
private String creatorId;
/**
* 創(chuàng)建時間
*/
private String createTime;
/**
* 最后操作者名稱
*/
private String lastOperatorName;
/**
* 最后操作時間
*/
private String lastOperateTime;
/**
* 是否可查看
*/
private boolean canView;
/**
* 是否可編輯
*/
private boolean canEdit;
/**
* 簽字意見是否必填
*/
private boolean mustInputRemark;
/**
* 主表信息
*/
private WorkflowMainTableInfo workflowMainTableInfo;
/**
* 明細(xì)表信息
*/
private WorkflowDetailTableInfo[] workflowDetailTableInfos;
/**
* 流轉(zhuǎn)日志信息
*/
private WorkflowRequestLog[] workflowRequestLogs;
/**
* HTML顯示模板
* 0 iPad
* 1 iPhone
*/
private String[] WorkflowHtmlTemplete;
/**
* 解析后的HTML顯示內(nèi)容
* 0 iPad
* 1 iPhone
*/
private String[] WorkflowHtmlShow;
/**
* 被代理人
*/
private String beagentid;
/**
* 流程短語
*/
private String[][] workflowPhrases;
2)WorkflowBaseInfo 工作流信息
/**
* 工作流ID
*/
private String workflowId;
/**
* 工作流標(biāo)題
*/
private String workflowName;
/**
* 工作流類型ID
*/
private String workflowTypeId;
/**
* 工作流類型名稱
*/
private String workflowTypeName;
2.2.3調(diào)用實例
根據(jù)實際的webservice客戶端實現(xiàn)的客戶端代碼均不相同.以下僅供參考.
/**
*創(chuàng)建流程,支持多明細(xì),并且?guī)Ц郊侄?-目前只支持一個附件,并且是(http格式的)
* @throws Exception
*/
public static void createRequest() throws Exception {
//主字段
WorkflowRequestTableField[] wrti = new WorkflowRequestTableField[4]; //字段信息
wrti[0] = new WorkflowRequestTableField();
wrti[0].setFieldName("mutiresource");//被留言人
wrti[0].setFieldValue("111");//被留言人字段的值,111為被留言人id
wrti[0].setView(true);//字段是否可見
wrti[0].setEdit(true);//字段是否可編輯
wrti[1] = new WorkflowRequestTableField();
wrti[1].setFieldName("remark");//留言內(nèi)容
wrti[1].setFieldValue("test");
wrti[1].setView(true);
wrti[1].setEdit(true);
wrti[2] = new WorkflowRequestTableField();
wrti[2].setFieldName("resource_n");//留言人
wrti[2].setFieldValue("111");
wrti[2].setView(true);
wrti[2].setEdit(true);
wrti[3] = new WorkflowRequestTableField();
wrti[3].setFieldName("fj2");//附件
wrti[3].setFieldType("http:baidu_sylogo1.gif");//http:開頭代表該字段為附件字段
wrti[3].setFieldValue("http://www.baidu.com/img/baidu_sylogo1.gif");//附件地址
wrti[3].setView(true);
wrti[3].setEdit(true);
WorkflowRequestTableRecord[] wrtri = new WorkflowRequestTableRecord[1];//主字段只有一行數(shù)據(jù)
wrtri[0] = new WorkflowRequestTableRecord();
wrtri[0].setWorkflowRequestTableFields(wrti);
WorkflowMainTableInfo wmi = new WorkflowMainTableInfo();
wmi.setRequestRecords(wrtri);
//明細(xì)字段
WorkflowDetailTableInfo wdti[] = new WorkflowDetailTableInfo[2];//兩個明細(xì)表0明細(xì)表1,1明細(xì)表2
//明細(xì)表1 start
wrtri = new WorkflowRequestTableRecord[2];//數(shù)據(jù) 行數(shù),假設(shè)添加2行明細(xì)數(shù)據(jù)
//第一行
wrti = new WorkflowRequestTableField[3]; //每行3個字段
wrti[0] = new WorkflowRequestTableField();
wrti[0].setFieldName("sl");//數(shù)量
wrti[0].setFieldValue("11");
wrti[0].setView(true);
wrti[0].setEdit(true);
wrti[1] = new WorkflowRequestTableField();
wrti[1].setFieldName("dj");//單價
wrti[1].setFieldValue("2");
wrti[1].setView(true);
wrti[1].setEdit(true);
wrti[2] = new WorkflowRequestTableField();
wrti[2].setFieldName("xj");//小記
wrti[2].setFieldValue("22");
wrti[2].setView(true);
wrti[2].setEdit(true);
wrtri[0] = new WorkflowRequestTableRecord();
wrtri[0].setWorkflowRequestTableFields(wrti);
//第二行
wrti = new WorkflowRequestTableField[3]; //每行3個字段
wrti[0] = new WorkflowRequestTableField();
wrti[0].setFieldName("sl");//數(shù)量
wrti[0].setFieldValue("110");
wrti[0].setView(true);
wrti[0].setEdit(true);
wrti[1] = new WorkflowRequestTableField();
wrti[1].setFieldName("dj");//單價
wrti[1].setFieldValue("2");
wrti[1].setView(true);
wrti[1].setEdit(true);
wrti[2] = new WorkflowRequestTableField();
wrti[2].setFieldName("xj");//小記
wrti[2].setFieldValue("220");
wrti[2].setView(true);
wrti[2].setEdit(true);
wrtri[1] = new WorkflowRequestTableRecord();
wrtri[1].setWorkflowRequestTableFields(wrti);
wdti[0] = new WorkflowDetailTableInfo();
wdti[0].setWorkflowRequestTableRecords(wrtri);//加入明細(xì)表1的數(shù)據(jù)
//明細(xì)表1 end
//明細(xì)表2 start
wrtri = new WorkflowRequestTableRecord[1];//數(shù)據(jù)行數(shù),假設(shè)添加1行明細(xì)數(shù)據(jù)
//第一行
wrti = new WorkflowRequestTableField[3]; //每行3個字段
wrti[0] = new WorkflowRequestTableField();
wrti[0].setFieldName("cl3");//
wrti[0].setFieldValue("11");
wrti[0].setView(true);
wrti[0].setEdit(true);
wrti[1] = new WorkflowRequestTableField();
wrti[1].setFieldName("cl1111");//
wrti[1].setFieldValue("2");
wrti[1].setView(true);
wrti[1].setEdit(true);
wrtri[0] = new WorkflowRequestTableRecord();
wrtri[0].setWorkflowRequestTableFields(wrti);
wdti[1] = new WorkflowDetailTableInfo();
wdti[1].setWorkflowRequestTableRecords(wrtri);//加入明細(xì)表2的數(shù)據(jù)
//明細(xì)表2 end
WorkflowBaseInfo wbi = new WorkflowBaseInfo();
wbi.setWorkflowId("5");//workflowid 5 代表內(nèi)部留言
WorkflowRequestInfo wri = new WorkflowRequestInfo();//流程基本信息
wri.setCreatorId("111");//創(chuàng)建人id
wri.setRequestLevel("2");//0 正常,1重要,2緊急
wri.setRequestName("留言測試接口");//流程標(biāo)題
wri.setWorkflowMainTableInfo(wmi);//添加主字段數(shù)據(jù)
wri.setWorkflowBaseInfo(wbi);
wri.setWorkflowDetailTableInfos(wdti);
//執(zhí)行創(chuàng)建流程接口
WorkflowServicePortTypeProxy WorkflowServicePortTypeProxy = new WorkflowServicePortTypeProxy();
String requestid = WorkflowServicePortTypeProxy.doCreateWorkflowRequest(wri, 111);
System.out.println("requestid:"+requestid);
}
2) 泛普OA平臺獲取代辦列表數(shù)量
/**
* 獲得代辦事宜數(shù)量
* @throws RemoteException
*/
public static void getDaiBanShuLiang() throws RemoteException{
WorkflowServicePortTypeProxy WorkflowServicePortTypeProxy = new WorkflowServicePortTypeProxy();
int count = WorkflowServicePortTypeProxy.getToDoWorkflowRequestCount(111, null);
System.out.println("代辦事宜數(shù)量:"+count);//獲取待辦事宜接口
//帶查詢條件查詢,只能寫關(guān)于這2個表的查詢條件 workflow_requestbase t1,workflow_currentoperator t2
//查詢條件里面不需要寫and
String conditions[] = new String[2];
conditions[0] = " t1.currentnodetype = 2 ";//狀態(tài)為審批
conditions[1] = " t1.creater = 111 ";//創(chuàng)建人為111
count = WorkflowServicePortTypeProxy.getToDoWorkflowRequestCount(111, conditions);
System.out.println("代辦事宜數(shù)量:"+count);//獲取待辦事宜接口
}
/**
* 獲得代辦列表
*/
public static void getDaiBanLieBiao() throws Exception{
WorkflowServicePortTypeProxy WorkflowServicePortTypeProxy = new WorkflowServicePortTypeProxy();
WorkflowRequestInfo WorkflowRequestInfo[] = WorkflowServicePortTypeProxy.getToDoWorkflowRequestList(1, 15, 100, 111, null);//獲取待辦事宜接口
System.out.println("代辦事宜列表數(shù)量:"+WorkflowRequestInfo.length);
for(int i=0;i<WorkflowRequestInfo.length;i++){
WorkflowRequestInfo wri = WorkflowRequestInfo[i];
System.out.println(wri.getCreatorId()+" "+wri.getCreatorName()+" "+wri.getRequestName()+" "+wri.getCreateTime());
}
}