ImageVerifierCode 换一换
格式:DOC , 页数:29 ,大小:819KB ,
资源ID:7806306      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7806306.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(e-cology工作流Web Service接口使用说明.doc)为本站会员(11xg27ws)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

e-cology工作流Web Service接口使用说明.doc

1、 e-cology 工作流接口使用说明- 1 -e-cology工作流接口使用白皮书SUBMITED BY WEAVERe-cology 工作流接口使用说明- 2 -文档版本历史变更序号 日期 版本文件变更申请编号 变更说明 修改人1 2007 年 5 月 23 日 V1.0 无 新文件 张小丰2 2010 年 7 月 20 日 V2.0 无 修改 周定勇3 2010 年 9 月 25 日 V3.0 无 修改 周定勇e-cology 工作流接口使用说明- 3 -目 录一、前言 41.1 编写目的 .41.2 名词定义 .4二、接口调用步骤 52.1 Ecology 系统流程接口部署 52.2

2、表单字段 .52.3 检查 ecology web service 是否已部署 62.4 接口方法概述 .72.5 流程相关对象说明 102.6 生成客户端 15三、示例程序 173.1 创建带附件的留言 .173.2 使用客户端代理创建留言 173.3 使用客户端查询留言 203.4 使用客户端实现流程转发 213.5 使用客户端实现流程提交 223.6 使用客户端实现流程退回 233.7 使用客户端获得待办列表 233.8 使用客户端获得已办列表 243.9 使用客户端获得办结列表 253.10 使用客户端获得我的请求列表 26e-cology 工作流接口使用说明- 4 -一、前言1.1

3、编写目的本文给有研发能力的客户或有系统集成需求的客户提供 web service 接口调用的参考例程。本文的面向具有一定 web service 开发能力或了解 web service 技术的开发人员。1.2 名词定义1、Axis:著名的开源 web service 引擎。2、外部系统:指调用或实现 e-cology 工作流输入输出接口,与 e-cology 系统进行数据交接的其他系统。e-cology 工作流接口使用说明- 5 -二、接口调用步骤2.1 Ecology 系统流程接口部署1. 更新 lib 目录下文件将 spring.jar 更新为 spring-1.2.6.jar将 xfir

