rxt客户端集成oa系统

转载 2013年12月03日 13:09:20

其实OA中集成rtx主要就有三方面的内容,包括组织架构的同步、单点登录、以及由OA向rtx发送消息,rtx有一个java开发的sdk包,可以在官网直接下载,里面集成了对于rtx操作的各种接口,可以直接调用

1.组织架构的同步

同步过程有几点必须注意:

(1)在往rtx添加根部门时,根部门的id必须设置为"0";

(2)rtx在添加部门信息时部门的id不能用英文、一有英文的话就会导致错乱,如果自己的数据里的部门id有英文的话,在添加部门时就得过滤掉英文。

同步的思路就是:将oa中的部门按照从根部门开始一直往下循环并同时添加到rtx中,判断是否有子部门,如果有,同时添加,并递归查看是否有子部门,直到最后一级。

[java] view plaincopy
  1. /** 
  2.      *  
  3.      * 同步所有部门 
  4.      * 
  5.      */  
  6.     public void addAllDeps() {  
  7.         //获取所有根部门  
  8.         List<Department> topDepartments = departmentDao.getTopLevel();  
  9.         for (Department department : topDepartments) {  
  10.             //添加根部门  
  11.             System.out.println("根部门id:" + department.getId());  
  12.             System.out.println("根部门信息:" + department.getRemark());  
  13.             System.out.println("根部门名字:" + department.getName());  
  14.             String departmentId = department.getId().substring(1);  
  15.             addDept(departmentId, department.getRemark(), department.getName(), "0");  
  16.   
  17.             if (department.getChildren().size() != 0) {  
  18.                 getChildDeps(department);  
  19.             }  
  20.         }  
  21.     }  
[java] view plaincopy
  1. /** 
  2.      *  
  3.      * 根据父部门uuid来查找并添加所有子部门(递归) 
  4.      * 
  5.      */  
  6.     public void getChildDeps(Department department) {  
  7.         List<Department> childDepsList = department.getChildren();  
  8.         if (childDepsList.size() > 0) {  
  9.             for (Department childDep : childDepsList) {  
  10.                 String parentDepartmentId = department.getId().substring(1);  
  11.                 String childDepartmentId = childDep.getId().substring(1);  
  12.                 System.out.println(childDepartmentId + ";" + childDep.getRemark() + ";" + childDep.getName() + ";"  
  13.                         + parentDepartmentId);  
  14.                 addDept(childDepartmentId, childDep.getRemark(), childDep.getName(), parentDepartmentId);  
  15.   
  16.                 if (childDep.getChildren().size() != 0) {  
  17.                     getChildDeps(childDep);  
  18.                 }  
  19.   
  20.             }  
  21.         } else {  
  22.             System.out.println("部门" + department.getUuid() + "没有子部门");  
  23.         }  
  24.     }  
同步用户也是一样的道理

2.单点登录

思路:点击一个超链接的时候,会跳转到一个html页面,在这个页面进行单点登录的操作,由于我们不希望点击后还会出现一个新的页面,所以此时最好是使用一个隐藏的iframe,这样用户就看不见页面跳转的过程了。

操作单点登录的html页面:

[html] view plaincopy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <%@ page import="rtx.RTXSvrApi"%>   
  4. <%   
  5.   
  6.     RTXSvrApi rtxApi = new RTXSvrApi();   
  7.     String account = (String)request.getAttribute("loginName");//当前用户登录名  
  8.     String ip = rtxApi.getServerIP(); //服务器ip  
  9.     String keyrtxApi.getSessionKey(account); //获取sessionKey  
  10.     String rtxClientDownloadAddress = (String)request.getAttribute("rtxClientDownloadAddress");//rtx客户端下载地址  
  11.     System.out.println(account);  
  12.     System.out.println(ip);  
  13.     System.out.println(key);  
  14. %>   
  15.  <html>  
  16. <head>  
  17. </head>  
  18. <body text="#000000">  
  19. <html><head><script language="vbscript" id="clientEventHandlersVBS">  
  20. <!--  
  21. '单点登录  
  22. Sub Window_OnLoad()  
  23.     on error resume next  
  24.     Set objProp = RTXAX.GetObject("Property")     
  25.     objProp.Value("RTXUsername") = "<%=account%>"  
  26.     objProp.Value("LoginSessionKey") = "<%=key%>"  
  27.     objProp.Value("ServerAddress") = "<%=ip%>"  
  28.     objProp.Value("ServerPort") = 8000  
  29.   
  30.     lsRTXDownload"<%=rtxClientDownloadAddress%>"     
  31.   
  32.     RTXAX.Call 2, objProp  
  33.     If Err.Number <> 0 Then  
  34.        if Err.Number=438 then   
  35.          MsgBox "请下载安装RTX客户端软件"  
  36.          if lsRTXDownload<>"" Then Window.Open lsRTXDownload  
  37.        Else  
  38.            MsgBox "Error # " & CStr(Err.Number) & " " & Err.Description  
  39.        End if  
  40.         Err.Clear   ' Clear the error.  
  41.     End If  
  42. End Sub  
  43. -->  
  44. </script></head><body>  
  45. <OBJECT classid="clsid:5EEEA87D-160E-4A2D-8427-B6C333FEDA4D" id=RTXAX style="display:none"></OBJECT>  
  46. </body></html>  
  47. </body>  
  48. </html>  
  49.    
