泛微OA工作流WebService接口使用说明.docx
《泛微OA工作流WebService接口使用说明.docx》由会员分享,可在线阅读,更多相关《泛微OA工作流WebService接口使用说明.docx(22页珍藏版)》请在冰豆网上搜索。
泛微OA工作流WebService接口使用说明
工作流WebService接口使用说明
一、检查部署是否成功:
输入下面的地址
192.168.4.183(换成实际的地址):
8060(实际的端口号)/services/,界面中有如下服务即可:
采用WebServerice技术进行协同系统和业务系统进行数据交互,由协同系统方开发实现WebServerice服务,业务系统方需在本地实现WebServerice本地代理来进行调用。
协同系统方需提供的服务接口如下:
1、流程创建接口
2、流程流转控制接口
提供流程提交,退回和转发控制接口
3、需业务系统处理的任务列表
根据用户id和流程id获取该人员需要业务系统处理的任务列表,如果需要获取表单的数据在通过reqestid调用获取表单数据接口
4、获取表单数据接口
根据协同系统中流程主键requestid获取表单中所有数据
5、已归档任务列表
根据创建人id和流程id获取已经归档的任务列表
2.2.2接口说明
接口名称
参数说明
返回值
功能描述
创建新流程:
doCreateWorkflowRequest
WorkflowRequestInfo wri:
请求信息对象
userId:
用户id
String:
新流程的requestid
如果小于0表示失败
-1:
创建流程失败
-2:
用户没有流程创建权限
-3:
创建流程基本信息失败
-4:
保存表单主表信息失败
-5:
更新紧急程度失败
-6:
流程操作者失败
-7:
流转至下一节点失败
-8:
节点附加操作失败
根据请求信息对象创建一条新的流程,请求信息对象中需包含创建人、创建流程id和表单的数据
代办数量:
getToDoWorkflowRequestCount
intuserId:
用户id
String[]conditions:
查询流程的条件,为字符串数组
Int:
代办的数量
返回满足条件的用户可以得到的代办数目
代办列表:
getToDoWorkflowRequestList
intpageNo:
当前页数
intpageSize:
每页的分页数量
intrecordCount:
总行数
intuserId:
用户id
String[]conditions:
查询流程的条件,为字符串数组类型
WorkflowRequestInfo[]:
请求基本信息列表
根据参数条件获取需处理任务列表
排除创建节点任务
归档数目:
getRejectRequestCount
intuserId:
用户id
String[]conditions:
查询流程的条件,为字符串数组
Int:
归档的数量
归档任务:
getProcessedRequest
intpageNo:
当前页数
intpageSize:
每页的分页数量
intrecordCount:
总行数
intuserId:
用户id
String[]conditions:
查询流程的条件,为字符串数组类型
WorkflowRequestInfo[]:
请求基本信息列表
根据参数条件获取归档任务列表
表单数据:
getRequest
intrequestId:
请求requestid
RequestInfo:
请求信息对象
根据流程requestid获得表单数据
流程提交:
submitWorkflowRequest
WorkflowRequestInforequest:
请求信息对象
intrequestid:
请求id
intuserid:
提交人ID
Stringtype:
类型
Stringremark:
提交意见
Boolean:
True成功
False失败
流程提交
流程退回:
nextNodeByReject
intrequestid:
请求id
intuserid:
提交人ID
Stringremark:
退回意见
Boolean:
True成功
False失败
流程退回
流程转发:
forwardWorkflowRequest
intrequestid:
请求id
Stringforwardoperator:
接收人id多个用逗号分隔
Stringremark:
转发意见
StringuserId:
用户用户id
Stringclientip:
客户端ip地址
Boolean:
True成功
False失败
流程转发
搜索所有可用流程数量:
getAllWorkflowRequestCount
Intuserid:
用户id
String[]conditions:
查询条件字符串数组
Int
返回数目
所有可用流程列表
getAllWorkflowRequestList
intpageNo:
当前页数
intpageSize:
每页的分页数量
intrecordCount:
总行数
intuserId:
用户id
String[]conditions:
查询流程的条件,为字符串数组类型
WorkflowRequestInfo[]:
请求基本信息列表
根据参数条件获取可用任务列表
得到所有抄送的流程数量
getCCWorkflowRequestCount
Intuserid:
用户id
String[]conditions:
查询条件字符串数组
Int
返回数目
得到所有抄送流程列表
getCCWorkflowRequestList
intpageNo:
当前页数
intpageSize:
每页的分页数量
intrecordCount:
总行数
intuserId:
用户id
String[]conditions:
查询流程的条件,为字符串数组类型
WorkflowRequestInfo[]:
请求基本信息列表
根据参数条件获得抄送流程列表
得到可创建的工作流数量
getCreateWorkflowCount
Intuserid:
用户id
String[]conditions:
查询条件字符串数组
Int
返回数目
取得可创建的工作流列表
getCreateWorkflowList
intpageNo:
当前页数
intpageSize:
每页的分页数量
intrecordCount:
总行数
intuserId:
用户id
String[]conditions:
查询流程的条件,为字符串数组类型
WorkflowBaseInfo[]:
流程基本信息列表
根据参数条件获得可创建流程列表
取得可创建的工作流类型数量
getCreateWorkflowTypeCount
Intuserid:
用户id
String[]conditions:
查询条件字符串数组
Int
可创建的工作流类型数量
取得可创建的工作流类型列表
getCreateWorkflowTypeList
intpageNo:
当前页数
intpageSize:
每页的分页数量
intrecordCount:
总行数
intuserId:
用户id
String[]conditions:
查询流程的条件,为字符串数组类型
WorkflowBaseInfo[]:
工作流基本信息数组
根据参数条件获得可创建的流程类型列表
取得创建流程的相关信息
getCreateWorkflowRequestInfo
IntworkflowId:
流程id
Intuserid:
用户id
WorkflowRequestInfo:
流程信息对象
取得已办工作流类型数量
getHendledWorkflowRequestCount
Intuserid:
用户id
String[]conditions:
查询条件字符串数组
Int:
可创建流程数量
取得已办流程列表
getHendledWorkflowRequestList
intpageNo:
当前页数
intpageSize:
每页的分页数量
intrecordCount:
总行数
intuserId:
用户id
String[]conditions:
查询流程的条件,为字符串数组类型
WorkflowRequestInfo[]:
请求基本信息列表
根据参数条件获得已办流程列表
取得已办工作流类型数量
getMyWorkflowRequestCount
Intuserid:
用户id
String[]conditions:
查询条件字符串数组
Int:
我的请求流程数量
取得已办流程列表
getMyWorkflowRequestList
intpageNo:
当前页数
intpageSize:
每页的分页数量
intrecordCount:
总行数
intuserId:
用户id
String[]conditions:
查询流程的条件,为字符串数组类型
WorkflowRequestInfo[]:
请求基本信息列表
根据参数条件获得我的请求列表
取得流程new标记
getWorkflowNewFlag
String[]requestIds
多个流程id组成的数组
StringResourceId
人力资源id
String[]:
结果数组,0或者1组成的数组
取得流程详细信息
getWorkflowRequest
Intrequestid
请求id
Intuserid
用户id
Intfromrequestid
从相关id的工作流过来
WorkflowRequestInfo:
流程信息
写入流程查看日志
writeWorkflowReadFlag
Stringrequested
请求id
StringuserId
用户id
无返回值
取得归档工作流类型数量
getProcessedWorkflowRequestCount
Intuserid:
用户id
String[]conditions:
查询条件字符串数组
Int:
归档流程数量
取得归档流程列表
getProcessedWorkflowRequestList
intpageNo:
当前页数
intpageSize:
每页的分页数量
intrecordCount:
总行数
intuserId:
用户id
String[]conditions:
查询流程的条件,为字符串数组类型
WorkflowRequestInfo[]:
请求基本信息列表
根据参数条件获得归档请求列表
接口对象说明:
1)WorkflowRequestInfo工作流请求信息
/**
*请求ID
*/
privateStringrequestId;
/**
*请求标题
*/
privateStringrequestName;
/**
*请求重要级别
*/
privateStringrequestLevel;
/**
*短信提醒
*/
privateStringmessageType;
/**
*流程类型
*/
privateWorkflowBaseInfoworkflowBaseInfo;
/**
*当前节点名称
*/
privateStringcurrentNodeName;
/**
*当前节点Id
*/
privateStringcurrentNodeId;
/**
*流程状态
*/
privateStringstatus;
/**
*创建者
*/
privateStringcreatorId;
/**
*创建时间
*/
privateStringcreateTime;
/**
*最后操作者名称
*/
privateStringlastOperatorName;
/**
*最后操作时间
*/
privateStringlastOperateTime;
/**
*是否可查看
*/
privatebooleancanView;
/**
*是否可编辑
*/
privatebooleancanEdit;
/**
*签字意见是否必填
*/
privatebooleanmustInputRemark;
/**
*主表信息
*/
privateWorkflowMainTableInfoworkflowMainTableInfo;
/**
*明细表信息
*/
privateWorkflowDetailTableInfo[]workflowDetailTableInfos;
/**
*流转日志信息
*/
privateWorkflowRequestLog[]workflowRequestLogs;
/**
*HTML显示模板
*0iPad
*1iPhone
*/
privateString[]WorkflowHtmlTemplete;
/**
*解析后的HTML显示容
*0iPad
*1iPhone
*/
privateString[]WorkflowHtmlShow;
/**
*被代理人
*/
privateStringbeagentid;
/**
*流程短语
*/
privateString[][]workflowPhrases;
2)WorkflowBaseInfo工作流信息
/**
*工作流ID
*/
privateStringworkflowId;
/**
*工作流标题
*/
privateStringworkflowName;
/**
*工作流类型ID
*/
privateStringworkflowTypeId;
/**
*工作流类型名称
*/
privateStringworkflowTypeName;
2.2.3调用实例
根据实际的webservice客户端实现的客户端代码均不相同.以下仅供参考.
1)创建流程
/**
*创建流程,支持多明细,并且带附件字段--目前只支持一个附件,并且是(http格式的)
*throwsException
*/
publicstaticvoidcreateRequest()throwsException{
//主字段
WorkflowRequestTableField[]wrti=newWorkflowRequestTableField[4];//字段信息
wrti[0]=newWorkflowRequestTableField();
wrti[0].setFieldName("mutiresource");//被留言人
wrti[0].setFieldValue("111");//被留言人字段的值,111为被留言人id
wrti[0].setView(true);//字段是否可见
wrti[0].setEdit(true);//字段是否可编辑
wrti[1]=newWorkflowRequestTableField();
wrti[1].setFieldName("remark");//留言容
wrti[1].setFieldValue("test");
wrti[1].setView(true);
wrti[1].setEdit(true);
wrti[2]=newWorkflowRequestTableField();
wrti[2].setFieldName("resource_n");//留言人
wrti[2].setFieldValue("111");
wrti[2].setView(true);
wrti[2].setEdit(true);
wrti[3]=newWorkflowRequestTableField();
wrti[3].setFieldName("fj2");//附件
wrti[3].setFieldType("http:
baidu_sylogo1.gif");//http:
开头代表该字段为附件字段
wrti[3].setFieldValue(".baidu./img/baidu_sylogo1.gif");//附件地址
wrti[3].setView(true);
wrti[3].setEdit(true);
WorkflowRequestTableRecord[]wrtri=newWorkflowRequestTableRecord[1];//主字段只有一行数据
wrtri[0]=newWorkflowRequestTableRecord();
wrtri[0].setWorkflowRequestTableFields(wrti);
WorkflowMainTableInfowmi=newWorkflowMainTableInfo();
wmi.setRequestRecords(wrtri);
//明细字段
WorkflowDetailTableInfowdti[]=newWorkflowDetailTableInfo[2];//两个明细表0明细表1,1明细表2
//明细表1start
wrtri=newWorkflowRequestTableRecord[2];//数据行数,假设添加2行明细数据
//第一行
wrti=newWorkflowRequestTableField[3];//每行3个字段
wrti[0]=newWorkflowRequestTableField();
wrti[0].setFieldName("sl");//数量
wrti[0].setFieldValue("11");
wrti[0].setView(true);
wrti[0].setEdit(true);
wrti[1]=newWorkflowRequestTableField();
wrti[1].setFieldName("dj");//单价
wrti[1].setFieldValue("2");
wrti[1].setView(true);
wrti[1].setEdit(true);
wrti[2]=newWorkflowRequestTableField();
wrti[2].setFieldName("xj");//小记
wrti[2].setFieldValue("22");
wrti[2].setView(true);
wrti[2].setEdit(true);
wrtri[0]=newWorkflowRequestTableRecord();
wrtri[0].setWorkflowRequestTableFields(wrti);
//第二行
wrti=newWorkflowRequestTableField[3];//每行3个字段
wrti[0]=newWorkflowRequestTableField();
wrti[0].setFieldName("sl");//数量
wrti[0].setFieldValue("110");
wrti[0].setView(true);
wrti[0].setEdit(true);
wrti[1]=newWorkflowRequestTableField();
wrti[1].setFieldName("dj");//单价
wrti[1].setFieldValue("2");
wrti[1].setView(true);
wrti[1].setEdit(true);
wrti[2]=newWorkflowRequestTableField();
wrti[2].setFieldName("xj");//小记
wrti[2].setFieldValue("220");
wrti[2].setView(true);
wrti[2].setEdit(true);
wrtri[1]=newWorkflowRequestTableRecord();
wrtri[1].setWorkflowRequestTableFields(wrti);
wdti[0]=newWorkflowDetailTableInfo();
wdti[0].setWorkflowRequestTableRecords(wrtri);//加入明细表1的数据
//明细表1end
//明细表2start
wrtri=newWorkflowRequestTableRecord[1];//数据行数,假设添加1行明细数据
//第一行
wrti=newWorkflowRequestTableField[3];//每行3个字段
wrti[0]=newWorkflowRequestTableField();
wrti[0].setFieldName("cl3");//
wrti[0].setFieldValue("11");
wrti[0].setView(true);
wrti[0].setEdit(true);
wrti[1]=newWorkflowRequestTableField();
wrti[1].setFieldName("cl1111");//
wrti[1].setFieldValue("2");
wrti[1].setView(true);
wrti[1].setEdit(true);
wrtri[0]=newWorkflowRequestTableRecord();
wrtri[0].setWorkflowRequestTableFields(wrti);