4、e-all-1.1.2.jar 更新为 xfire-all-1.2.6.jar添加 xbean-spring-2.8.jar 文件2. 修改/WEB-INF/web.xml 文件在相应处增加 servlet 部署(参考系统中已有很多 servlet 部署) ,加入如下描述XFireServletorg.codehaus.xfire.transport.http.XFireConfigurableServletXFireServlet/services/*注意:不要添加在注释中(即以“”结束为注释)!3. 修改/classbean/META-INF/xfire/services.xml 文件,增

5、加红色部分描述DocServicehttp:/localhost/services/DocServiceweaver.docs.webservices.DocServiceweaver.docs.webservices.DocServiceImplRequestServicehttp:/localhost/services/RequestServiceweaver.soa.workflow.request.RequestService2.2 表单字段在确定调用 web service 接口之前需要在 ecology 系统中设计好表单, 记下表单字段名(主字段和明细字段) ,在调用接口的时候需要

6、用到。字段名在工作流程-表单管理-编辑字段菜单中可以查到,如下图所示为留言表单的字段列表:e-cology 工作流接口使用说明- 6 -2.3 检查 ecology web service 是否已部署在浏览器中输入 http:/ecologyServer/services,应显示如下页面:点击 RequestService 后面的 wsdl 链接应出现如下页面:e-cology 工作流接口使用说明- 7 -wsdl 具体描述文件如下:如果未出先上述页面,则 web service 未部署成功,请与泛微项目人员联系。2.4 接口方法概述名称 参数 返回值 功能描述createRequest Re

7、questInfo requestinfo:请求信息对象String:新流程的 requestid如果小于 0 表示失败-1:创建流程失败-2:用户没有流程创建权限-3:创建流程基本信息失败-4:保存表单主表信息失败-5:更新紧急程度失败-6:流程操作者失败-7:流转至下一根据请求信息对象创建一条新的流程e-cology 工作流接口使用说明- 8 -节点失败-8:节点附加操作失败getMyRequestBySearch int creatorId:创建人 id (大于 0 时该条件有效)String createStartDate:创建日期(起)日期格式“YYYY-MM-DD” (不为空时该条

8、件有效)String createEndDate:创建日期(止)日期格式“YYYY-MM-DD” (不为空时该条件有效)String workflowid:工作流 id 多个用逗号分隔 (不为空时该条件有效)RequestBase:请求基本信息列表根据参数条件获取我的请求列表getPendingRequestBySearch int userId:用户 id (大于 0 时该条件有效)String createStartDate:创建日期(起)日期格式“YYYY-MM-DD” (不为空时该条件有效)String createEndDate:创建日期(止)日期格式“YYYY-MM-DD” (不为

9、空时该条件有效)String workflowid:工作流 id 多个用逗号分隔 (不为空时该条件有效)RequestBase:请求基本信息列表根据参数条件获取代办事宜列表getHendledRequestBySearch int userId:用户 id (大于 0 时该条件有效)String createStartDate:创建日期(起)日期格式“YYYY-MM-DD” (不为RequestBase:请求基本信息列表根据参数条件获取已办事宜列表e-cology 工作流接口使用说明- 9 -空时该条件有效)String createEndDate:创建日期(止)日期格式“YYYY-MM-DD

10、” (不为空时该条件有效)String workflowid:工作流 id 多个用逗号分隔 (不为空时该条件有效)getProcessedRequestBySearch int userId:用户 id (大于 0 时该条件有效)String createStartDate:创建日期(起)日期格式“YYYY-MM-DD” (不为空时该条件有效)String createEndDate:创建日期(止)日期格式“YYYY-MM-DD” (不为空时该条件有效)String workflowid:工作流 id 多个用逗号分隔 (不为空时该条件有效)RequestBase:请求基本信息列表根据参数条件获

11、取归档事宜列表getRequest int requestId:请求 requestidRequestInfo:请求信息对象根据流程requestid 获得表单数据getRequest RequestManager requestManager:requestManager 对象RequestInfo:请求信息对象根据requestmanager对象获取表单数据nextNodeBySubmit RequestInfo request:请求信息对象int requestid:请求 idint userid:提交人 IDString remark:提交意见Boolean:True 成功False

12、失败流程提交nextNodeByReject int requestid:请求 idint userid:Boolean:True 成功False 失败流程退回e-cology 工作流接口使用说明- 10 -提交人 IDString remark:退回意见forwardFlow int requestid:请求 idint forwardoperator:转发人 idString recipients:接收人 id 多个用逗号分隔String remark:转发意见String clientip:客户端 ip 地址Boolean:True 成功False 失败流程转发2.5 流程相关对象说明1

13、)RequestInfo/* 工作流 id*/private java.lang.String _workflowid;/* 请求 id*/private java.lang.String _requestid;/* 创建者 id*/private java.lang.String _creatorid;/* 请求标题*/private java.lang.String _description;/* 紧急程度*/private java.lang.String _requestlevel;/*e-cology 工作流接口使用说明- 11 -* F 提醒类型*/private java.lan

14、g.String _remindtype;/* Field _hostid*/private java.lang.String _hostid;/* 最后操作者*/private java.lang.String _lastoperator; /* 表单主表信息*/private weaver.soa.workflow.request.MainTableInfo _mainTableInfo;/* 表单明细表信息*/private weaver.soa.workflow.request.DetailTableInfo _detailTableInfo;/* 流转日志*/private weav

15、er.soa.workflow.request.RequestLog _requestLog;/* 流程流转控制对象*/private weaver.workflow.request.RequestManager _RequestManager;/* 创建流程是否自动流转至下一节点* 0:不自动流程* 其它:自动流程*/private java.lang.String _isNextFlow;2)RequestBase/*请求 id*/e-cology 工作流接口使用说明- 12 -private String requestId;/*当前节点 id*/private String curre

16、ntNodeId;/*流程 id*/private String workflowId;/*当前节点类型 3 为归档*/private String currentNodeType;/归档:3/*请求名称*/private String requestName;/*创建人*/private String creater;/*创建人类型 0:内部用户 1:外部用户*/private String creatertype;/*最后操作者*/private String lastOperator;/*最后操作者类型 0:内部用户 1:外部用户*/private String lastOperator

