FR与致远集成方案1
- 格式:doc
- 大小:936.50 KB
- 文档页数:5
1.在SeeyonReport的同目录下,放一个报表工程WebReport,如下图1所示:
图1
然后之后访问的报表url,都是访问这个WebReport,譬如访问fs的具体URL是http://localhost/WebReport/ReportServer?op=fs,(ip根据致远实际情况修改),然后将该url挂在致远OA的某个链接上。譬如将其挂在致远OA的关联系统里面,系统管理员给test用户的关联系统挂了一个fs的链接,如图2所示:
图2
然后test用户登录OA后,可以看到关联系统里面有一个帆软报表的链接,如下图3所示:
图3
2.与刚部署的WebReport的fs做单点登录。
由于致远的限制,在WebReport里面不能获取到当前登录OA的用户名和密码,而又想要单点登录fs,这时候可以修改致远OA的登录页面,获取到登录OA 的用户名和密码,然后加上我们的Ajax单点登录。注意,由于涉及到中文用户名,需要用到cjkEncode方法,而如果直接引用finereport.js,会和致远的js 冲突,因此需要重写cjkEncode方法。其OA登录页面为Seeyon\A8\ApacheJetspeed\webapps\seeyon\main\login\default\login.jsp, 在它的loginButtonOnClickHandler方法内,加上我们的Ajax单点登录,同时,新增一个cjkEnocde的function。具体代码见改文件目录的login.jsp。
然后,将OA里的用户同步到WebReport里。首先,连上OA的数据库(以MySQL 为例),然后建立一个服务器数据集,通过
SELECT as department, as role,
as username,a.login_name,a.credential_value
FROM dbo.[ORG_PRINCIPAL] a left join _MEMBER m on
a.member_id=m.id
left join dbo.[ORG_POST]p on p.id=_post_id
left join dbo.[ORG_UNIT]org on org.id=_department_id
如下图4,图5所示:
图4
图5
可以看到,其密码都是加密过的,因此需要我们fs配置自定义加密类。将改目录下的TestPasswordValidator.class放到
WebReport\WEB-INF\classes\com\fr\privilege\providers\dao目录下,没有则新建。
另外还需要将seeyon_ctp_core.jar放到WebReport\WEB-INF\lib目录下;
这两个方法好,重启报表工程。
然后登陆fs配置,如图6所示:(自定义加密那里的路径填写成com.fr.privilege.providers.dao.TestPasswordValidator)
图6
配置好后,再登录OA来验证单点登录是否成功,如下图7,图8,图9所示:
图7
图8
图9(“测试”即为OA登录的test用户)