jsp页面:

[html] view plaincopy
  1. <a  href="${ctx }/basicdata/rtx/singlesignon" target="rtx">即时通讯</a>  
  2. <iframe src="about:blank" name="rtx"  width=0 height=0 frameborder=0 ></iframe>   
使用以上的这个html页面就能够实现单点登录的功能,但是前提是:当前用户id,服务器ip以及sessionKey都能够获取的到,这就得在后台进行处理,然后跳转到这个页面的时候一起传过来在这边进行使用
3.往rtx发送消息

思路:消息的 发送功能实现之后,在发送时多添加一句代码:即rtx的调用发送消息的接口,按照参数进行设置即可

注意:

1、发送消息给rtx的时候调用rtx的接口的五个参数都不能为null,可以为空,只要有一个为null的话就会导致jvm发生错误。所以要加判断,如果得到的结果为null的话,就要转为空。

2、在服务端一定要记得安装RTX SDK服务,不然无法调用RTXSvrApi

3、对于RTX2012来说,setServerIP()指的是设置RTX服务器IP地址,而setServerPort()指的是设置RTX服务器SDK服务器端口(默认为6000),不是设置RTX服务器端口(默认为8000),如果将此方法误认为是设置RTX服务器端口的话,则在调用RTXSvrApi时会自动将System32文件夹或者是jdk的bin文件夹下的RtxServerApi.ini的端口设置改为8000,这样就会报错:错误代码:-992错误信息:无法连接到 RTX SDK SERVER,请确认 RTXSERVERAPI.INI 中的IP地址/端口是否配置正确。

OA与SAP集成

SAP与协同OA集成的意义: 大部门用户的操作都在OA中完成,无需登录到SAP中进行操作 ü 节省ERP的License费用 ü 减轻企业对SAP用户的培训压力 ü 简化操作、...
  • zhongguomao
  • zhongguomao
  • 2015年07月23日 09:27
  • 1730

OA系统高性能解决方案(史上最全的通达OA系统优化方案)

序:     作为OA的管理员,你是否每天忙的不可开交、访问量大的时候程序无故停止响应,当你正专注于一件很重要的事情,领导咆哮系统怎么挂了?经常被人投诉说系统为什么这么慢?     难道你还...
  • reblue520
  • reblue520
  • 2015年11月24日 09:57
  • 4637

OA系统与Exchange 日历打通

目前我碰到好几个案例是希望将客户以后的OA系统与Exchange中的日历系统相结合,比如致远或者泛微的OA系统。 客户的需求如下: 1、有了OA系统 2、客户使用Outlook当邮件客户端 3、客户希...
  • tom1995
  • tom1995
  • 2017年04月12日 20:20
  • 679

通达OA-如何集成其他系统的单据

通达与用友集成,通达与金蝶集成
  • baronyang
  • baronyang
  • 2015年11月29日 13:36
  • 1275

通达OA 不能登录之服务器时间差异过大

今天早上因为有用户说访问服务器太慢,就重启了服务器,但是重启后很多用户都说登录不上了,提示用户名密码错误。 检查服务器发现原来是服务器时间被改成了2011年6月5日,整整差了一年,服务器才会出现这种...
  • upi2u
  • upi2u
  • 2012年06月05日 14:07
  • 3141

Web自定义表单工具和协同办公系统之集成(1)

提起“协同办公”,随便在百度或者Google搜索一下,就能让你看到眼花缭乱的信息,国内的各大协同办公软件厂商都在鼓吹着自己对协同的理解和自己的协同办公软件产品如何能实现协同办公管理,但从众多的信息中我...
  • LikeLaura
  • LikeLaura
  • 2016年10月14日 19:45
  • 1304

从"OA系统"开发设计看软件工程中的几张模型图

点击这里查看更多设计文档及OA系统核心模块源代码系统功能模型顶层数据流图 0层数据流图 1层数据流图 2层数据流图 加工2.1的分解 加工2.2的分解 加工2.3的分解 加工2.4的分解...
  • lxf_44944
  • lxf_44944
  • 2015年02月15日 20:03
  • 2526

开发OA系统的一点感想

        前段时间一直在做北京市某个区政府文书科的一个公文接收的自动化系统,自己有一些感想,在这里写出来。感觉政府中的这种OA与企业的OA确实存在着一些差距,尤其是组织制度上,工作流的流程比较复...
  • bisal
  • bisal
  • 2007年01月10日 13:07
  • 2920

Rtx与OA集成问题

本文主要介绍OA—RTX常见功能集成,其中包括RTXName控件、SessionKey登录、Web获取当前登录用户帐号、用户名密码登录、发送消息提醒等功能,以及开发这些功能常见问题。 RTXName控...
  • fzzsh
  • fzzsh
  • 2008年01月22日 10:33
  • 1473

OA系统简介

简介 OA也称为办公自动化(Office Automation),是一门综合性的科学技术,兴于70年代后的美国和日本。按照美国麻省理工学院M.C.季斯曼教授的定义:OA就是将计算机技术、通信技术、系统...
  • sunqing0316
  • sunqing0316
  • 2015年11月27日 17:17
  • 1943
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:rxt客户端集成oa系统
举报原因:
原因补充:

(最多只允许输入30个字)