17、type;/*创建时间*/e-cology 工作流接口使用说明- 13 -private String createTime;/*最后操作时间*/private String lastOperateTime;3)RequestManager/*请求 id*/private int requestid = 0; /*工作流 id*/private int workflowid = 0; /*工作流类型*/private String workflowtype = “; /*是否是批注提交 1: 是*/private int isremark = 0; /*表单或者单据的 id*/private

18、int formid = 0; /*是否单据 0:否 1:是*/private int isbill = 0; /*如果是单据,对应的单据表的 id*/private int billid = 0; /*节点 id*/private int nodeid = 0; /*节点类型 0:创建 1:审批 2:实现 3:归档*/private String nodetype = “; e-cology 工作流接口使用说明- 14 -/*请求名称*/private String requestname = “; /*请求的编号*/private String requestmark = “; /*请求重

19、要级别 0:正常 1:重要 2:紧急*/private String requestlevel = “; /*签字批注*/private String remark = “; /*短信提醒类型*/private String messageType=“; /*操作人是否需要流程反馈*/private String needwfback=“;/*下一个节点的 id*/private int nextnodeid = 0; /*下一个节点的类型*/private String nextnodetype = “; /*最后节点的 id*/private int lastnodeid = 0; /*最

20、后节点的类型*/private String lastnodetype = “; /*出口名称*/private String status = “; e-cology 工作流接口使用说明- 15 -/*请求创建者*/private int creater = 0; /*创建者类型 0:内部 1:外部*/private int creatertype = 0; /*请求创建日期*/private String createdate = “; /*创建时间*/private String createtime = “; /*最后操作者*/private int lastoperator = 0;

21、 /*最后节点的操作者类型 0:内部 1:外部*/private int lastoperatortype = 0; /*最后操作日期*/private String lastoperatedate = “; /*最后操作时间*/private String lastoperatetime = “; /*用户对象*/private User user;2.6 生成客户端大家知道,在本地调用 web service,最便利的方法是利用工具生成客户端代理,开发人员通过客户端代理去访问 web service 将会非常简单,就象调用本地的方法一样。各大主流的编程语言都提供了通过wsdl 生成客户端代

22、理的工具,如 c#中的 wsdl.exe 和 java 中的 wsdl2java。本文以 java 为例说明客户端的生成方法。e-cology 工作流接口使用说明- 16 -2.6.1 客户端所需 jarcommons-discovery-0.2.jarjavax-wsdl_1.5.1jarcommons-logging_1.0.4.jaraxis.jarjaxrpc.jarsaaj.jaractivation.jarmail.jar2.6.2 生成客户端使用 eclipse 向导生成 Web Service 客户端e-cology 工作流接口使用说明- 17 -e-cology 工作流接口使

23、用说明- 18 -e-cology 工作流接口使用说明- 19 -三、示例程序本节介绍怎样利用生成的客户端代理访问 ecology 工作流, 提供了在外部创建带附件的留言、查询留言、创建多明细表单的示例代码。3.1 创建带附件的留言在创建留言前我们需要知道留言流程在 ecology 系统中的 workflowid 以及留言表单的字段定义。获取字段定义的方法意见在前面的章节介绍过了,获取 workflowid 的方法如图所示:工作流程-路径设置可以看出留言表单的 workflowid=53.2 使用客户端代理创建留言代码:/* 创建留言的示例代码* throws Exception*/publi

24、c String testCreateRequest() throws Exception weaver.soa.workflow.request.client.RequestServiceHttpBindingStub binding;try binding = (weaver.soa.workflow.request.client.RequestServiceHttpBindingStub)new weaver.soa.workflow.request.client.RequestServiceLocator().getRequestServiceHttpPort();catch (jav

25、ax.xml.rpc.ServiceException jre) if (jre.getLinkedCause() != null)e-cology 工作流接口使用说明- 20 -jre.getLinkedCause().printStackTrace();throw new junit.framework.AssertionFailedError(“JAX-RPC ServiceException caught: “ + jre);assertNotNull(“binding is null“, binding);/ Time out after a minutebinding.setTim

26、eout(60000);/ Test operationweaver.soa.workflow.request.client.RequestInfo ri = new weaver.soa.workflow.request.client.RequestInfo();ri.setCreatorid(“57“);/表单创建人 idri.setWorkflowid(“37“);/workflowidri.setRequestlevel(“0“);/紧急程度ri.setRemindtype(“0“);/提醒类型/添加主表数据weaver.soa.workflow.request.client.Main

