1. 程式人生 > >FineBI如何在web頁面中嵌入式整合

FineBI如何在web頁面中嵌入式整合

1. API嵌入整合

1.1 描述

FineBI是基於B/S架構的瀏覽器/伺服器模式,現在使用者開發的系統基本上趨向於B/S架構的瀏覽器/伺服器模式,因此有些頁面完全可以直接採用web頁面嵌入式整合的簡易方式完成整合。而且些因為框架的原因可以採用json的呼叫方式進行整合。通過整合,使用者從自己的系統通過鏈節使用瀏覽器訪問FineBI的伺服器,從而在自己系統內呼叫BI的web頁面,來實際嵌入式整合。這種整合通常會有兩種方式:一種是直接使用URL鏈節,另一種方式是通過js的呼叫json來獲得分析模板。下面先提供各部分的URL連結介面、json格式的API

1.2 API外掛

FineBI的各種介面開放是以外掛的形式來實現的,同時通過外掛來實現跨域的整合。因此在整合前,要在

FineBI的系統中,安裝API外掛。下載好後,在BI管理系統的外掛管理中,選擇本地安裝即可。安裝完成,重起BI伺服器即可。

2. 公共API

2.1 登入API

登入的API介面為?op=api&cmd=bi_login&bi_username=name&bi_password=password&callback=myfunction

其中bi_username=name與bi_password=password中“name”、“password”是使用者名稱與密碼,在瀏覽器上以此API可以返回值為“Login success”如下圖:

 

注:當前的URL是由“佈署路徑”+“介面”;其中“佈署路徑”通常為http://localhost:埠號/工程名/ReportServer,“介面”為 ?op=fr_bi&cmd=bi_init&id=9&createby=-999#  

以下均相同,不再贅述。

2.2 模板分析

(1)URL介面

單個模板分析通常會被整合到入口網站上,整合模板析的API可以直接使用URL使用iframe框架來整合。其URL可以直接在瀏覽器的控制檯來查詢。下面簡介一下,控制檯查詢方式。按F12開啟控制檯,使用選擇器,放在右上角點選,可以跳到該介面的框架;如圖:

 

從該框架向上找就可以找到URL,其iframe的src值即是該URL

 

(2)引數格式

其API是?op=fr_bi&cmd=bi_init&id=模板id&createBy=建立者id。

2.3 新建分析

新建分析的API?op=api&cmd=add_report&reportName=NewReport

其中repoartName為引數,NewReport為新建分析的名子。在瀏覽器上以此API訪問,返回值為“reportId”


2.4 我建立的

(1)介面

我建立的是指當前使用者建立的所有即時分析都會顯示在我建立的列表中,URL連結API介面如下:

?op=api&cmd=get_page_created_by_me,其效果如下:

 

(2)JSON返回值

我建立的API?op=fr_bi&cmd=get_folder_report_list在瀏覽器上返回當前登入使用者的我建立的模板分析的詳細資訊(包括資料夾和模板),其中還包括該模板的分享資訊。

3. 僅非管理員API

3.1 分享模板

分享模板的是指其他使用者將即時分析分享給當前使用者。

注:分享模板這個功能只有非管理才能有,因此只有在非管理員的介面才會有。

3.2 分享給我的

分享給我的是非管理員特有的,是非管理員之間分享模板後,將分享模板放置的檔案目錄。其API介面?op=api&cmd=get_shared_to_me_reports,通過該API可以獲得得當前使用者的所有分享模板的資訊。

3.3 已分享模板

當然某張模板被分享給不同的人,也可以通過API來獲得。該API為?op=api&cmd=get_shared_users_by_report&createdBy=模板建立者ID&reportId=模板ID,通過該API可以獲得,該ID的模板被分享給哪些人。其中引數為:createByID和reportid。

注:其中模板ID與建立人ID可以通過當前人我建立的API獲得。

4. 僅管理員可用API

4.1 所有模板

在管理員介面,管理員可以通過“所有模板”來管理整個平臺所有使用者設計的模板分析。

4.1.1介面

介面的API為?op=api&cmd=get_page_all_reports效果如下圖:

 

 4.1.2 JSON

JSON的格式的API為?op=api&cmd=get_all_template_4_admin,其返回值為所有模板資訊。

4.2 所有使用者資訊

在整合的時候,使用者想要獲取所有的使用者、部門職位、角色等資訊時,可以通過該API介面返回json值來獲取。該API

?op=api&cmd=get_all_reports_data,如下圖:

 

4.3 報表管理目錄

除了可以通過輸入模板id返回模板資訊外,我們還可以通過介面?op=fs_main&cmd=module_getrootreports&id=-1獲取到報表管理目錄的url。

4.4 資料配置介面

資料配置是BI資料管理的核心介面,即是業務包的管理介面,當前我們的業務包管理介面可以直接通過URL來整合進來。

其API為?op=fr_bi_configure&cmd=init_configure_pane,效果如下圖:

 

4.5 全域性更新

Cube全域性更新,顧名思義,是指Cube中的資料全部都更新一遍,包括所有業務包中的所有的表和欄位?op=api&cmd=update_cube,以便於直接整合到自己的系統中進行全域性更新操作。其返回值結果為:function({"result":"global cube updated success!"});

注:在url後面加上&bi_username=使用者名稱&bi_password=密碼,可實現在非登入情況下全域性更新。 

4.6 單表更新

單表更新,顧名思義,就是說cube更新時,單獨將其中某一張表進行更新,其他表不更新。除了在“單表更新設定”中進行更新外,FineBI還開了相應的介面

?op=api&cmd=update_cube&packageName=業務包名字&tableName=轉義名  

以便於直接整合到自己的系統中進行單表更新操作。URL訪問地址如下:


注:(1)單純只有packageName時,則是對當前業務包中所有表進行更新。

(2)在url後面加上&bi_username=使用者名稱&bi_password=密碼,可實現在非登入情況下單表更新。 
(3)這裡的單表更新是預設做的全量的更新,不做增量更新。

4.7 單個模板的詳情

管理員可以通過單個模板的模板ID與建立人的ID可以獲得當前模板的詳細資訊。其API為?op=api&cmd=get_template_by_ids&ids=[{reportId: 1, createBy: -999}]。

5. 總結

1、FineBI操作細分的四個部分:建立業務包、新建分析、我建立的和分享給我的中,一般來說,只有建立業務包才是管理員操作,其他的三項是非管理員操作,故,在使用API進行整合的時候要注意建立業務包API連結節點只能對管理員可見,如果對其他使用者可見,那麼,該使用者登入系統之後,點選節點,不會有任何反應,如果一定要給其他使用者以建立業務包的許可權,首先需要將配置BI資料來源的許可權給該使用者。

2、上述所有介面中的${servletURL}表示http://localhost:埠號/工程名/ReportServer,如果使用者系統跟FineBI在同一系統中,可以使用FR.ServletURL獲取,如果FineBI也是使用者系統,那麼可以直接使用${servletURL},否則,需要寫絕對路徑。