Java軟件報(bào)表軟件技術(shù)博客

          java報(bào)表軟件技術(shù)匯總 java報(bào)表軟件制作 報(bào)表軟件新聞
          posts - 355, comments - 100, trackbacks - 0, articles - 3
             :: 首頁(yè) :: 新隨筆 ::  :: 聚合  :: 管理

          最近出現(xiàn)了很多關(guān)于帆軟報(bào)表和泛微OA的集成問題,均出現(xiàn)在“單點(diǎn)登錄”上。直接也有相關(guān)的文章介紹一些FineReport和泛微集成的背景、價(jià)值等,以及FineReport和OA的深度集成的方案,但是并沒有提到單點(diǎn)登錄的集成方案,今天就簡(jiǎn)單介紹下FineReport和OA單點(diǎn)登錄集成方式。

          同步用戶信息

          單點(diǎn)登錄的基礎(chǔ),就是用戶信息的同步,F(xiàn)ineReport的決策系統(tǒng)中有一個(gè)很強(qiáng)大的功能,可以自動(dòng)幫助用戶實(shí)現(xiàn)用戶信息同步。具體菜單:決策系統(tǒng)-管理系統(tǒng)-用戶管理。點(diǎn)擊用戶管理菜單后,右側(cè)頁(yè)面右上角有一個(gè)“設(shè)置”按鈕,如下圖:


          點(diǎn)擊“設(shè)置”,則會(huì)出現(xiàn)如下圖的界面。按照下圖中的配置進(jìn)行對(duì)應(yīng)的配置。


          認(rèn)證方式:選擇平臺(tái)內(nèi)置認(rèn)證。單點(diǎn)登錄的集成是通過平臺(tái)內(nèi)置認(rèn)證進(jìn)行集成的。

          用戶同步數(shù)據(jù)集:選擇“已開啟”

          服務(wù)器數(shù)據(jù)集:服務(wù)器數(shù)據(jù)集是需要去帆軟報(bào)表的開發(fā)工具上進(jìn)行配置。如下圖:


           

           

          進(jìn)入設(shè)計(jì)器,點(diǎn)擊菜單服務(wù)器-服務(wù)器數(shù)據(jù)集,新增一個(gè)數(shù)據(jù)集,選擇OA的數(shù)據(jù)源,寫入SQL“select * from hrmresource”,保存即可。

          保存后,需要去本地的開發(fā)環(huán)境上找到對(duì)應(yīng)的xml,復(fù)制到?jīng)Q策系統(tǒng)服務(wù)器端,才可使用。本地開發(fā)環(huán)境的xml路徑見上圖“保存路徑”后面的對(duì)應(yīng)文件路徑。

          通過EditPlus編輯器打開datasource.xml文件后,找到“OA用戶”這塊xml代碼。將這塊代碼復(fù)制到服務(wù)器上的datasource.xml上,路徑和/WebReport/WEB-INF/resourcr/datasource.xml,粘貼格式參見本地的開發(fā)環(huán)境。如下圖:

           

          注:不要用記事本打開xml,保存可能會(huì)損壞xml。更新服務(wù)器文件時(shí),做好備份。

          繼續(xù)配置用戶同步

          用戶名:XXX

          姓名:XXX

          密碼:XXX,注意,OA的密碼已經(jīng)進(jìn)行了32位大寫的MD5加密。

          加密方式:不設(shè)置密碼加密

          其他選填。

          點(diǎn)擊保存,OK,決策系統(tǒng)已經(jīng)開始在后臺(tái)執(zhí)行了用戶同步了。只需要在決策系統(tǒng)中的用戶管理上查看同步的用戶信息結(jié)果即可。

          泛微OA的登錄方式和如何編寫單點(diǎn)登錄

          了解單點(diǎn)登錄之前,先了解下OA的登錄方式。泛微OA的登錄方式有2種。第一種,是通過頁(yè)面登錄進(jìn)OA;第二種是,是通過E-Message上的快捷方式進(jìn)入到OA。

          這樣的話,如果實(shí)現(xiàn)FineReport和泛微OA集成的單點(diǎn)登錄,以上的兩種登錄方式均瑤實(shí)現(xiàn)這個(gè)效果。很多用戶和泛微的實(shí)施團(tuán)隊(duì)會(huì)在OA的login.jsp上編寫單點(diǎn)登錄代碼。在login.jsp上編寫單點(diǎn)登錄代碼智能解決第一種登錄方式“通過頁(yè)面登錄進(jìn)OA”。而通過E-Message上的快捷方式進(jìn)入到OA是不能實(shí)現(xiàn)帆軟決策系統(tǒng)的單點(diǎn)登錄的。如果要實(shí)現(xiàn)兩種登錄方式的單點(diǎn)登錄,可以在泛微OA登錄后頁(yè)面上編寫單點(diǎn)登錄代碼。泛微OA登錄后頁(yè)面的jsp為“/ecology/wui/theme/ecology7/page/main.jsp”。

          第一步,引入js代碼:

          <script type="text/javascript" src="http://***.***.***.***:**/WebReport/ReportServer?op=emb&resource=finereport.js"></script>  

           


          第二步,獲取當(dāng)前用戶的登錄名和密碼的java代碼:

            String nodeSql ="select loginid,password from HrmResource where id =  " + user.getUID(); 

                  RecordSet.executeSql(nodeSql);
                  if (RecordSet.next()){
                          userpasswordstr = RecordSet.getString("password");     
                          loginidstr = RecordSet.getString("loginid");
                  }

          從上面的代碼可以很明顯的看到,這個(gè)和sql和rs的取值字段跟之前配置用戶同步信息對(duì)應(yīng)的表和字段是一樣的。

          第三步,編寫js代碼:

          var username =FR.cjkEncode("<%=loginidstr%>");  
          var password ="<%=userpasswordstr%>";
          password = password.toUpperCase();//把密碼小寫字母轉(zhuǎn)換成大寫字母
          var scr = document.createElement("iframe");                
          scr.src = "http://***.***.***.***:**/WebReport/ReportServer?op=touchfs&username="+username+"&__redirect__=false&password="+password; 

          這里是采用iframe的跨域單點(diǎn)登錄方式,所以在JS中需要?jiǎng)?chuàng)建一個(gè)iframe,然后在iframe上設(shè)置SRC。

          第四步,保存main.jsp,備份服務(wù)器的main.jsp,更新main.jsp。

          第五步,重新登錄OA,單點(diǎn)登錄成功。校驗(yàn)方式,在OA的瀏覽器上,新建一個(gè)頁(yè)簽,輸入“http://***.***.***.***:**/WebReport/ReportServer?op=fs”,如果出現(xiàn)如下圖,且登錄名為自己的用戶,則表示單點(diǎn)登錄成功。但是。。。還沒完。


          在泛微OA上配置決策系統(tǒng)入口

          完成了上述的配置,但是OA用戶通過什么方式進(jìn)入決策平臺(tái)呢?提供2個(gè)方式供參考。

          第一,用系統(tǒng)管理員配置自定義左側(cè)菜單。

          第二,設(shè)置用戶元素。

          以上3點(diǎn)完成后,F(xiàn)ineReport和OA的集成工作就大功告成了。



          主站蜘蛛池模板: 望谟县| 汤原县| 武汉市| 无锡市| 义乌市| 屏山县| 彩票| 黑水县| 新河县| 灯塔市| 临泉县| 湘潭市| 花莲市| 钟山县| 天镇县| 闽清县| 盱眙县| 孝昌县| 福建省| 长宁区| 繁峙县| 天全县| 宁津县| 元江| 潼关县| 连州市| 昌江| 洪湖市| 丰宁| 哈尔滨市| 澎湖县| 新余市| 西昌市| 衡水市| 岑巩县| 英吉沙县| 平阴县| 平果县| 浪卡子县| 长汀县| 新巴尔虎右旗|