27、TableInfo mti = new weaver.soa.workflow.request.client.MainTableInfo();/设置主表个字段数据Property p = new Property3;p0 = new Property();p0.setName(“resource1“);p0.setValue(“57“);p1 = new Property();p1.setName(“department“);p1.setValue(“7“);p2 = new Property();p2.setName(“desc1“);p2.setValue(“测试多明细“);p3 = ne

28、w Property();p3.setName(“fujian“);/附件字段p3.setType(“http:测试 .txt“);/附件文件名,格式 http:文件名p3.setValue(“http:/xxx/xxx/download“);/附件网址,ecology 工作流接口从此处获取文件并保存到 ecology 系统中。目前仅支持以 http 链接的方式上传附件。mti.setProperty(new ArrayOfProperty(p);ri.setMainTableInfo(mti);/添加明细表数据DetailTableInfo dti = new DetailTableInfo

29、();/本例中有两个明细表DetailTable dt = new DetailTable2;/添加第一个明细表dt0 = new DetailTable();dt0.setId(“0“);/tableid is requirede-cology 工作流接口使用说明- 21 -/添加一行到第一个明细表Row r = new Row1;r0.setId(“0“); /rowid is required/添加单元格到行Cell c = new Cell2;c0 = new Cell();c0.setName(“dscone“);c0.setValue(“this is a cell“);c1 =

30、new Cell();c1.setName(“int“);c1.setValue(“100“);r0.setCell(new ArrayOfCell(c);dt0.setRow(new ArrayOfRow(r);/第一个明细表添加完毕/添加第二个明细表dt1 = new DetailTable();dt1.setId(“1“);/tableid is required/添加行到第二个明细表Row dt1_r = new Row1;dt1_r0.setId(“0“); /rowid is required/添加单元个到行Cell dt1_c = new Cell1;dt1_c0.setName

31、(“sec“);dt1_c0.setValue(“2“);dt1_r0.setCell(new ArrayOfCell(dt1_c);dt1.setRow(new ArrayOfRow(dt1_r);/添加第二个明细表dti.setDetailTable(new ArrayOfDetailTable(dt);ri.setDetailTableInfo(dti);ri.setDescription(“多明细表单 “);return binding.createRequest(ri);/ TBD - validate results以上代码将在 ecology 系统中创建一个留言表单,并返回表单

32、id 供以后查询使用。看看 ecology 中发生了什么?e-cology 工作流接口使用说明- 22 -3.3 使用客户端查询留言/* 获取请求信息的示例代码* requestid 请求 id* throws Exception*/public weaver.soa.workflow.request.client.RequestInfo GetRequestById(int requestid) throws Exception weaver.soa.workflow.request.client.RequestServiceHttpBindingStub binding;try bindi

33、ng = (weaver.soa.workflow.request.client.RequestServiceHttpBindingStub)new weaver.soa.workflow.request.client.RequestServiceLocator().getRequestServiceHttpPort();catch (javax.xml.rpc.ServiceException jre) if(jre.getLinkedCause()!=null)jre.getLinkedCause().printStackTrace();throw new junit.framework.

34、AssertionFailedError(“JAX-RPC ServiceException caught: “ + jre);assertNotNull(“binding is null“, binding);/ Time out after a minutebinding.setTimeout(60000);e-cology 工作流接口使用说明- 23 -/ Test operationreturn binding.getRequest(requestid);/ TBD - validate results3.4 使用客户端实现流程转发/* 流程转发* requestid 请求 id* f

35、orwardoperator 转发人 id* recipients 接收人 id,多个用逗号分隔*remark 签字意见*clientip 客户端 IP* throws Exception*/public boolean ForwardFlow(int requestid, int forwardoperator, String recipients, String remark, String clientip) throws Exception weaver.soa.workflow.request.client.RequestServiceHttpBindingStub binding;

36、try binding = (weaver.soa.workflow.request.client.RequestServiceHttpBindingStub)new weaver.soa.workflow.request.client.RequestServiceLocator().getRequestServiceHttpPort();catch (javax.xml.rpc.ServiceException jre) if(jre.getLinkedCause()!=null)jre.getLinkedCause().printStackTrace();throw new junit.f

37、ramework.AssertionFailedError(“JAX-RPC ServiceException caught: “ + jre);assertNotNull(“binding is null“, binding);/ Time out after a minutebinding.setTimeout(60000);/ Test operationboolean value = false;return binding.forwardFlow( requestid, forwardoperator, recipients, remark, clientip);/ TBD - va

38、lidate resultse-cology 工作流接口使用说明- 24 -3.5 使用客户端实现流程提交/* 流程提交* RequestInfo 主表明细表数据信息* requestid 请求 id* userid 处理人*remark 签字意见* throws Exception*/public boolean NextNodeBySubmit(weaver.soa.workflow.request.client.RequestInfo request,int requestid,int userid,String remark) throws Exception weaver.soa.w

39、orkflow.request.client.RequestServiceHttpBindingStub binding;try binding = (weaver.soa.workflow.request.client.RequestServiceHttpBindingStub)new weaver.soa.workflow.request.client.RequestServiceLocator().getRequestServiceHttpPort();catch (javax.xml.rpc.ServiceException jre) if(jre.getLinkedCause()!=

40、null)jre.getLinkedCause().printStackTrace();throw new junit.framework.AssertionFailedError(“JAX-RPC ServiceException caught: “ + jre);assertNotNull(“binding is null“, binding);/ Time out after a minutebinding.setTimeout(60000);/ Test operationboolean value = false;return binding.nextNodeBySubmit( re

41、quest , requestid, userid, remark);/ TBD - validate results3.6 使用客户端实现流程退回/* 流程退回* requested 请求 ide-cology 工作流接口使用说明- 25 -* userid 处理人*remark 签字意见* throws Exception*/public boolean NextNodeByReject(int requestid,int userid,String remark) throws Exception weaver.soa.workflow.request.client.RequestSer

42、viceHttpBindingStub binding;try binding = (weaver.soa.workflow.request.client.RequestServiceHttpBindingStub)new weaver.soa.workflow.request.client.RequestServiceLocator().getRequestServiceHttpPort();catch (javax.xml.rpc.ServiceException jre) if(jre.getLinkedCause()!=null)jre.getLinkedCause().printSt

43、ackTrace();throw new junit.framework.AssertionFailedError(“JAX-RPC ServiceException caught: “ + jre);assertNotNull(“binding is null“, binding);/ Time out after a minutebinding.setTimeout(60000);/ Test operationboolean value = false;return binding.nextNodeByReject(requestid,userid,remark);/ TBD - val

44、idate results3.7 使用客户端获得待办列表/* 流程待办列表* creatorId 创建人 id* createStartDate 创建日期(起)* createEndDate 创建日期(止)* workflowid 工作流 id* throws Exception*/public RequestBase GetPendingRequestBySearch(int creatorId, String createStartDate,String createEndDate,String workflowid) throws Exception weaver.soa.workflo

45、w.request.client.RequestServiceHttpBindingStub binding;e-cology 工作流接口使用说明- 26 -try binding = (weaver.soa.workflow.request.client.RequestServiceHttpBindingStub)new weaver.soa.workflow.request.client.RequestServiceLocator().getRequestServiceHttpPort();catch (javax.xml.rpc.ServiceException jre) if(jre.

46、getLinkedCause()!=null)jre.getLinkedCause().printStackTrace();throw new junit.framework.AssertionFailedError(“JAX-RPC ServiceException caught: “ + jre);assertNotNull(“binding is null“, binding);/ Time out after a minutebinding.setTimeout(60000);/ Test operationweaver.soa.workflow.request.client.Arra

47、yOfRequestBase value = null;return binding.getPendingRequestBySearch(creatorId, createStartDate,createEndDate,workflowid).getRequestBase();/ TBD - validate results3.8 使用客户端获得已办列表/* 流程已办列表* userId 人员 id* createStartDate 创建日期(起)* createEndDate 创建日期(止)* workflowid 工作流 id* throws Exception*/public Reque

48、stBase testGetHendledRequestBySearch(int userId, String createStartDate,String createEndDate,String workflowid) throws Exception weaver.soa.workflow.request.client.RequestServiceHttpBindingStub binding;try binding = (weaver.soa.workflow.request.client.RequestServiceHttpBindingStub)new weaver.soa.workflow.request.client.RequestServiceLocator().getRequestServiceHttpPort();e-cology 工作流接口使用说明- 27 -catch (javax.xml.rpc.ServiceException jre) if(jre.getLinkedCause(

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报