查看: 2233|回复: 0

帆软FineReport与致远OA单点集成方案

[复制链接]
发表于 2019-11-4 11:31:17 | 显示全部楼层 |阅读模式
今天为大家分享一下FineReport与致远OA单点集成方案,以下是大致相关,文末会有详细介绍(含FineReport与致远OA详细集成方案、五份文件以及两份说明),有需要可自行下载。
  l3 A8 L3 i! P7 ]6 ^- H4 t
4 M4 F9 M/ b' g3 c( H5 Y' A4 ^   在SeeyonReport的同目录下,放一个报表工程WebReport,如下图1所示:; o, l% Q8 L/ B/ h& C: \
" W' T+ u  q6 {
( c# Q% M" s) W6 @4 I7 E$ e7 J6 X
   然后之后访问的报表url,都是访问这个WebReport,譬如访问fs的具体URL是http://localhost/WebReport/ReportServer?op=fs,(ip根据致远实际情况修改),然后将该url挂在致远OA的某个链接上。譬如将其挂在致远OA的关联系统里面,系统管理员给test用户的关联系统挂了一个fs的链接,如图2所示:
% m' t9 ~% e/ i- r/ L( m& x" N) C* N7 H
8 s6 c- l$ s& c: s8 ?& {+ H, \. D' z3 D* L+ I; M; x  u3 k
    然后test用户登录OA后,可以看到关联系统里面有一个帆软报表的链接,如下图3所示:# |$ b" ?, y- O8 k2 o
4 C& U  R- r: I2 O' v+ O/ l9 [4 P; @

* q1 A5 z; A* H  与刚部署的WebReport的fs做单点登录+ c' j, ]. {# E  O1 g# D2 \/ s
  由于致远的限制,在WebReport里面不能获取到当前登录OA的用户名密码,而又想要单点登录fs,这时候可以修改致远OA的登录页面,获取到登录OA的用户名和密码,然后加上我们的Ajax单点登录。注意,由于涉及到中文用户名,需要用到cjkEncode方法,而如果直接引用finereport.js,会和致远的js冲突,因此需要重写cjkEncode方法。其OA登录页面为Seeyon\A8\ApacheJetspeed\webapps\seeyon\main\login\default\login.jsp,5 P: A( r% K( Z1 i- F
在它的loginButtonOnClickHandler方法内,加上我们的Ajax单点登录,同时,新增一个cjkEncode的function。具体代码见改文件目录的login.jsp。
; l# U" N6 ]6 f# u% G( X: s  F" [# M/ Z然后,将OA里的用户同步到WebReport里。首先,连上OA的数据库(以MySQL为例),然后建立一个服务器数据集,通过4 L. x7 |0 b2 p) q- c/ D1 i
SELECT org.name as department,p.name as role,* E1 v* v# S, v
m.name as username,a.login_name,a.credential_value* W. C! w8 ~5 x: Q  x
FROM dbo.[ORG_PRINCIPAL] a left join dbo.ORG_MEMBER m on a.member_id=m.id
% n% z$ w- k% K# j- K. V6 K) xleft join dbo.[ORG_POST] p on p.id=m.org_post_id3 K# s1 _" A6 C8 V/ Y9 Y
left join dbo.[ORG_UNIT] org on org.id=m.org_department_id
  Q2 g7 a' a5 ]9 a/ `6 w# `' b4 J
; g; N" b1 ~2 d$ [$ P
可以看到,其密码都是加密过的,因此需要我们fs配置自定义加密类。将改目录下的TestPasswordValidator.class放到
# ?: _% n5 t4 J6 p# ]WebReport\WEB-INF\classes\com\fr\privilege\providers\dao目录下,没有则新建
* t' [; e/ D& b  Q7 U# W+ Y9 p0 O, z, |4 g9 H' j& D2 e% K; J
另外还需要将seeyon_ctp_core.jar放到WebReport\WEB-INF\lib目录下;
3 c8 q) C* \+ q( C这两个方法好,重启报表工程。' Y0 b1 b: ^9 \" M6 J
然后登陆fs配置,如图6所示:(自定义加密那里的路径填写成com.fr.privilege.providers.dao.TestPasswordValidator)
9 O+ ?9 Y# n2 m; Y; ~0 w
+ i; h/ v1 [  }) }2 h4 }8 Y. J( _) w" i" l3 [

& u& I' X/ x) J8 t    配置好后,再登录OA来验证单点登录是否成功,如下图7,图8,图9所示
- q' z$ b- d5 k4 g' u% Q5 r, O& ]) E0 d$ j3 h

; E; L3 G: b8 p2 B7 h(附件含FineReport与致远OA详细集成方案、五份文件以及两份说明)
& V+ F7 B/ n: o  G; f+ Q  q5 E% p+ c" k$ ~
1.png
9 P3 F+ [) A4 {# I
3 j8 r0 Q* a5 W( j& q1 K: _ 2.png
8 z$ C* Q7 a5 X5 s4 V3 c
+ a* e3 b! d7 A8 B+ N6 G 3.png " Q6 f' M; v$ Y5 u! x5 H

6 s) y- L4 ?  e5 i" p2 K 4.png & F$ z" W" x: c' M
# i. \$ U# k7 r) H3 ~/ l+ O7 w. b1 R
5.png
! v* r$ c1 I* h; E, P0 ~. |% z, @* @1 f5 `8 ]
6.png
0 i) c! {" O- Y+ {) h7 o$ m; V6 ]: k1 s$ X* x0 I, Y& s
7.png
/ R0 r# l5 A' h; e( A, T9 W. A( k$ F: b
8.png , C8 F8 D! E  d* B" Z6 \

0 F/ |+ T9 p2 `- R# `3 p$ U 9.png ! K$ R: q1 y% e) k& q

5 w- d5 I9 C* |5 A9 t 10.png
. Z/ b3 E) p: ^, a" u" T/ o+ n9 j6 X: D1 }

% q; w4 d- {$ x# ^  y* s
  m) i# a9 A+ F; b2 }3 o FineReport与致远OA单点集成方案.rar (134.51 KB, 下载次数: 46)

相关技术服务需求,请联系管理员和客服QQ:2753533861或QQ:619920289
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

帖子推荐:
客服咨询

QQ:2753533861

服务时间 9:00-22:00

快速回复 返回顶部 返回列表