1 统一待办(WebService方式)1.1 概述门户系统做为用户访问各集成应用系统的统一入口,用户访问企业内部信息资源时只需要登录到门户系统,就可使用门户系统集成的各个应用,而待办做为各系统中用户需要处理的工作,门户系统需要提供收集建投内部应用系统中产生的待办信息,并且进行统一展现的功能,即统一待办功能。
统一待办应用业务涉及到的系统其中包括本期门户系统建设过程中所需集成的OA、WCM、EAM系统。
为保证门户系统接入各应用系统待办信息的规范性,现就各应用系统接入实现做统一要求,以确保门户系统统一待办功能实现的规范性、重用性及安全性。
不满足本技术方案提供的接入规则的相关应用系统,应参考本文档完成对应用系统改造后方可进行门户系统统一待办接入工作。
统一待办实现共分为以下部分:➢系统待办信息获取➢系统待办信息展示➢系统待办信息处理1.2 待办信息获取设计思路:应用系统通过门户系统提供的webservice接口向门户系统统一待办系统库写入代表信息,如下图数据获取设计示意图步骤如下:1.应用系统需获得最新的待办信息。
2.应用系统通过门户接口,将获得的最新待办信息发送到门户系统。
3.统一待办系统将应用系统提供的待办信息展示给用户。
4.应用系统通过调用集成接口后获得信息,可以判断发送信息操作是否正常。
1.3 待办信息展示设计思路:应用系统将最新的待办信息发送到统一待办系统中,并最终展示到门户首页上的待办栏目上,如下图待办栏目页面待办集中展示设计示意图场景如下:在所有的待办类标题前加上”请办理”,待阅类标题前加上”请审阅”。
此外,如果信息是未办或者未阅,用红色表示1.4 待办信息处理设计思路:用户点击门户系统上“待办栏目”里的一条待办时,弹出一个新页面,首先同应用系统实现SSO ,然后跳转到应用系统的待办页面,完成待办处理后,由应用系统调用门户接口通知门户系统,并关闭弹出的待办处理页面,门户系统负责即时刷新门户待办页。
如下图:用户应用系统接口应用系统待办处理页面统一待办处理页面SSO 跳转处理完成后,门户统一系统刷新待办栏目统一待办数据库统一待办信息获取接口修改待办状态统一待办栏目点击待办时弹出统一待办系统应用系统待办信息集中处理设计示意图1.5 系统待办规范1.5.1 WebService服务端服务地址:http://域名:8080/jicpending/services/IPandingInterfaceWebservice?wsdl服务文件:服务方法:方法1.putPandingInfo:新待办方法2.changePangdingStatus:当OPTTYPE值为2时,则表示修改待办,当为3时,则表示删除待办方法3.仅供OA系统使用. putOaPandingInfo:新待办,方法4. 仅供OA系统使用changeOaPangdingStatus:当OPTTYPE值为2时,则表示修改待办,当为3时,则表示删除待办,仅供OA系统使用服务参数:具体定义如下表表描述11.5.2 新待办➢第一步:应用系统有新待办信息时,调用门户系统接口,将数据传送给门户系统提供的接口,流程如下:WebService接口图在此过程中,各个应用系统以传递对象的形式传递参数,提供的参数自身包括的值为以下表说明,另外,OA系统传递参数的时候不用传递对象,只要依次传入以下表说明即可。
表描述11.5.2.1.1 WebService应用系统样例OA应用系统:public static void main(String[] args) {S tring url =null;try {url =.Inet4Address.getLocalHost().getHostAddress().toString();} catch (UnknownHostException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}S tringBuffer serviceURL = new StringBuffer();serviceURL.append("http://").append(url).append(":8080/jicpending /services/IPandingInterfaceWebservice");try {IPandingInterfaceWebservice service =XfireClientFactory.getClient(serviceURL.toString(), IPandingInterfaceWebservice.class);//新待办,应用系统调用该接口进行待办数据插入操作,/**方法名:putPandingInfo()参数名:optType, psCode, pCode, pTitle, pDate, pOraniger, pPrincipal, pURL, pStatus, Ptype等各个参数具体定义如上图说明**/String addValue = service.putPandingInfo(optType, psCode, pCode, pTitle, pDate, pOraniger, pPrincipal, pURL, pStatus, Ptype);System.out.println("新增待办成功吗?:" +addValue);} catch (Exception e) {e.printStackTrace();}}非OA应用系统:public static void main(String[] args) {S tring url =null;try {url =.Inet4Address.getLocalHost().getHostAddress().toString();} catch (UnknownHostException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}S tringBuffer serviceURL = new StringBuffer();serviceURL.append("http://").append(url).append(":8080/jicpending /services/IPandingInterfaceWebservice");try {IPandingInterfaceWebservice service =XfireClientFactory.getClient(serviceURL.toString(), IPandingInterfaceWebservice.class);//新增待办RPendingVo vo = new RPendingVo();vo.setOptType("");vo.setPCode("");vo.setPscode("");vo.setPTitle("");vo.setPstatus("");vo.setPOraniger("");vo.setPPrincipal("");vo.setPDate("");vo.setPURL("");vo.setPtype("");String addValue = service.putPandingInfo(vo);System.out.println("新增待办成功吗?:"+addValue); } catch (Exception e) {e.printStackTrace();}}1.5.3 修改、删除待办第一步:应用系统需要修改待办信息时,调用门户系统接口,将数据传递给门户系统提供的接口,流程如下:传输数据方式在此过程中,需要从应用系统获得的值包括以下几个:表描述21.5.3.1.1 WebService应用系统样例应用系统:public static void main(String[] args) {S tring url =null;try {url =.Inet4Address.getLocalHost().getHostAddress().toString();} catch (UnknownHostException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}S tringBuffer serviceURL = new StringBuffer();serviceURL.append("http://").append(url).append(":8080/jicpending /services/IPandingInterfaceWebservice");try {IPandingInterfaceWebservice service =XfireClientFactory.getClient(serviceURL.toString(), IPandingInterfaceWebservice.class);//修改、删除待办,应用系统调用该接口进行待办数据修改、插入操作,/**方法名:changePangdingStatus ()参数名:optType, psCode, pCode, pTitle, pDate, pOraniger, pPrincipal, pURL, pStatus, Ptype等各个参数具体定义如上图说明**///修改待办,当optType=2String modifyValue = service.changePangdingStatus(optType, psCode, pCode, Ptype);System.out.println("修改待办成功吗?:" +modifyValue);// 删除待办, 当optType=3String deleteValue = service.changePangdingStatus(optType, psCode, pCode, Ptype);System.out.println("删除待办成功吗?:" +deleteValue);} catch (Exception e) {e.printStackTrace();}}统一代办新增:putOaPandingInfo、putPandingInfo修改、删除: changeOaPangdingStatus、changePangdingStatus2 统一用户管理2.1 统一用户管理的必要性在门户系统建设之前,各应用系统分别具有各自独立的用户账户和权限管理体系,企业内部不同的用户群体在访问不同的应用系统时,需要分别进行身份的认证和授权,用户与应用系统之间相互交叉形成了一个网状的身份管理架构,如下图所示。