工作流WebService接口使用说明
一、检查部署是否成功:输入下面的地址
http://192.168.4.183(换成实际的地址):8060(实际的端口号)/services/,界面中有如下服务即可:
采用Web Serverice技术进行协同系统和业务系统进行数据交互,由协同系统方开发实现Web Serverice服务,业务系统方需在本地实现Web Serverice本地代理来进行调用。
协同系统方需提供的服务接口如下:
- 流程创建接口
- 流程流转控制接口
提供流程提交,退回和转发控制接口
- 需业务系统处理的任务列表
根据用户id和流程id获取该人员需要业务系统处理的任务列表,如果需要获取表单的数据在通过reqestid调用获取表单数据接口
- 获取表单数据接口
根据协同系统中流程主键requestid获取表单中所有数据
- 已归档任务列表
根据创建人id和流程id获取已经归档的任务列表
2.2.2接口说明
接口名称 | 参数说明 | 返回值 | 功能描述 |
创建新流程: | WorkflowRequestInfo wri:
请求信息对象 userId: 用户id |
String:新流程的requestid
如果小于0表示失败 -1:创建流程失败 -2:用户没有流程创建权限 -3:创建流程基本信息失败 -4:保存表单主表信息失败 -5:更新紧急程度失败 -6:流程操作者失败 -7:流转至下一节点失败 -8:节点附加操作失败 |
根据请求信息对象创建一条新的流程,请求信息对象中需包含创建人、创建流程id和表单的数据 |
代办数量:
getToDoWorkflowRequestCount |
int userId:
用户id String[] conditions: 查询流程的条件,为字符串数组 |
Int:代办的数量 | 返回满足条件的用户可以得到的代办数目 |
代办列表:
getToDoWorkflowRequestList |
int pageNo:
当前页数 int pageSize: 每页的分页数量 总行数 int userId: 用户id String[] conditions: 查询流程的条件,为字符串数组类型 |
WorkflowRequestInfo []:请求基本信息列表 | 根据参数条件获取需处理任务列表
排除创建节点任务 |
归档数目:
getRejectRequestCount |
int userId:
用户id String[] conditions: 查询流程的条件,为字符串数组 |
Int:归档的数量 | |
归档任务:
getProcessedRequest |
int pageNo:
当前页数 int pageSize: 每页的分页数量 总行数 int userId: 用户id String[] conditions: 查询流程的条件,为字符串数组类型 |
WorkflowRequestInfo []:请求基本信息列表 | 根据参数条件获取归档任务列表 |
表单数据:
getRequest |
int requestId:
请求requestid |
RequestInfo:
请求信息对象 |
根据流程requestid获得表单数据 |
流程提交:
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 失败 |
流程退回 |
流程转发:
forwardWorkflowRequest |
int requestid:
请求id String forwardoperator: 接收人id 多个用逗号分隔 String remark: 转发意见 String userId: 用户用户id String clientip: 客户端ip地址 |
Boolean:
True 成功 False 失败 |
流程转发 |
搜索所有可用流程数量:
getAllWorkflowRequestCount |
Int userid:
用户id String[] conditions: 查询条件字符串数组 |
Int
返回数目 |
|
所有可用流程列表
getAllWorkflowRequestList |
int pageNo:
当前页数 int pageSize: 每页的分页数量 总行数 int userId: 用户id String[] conditions: 查询流程的条件,为字符串数组类型 |
WorkflowRequestInfo []:请求基本信息列表 | 根据参数条件获取可用任务列表 |
得到所有抄送的流程数量
getCCWorkflowRequestCount |
Int userid:
用户id String[] conditions: 查询条件字符串数组 |
Int
返回数目 |
|
得到所有抄送流程列表
getCCWorkflowRequestList |
int pageNo:
当前页数 int pageSize: 每页的分页数量 总行数 int userId: 用户id String[] conditions: 查询流程的条件,为字符串数组类型 |
WorkflowRequestInfo []:请求基本信息列表 | 根据参数条件获得抄送流程列表 |
得到可创建的工作流数量
getCreateWorkflowCount |
Int userid:
用户id String[] conditions: 查询条件字符串数组 |
Int
返回数目 |
|
取得可创建的工作流列表
getCreateWorkflowList |
int pageNo:
当前页数 int pageSize: 每页的分页数量 总行数 int userId: 用户id String[] conditions: 查询流程的条件,为字符串数组类型 |
WorkflowBaseInfo []:流程基本信息列表 | 根据参数条件获得可创建流程列表 |
取得可创建的工作流类型数量
getCreateWorkflowTypeCount |
Int userid:
用户id String[] conditions: 查询条件字符串数组 |
Int
可创建的工作流类型数量 |
|
取得可创建的工作流类型列表
getCreateWorkflowTypeList |
int pageNo:
当前页数 int pageSize: 每页的分页数量 总行数 int userId: 用户id String[] conditions: 查询流程的条件,为字符串数组类型 |
WorkflowBaseInfo[]:
工作流基本信息数组 |
根据参数条件获得可创建的流程类型列表 |
取得创建流程的相关信息
getCreateWorkflowRequestInfo |
Int workflowId:
流程id Int userid: 用户id |
WorkflowRequestInfo:
流程信息对象 |
|
取得已办工作流类型数量
getHendledWorkflowRequestCount |
Int userid:
用户id String[] conditions: 查询条件字符串数组 |
Int:
可创建流程数量 |
|
取得已办流程列表
getHendledWorkflowRequestList |
int pageNo:
当前页数 int pageSize: 每页的分页数量 总行数 int userId: 用户id String[] conditions: 查询流程的条件,为字符串数组类型 |
WorkflowRequestInfo []:请求基本信息列表 | 根据参数条件获得已办流程列表 |
取得已办工作流类型数量
getMyWorkflowRequestCount |
Int userid:
用户id String[] conditions: 查询条件字符串数组 |
Int:
我的请求流程数量 |
|
取得已办流程列表
getMyWorkflowRequestList |
int pageNo:
当前页数 int pageSize: 每页的分页数量 总行数 int userId: 用户id String[] conditions: 查询流程的条件,为字符串数组类型 |
WorkflowRequestInfo []:请求基本信息列表 | 根据参数条件获得我的请求列表 |
取得流程new标记
getWorkflowNewFlag |
String[] requestIds
多个流程id组成的数组 String ResourceId 人力资源id |
String[]:
结果数组,0或者1组成的数组 |
|
取得流程详细信息
getWorkflowRequest |
Int requestid
请求id Int userid 用户id Int fromrequestid 从相关id的工作流过来 |
WorkflowRequestInfo:流程信息 | |
写入流程查看日志
writeWorkflowReadFlag |
String requested
请求id String userId 用户id |
无返回值 | |
取得归档工作流类型数量
getProcessedWorkflowRequestCount |
Int userid:
用户id String[] conditions: 查询条件字符串数组 |
Int:
归档流程数量 |
|
取得归档流程列表
getProcessedWorkflowRequestList |
int pageNo:
当前页数 int pageSize: 每页的分页数量 总行数 int userId: 用户id String[] conditions: 查询流程的条件,为字符串数组类型 |
WorkflowRequestInfo []:请求基本信息列表 | 根据参数条件获得归档请求列表 |
接口对象说明:
1)WorkflowRequestInfo 工作流请求信息
/**
* 请求ID
*/
private String requestId;
/**
* 请求标题
*/
private String requestName;
/**
* 请求重要级别
*/
private String requestLevel;
/**
* 短信提醒
*/
private String messageType;
/**
* 流程类型
*/
private WorkflowBaseInfo workflowBaseInfo;
/**
* 当前节点名称
*/
private String currentNodeName;
/**
* 当前节点Id
*/
private String currentNodeId;
/**
* 流程状态
*/
private String status;
/**
* 创建者
*/
private String creatorId;
/**
* 创建时间
*/
private String createTime;
/**
* 最后操作者名称
*/
private String lastOperatorName;
/**
* 最后操作时间
*/
private String lastOperateTime;
/**
* 是否可查看
*/
private boolean canView;
/**
* 是否可编辑
*/
private boolean canEdit;
/**
* 签字意见是否必填
*/
private boolean mustInputRemark;
/**
* 主表信息
*/
private WorkflowMainTableInfo workflowMainTableInfo;
/**
* 明细表信息
*/
private WorkflowDetailTableInfo[] workflowDetailTableInfos;
/**
* 流转日志信息
*/
private WorkflowRequestLog[] workflowRequestLogs;
/**
* HTML显示模板
* 0 iPad
* 1 iPhone
*/
private String[] WorkflowHtmlTemplete;
/**
* 解析后的HTML显示内容
* 0 iPad
* 1 iPhone
*/
private String[] WorkflowHtmlShow;
/**
* 被代理人
*/
private String beagentid;
/**
* 流程短语
*/
private String[][] workflowPhrases;
2)WorkflowBaseInfo 工作流信息
/**
* 工作流ID
*/
private String workflowId;
/**
* 工作流标题
*/
private String workflowName;
/**
* 工作流类型ID
*/
private String workflowTypeId;
/**
* 工作流类型名称
*/
private String workflowTypeName;
2.2.3调用实例
根据实际的webservice客户端实现的客户端代码均不相同.以下仅供参考.
- 创建流程
/**
*创建流程,支持多明细,并且带附件字段–目前只支持一个附件,并且是(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”);//留言内容 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];//主字段只有一行数据 wrtri[0] = new WorkflowRequestTableRecord(); wrtri[0].setWorkflowRequestTableFields(wrti);
WorkflowMainTableInfo wmi = new WorkflowMainTableInfo(); wmi.setRequestRecords(wrtri);
//明细字段 WorkflowDetailTableInfo wdti[] = new WorkflowDetailTableInfo[2];//两个明细表0明细表1,1明细表2
//明细表1 start wrtri = new WorkflowRequestTableRecord[2];//数据 行数,假设添加2行明细数据 //第一行 wrti = new WorkflowRequestTableField[3]; //每行3个字段 wrti[0] = new WorkflowRequestTableField(); wrti[0].setFieldName(“sl”);//数量 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”);//数量 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);//加入明细表1的数据 //明细表1 end
//明细表2 start wrtri = new WorkflowRequestTableRecord[1];//数据行数,假设添加1行明细数据
//第一行 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);//加入明细表2的数据 //明细表2 end
WorkflowBaseInfo wbi = new WorkflowBaseInfo(); wbi.setWorkflowId(“5”);//workflowid 5 代表内部留言
WorkflowRequestInfo wri = new WorkflowRequestInfo();//流程基本信息 wri.setCreatorId(“111”);//创建人id wri.setRequestLevel(“2”);//0 正常,1重要,2紧急 wri.setRequestName(“留言测试接口”);//流程标题 wri.setWorkflowMainTableInfo(wmi);//添加主字段数据 wri.setWorkflowBaseInfo(wbi); wri.setWorkflowDetailTableInfos(wdti);
//执行创建流程接口 WorkflowServicePortTypeProxy WorkflowServicePortTypeProxy = new WorkflowServicePortTypeProxy(); String requestid = WorkflowServicePortTypeProxy.doCreateWorkflowRequest(wri, 111); System.out.println(“requestid:”+requestid);
} |
- 获取代办列表数量
/**
* 获得代办事宜数量 * @throws RemoteException */ public static void getDaiBanShuLiang() throws RemoteException{ WorkflowServicePortTypeProxy WorkflowServicePortTypeProxy = new WorkflowServicePortTypeProxy(); int count = WorkflowServicePortTypeProxy.getToDoWorkflowRequestCount(111, null); System.out.println(“代办事宜数量:”+count);//获取待办事宜接口 //带查询条件查询,只能写关于这2个表的查询条件 workflow_requestbase t1,workflow_currentoperator t2 //查询条件里面不需要写and String conditions[] = new String[2]; conditions[0] = ” t1.currentnodetype = 2 “;//状态为审批 conditions[1] = ” t1.creater = 111 “;//创建人为111 count = WorkflowServicePortTypeProxy.getToDoWorkflowRequestCount(111, conditions); System.out.println(“代办事宜数量:”+count);//获取待办事宜接口 } |
- 获得代办事宜列表
/**
* 获得代办列表 */ public static void getDaiBanLieBiao() throws Exception{ WorkflowServicePortTypeProxy WorkflowServicePortTypeProxy = new WorkflowServicePortTypeProxy(); WorkflowRequestInfo WorkflowRequestInfo[] = WorkflowServicePortTypeProxy.getToDoWorkflowRequestList(1, 15, 100, 111, null);//获取待办事宜接口 System.out.println(“代办事宜列表数量:”+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()); } } |