1. 描述
1)管理系統的節點只有在開啓了分級授權的情況下才能使用。
2)權限管理,去掉了所有部門、所有職務。
3)用戶的加密方式:如果以前用戶存的是明文,升上來以後,不再能登錄上了,只能去重置了。
4)升級後,權限配置半選狀态 升級後将沒有權限。
5)浏覽器兼容,平台只支持 IE9 及以上的(IE8 只兼容登錄與目錄看板功能,管理系統中的功能需要 IE9 及以上版本)。
6)單點登錄兼容:單點登錄的客戶升級到 10.0 要進行重新适配。
7)外置數據庫支持說明。
8)容器支持說明,10.0 支持的容器:
Tomcat7 及以上,( Tomcat7 編碼修改爲 UTF-8,Tomcat8 不需要修改)
JBoss6.0.0 及以上
WebLogic12c 及以上
WebSphere8.5.5.9 及以上
Jetty8.0 及以上
GlassFish3.0 及以上
Resin4.0.4 及以上
9)日志存儲抛棄了 HSQL,使用帆軟自主研發的 Swift 引擎進行替換
10)錯誤日志:進行了梳理,平台裏能看到大部分,會随着需求的增加而增加;另外在日志文件裏可以看到所有的日志。
11)插件兼容:好多插件需要用 10.0 版本。
12)XML 兼容:由於升級到了 Servlet3.0 标準所以,老的 web.xml 自定義的内容将不再兼容。
13)定時調度 9 升級 10,可能含有 8.0 的任務,升級後 8 和 9 的任務都可以編輯。
升級上來的用戶組數據構成(優先級排序):
選了移動端推送的用戶作爲用戶組
選了郵件推送的用戶(角色除外)作爲用戶組
選了下拉用戶的作爲用戶組。
任務重新入庫後,開始執行時間推後1小時,避免在升級過程中任務立即執行一次。(這個對任務的執行不會有影響)
8.0 的任務,設置了明細頻率執行,升級後,會轉換成 cron 表達式形式,執行周期不變,不影響使用
14)2018-07-31 的 JAR 包版本不支持移動端(APP/HTML5)
15)HTML 解析暫不支持 table
16)$fr_username、$fr_authority、$fr_userposition,在 10.0 裏分别對應 $fine_username、$fine_role、$fine_position,這 3 個都做了兼容
17)JS 進行頁面跳轉:9.0 中 JS 頁面跳轉 ${servletURL}?reportlet=WorkBook2.cpt ,在 10.0 中使用 FR.doHyperlinkByPost 進行 POST 傳參可能會導緻參數無法正常傳遞 ,需将 reportlet 改爲 10.0 中的 viewlet 。
18)9 升級 10 版本後,之前的 URL 格式可以自動兼容。
19)9 升10 ,FineDB 表結構會有較大差異,所以涉及到 finedb 表的查詢語句和公式函數可能會失效。
20)9 升10 後,平台訪問 URL 發生變化,需要訪問 9.0 默認的 URL 或10.0 支持的 URL ,如本地服務器可修改爲:http://localhost/WebReport/ReportServer?op=fs 或 http://localhost/WebReport/decision 。
2. 移動端兼容說明
9.0 中進行微信/釘釘集成後,通過升級工具進行升級說明:
1)升級工具要求采用 2018 年 11 月 12 号及之後的版本。
2)升級後,App 端服務器地址需手動修改爲 10.0 平台地址。
3)升級後微信/釘釘的配置會保留。但由於 10.0 平台訪問路徑調整,升級後需要打開微信/釘釘管理界面,将服務器地址修改爲 10.0 平台地址。
4)打開微信/釘釘管理>應用快捷配置,重新生成鏈接,進入微信/釘釘管理後台修改新的鏈接。
5)9.0 中開啓模板權限時訪問單個模板需要用 WeiXinServer,10.0 中已不再需要,直接采用生成的模板鏈接即可,注意修改微信管理後台綁定的模板鏈接及定時調度推送的自定義鏈接。
6)第三方 App 集成 H5 時,如果調用平台 URL,路徑格式爲 :http://localhost:8075/webroot/decision/url/mobile,調用單張模板仍然爲路徑後加上op=h5參數。
3. 模板兼容說明
若 FR10.0 繼續沿用 FR9.0 設計出來的模板,由於文件路徑及訪問路徑的調整,部分模板需要單獨處理,下面列舉具體操作。
3.1 文件路徑
10.0 中調整了各個文件的路徑,文件對比如下圖所示:
在模板中進行引用時,需要修改爲新的地址,詳情參考:引用 CSS
3.2 接口說明
9.0 中 JS 頁面跳轉鏈接地址爲:${servletURL}?reportlet=WorkBook2.cpt
在 10.0 中使用FR.doHyperlinkByPost進行 post 傳參可能會導緻參數無法正常傳遞 ,需将 reportlet 改爲 10.0 中的 viewlet。
詳情參見:組織樹傳參
4. 圖表兼容說明
4.1 地圖文件的處理
10.0 的地圖調整了目錄結構,新增「world」目錄,且置於「中國」目錄之上,形成鑽取關系,如下圖所示:
而用戶制作的 9.0 模板中地圖路徑爲類似的絕對路徑:'assets/map/geographic/中國/上海市.json'
按照 10.0 中的默認目錄結構,模板中地圖路徑必須爲'assets/map/geographic/world/中國/上海市.json'才可正常識别。
以下提供兩種圖表升級方案:
方案一:使用9-10升級工具升級
1)2019 年 8 月 16 日之前升級的用戶,需要下載并替換該地圖文件%FR9.0_HOME%\WebReport\WEB-INF\assets\map下的geographic文件。如下圖所示:
點擊下載文件: geographic.rar
2)2019 年 8 月 16 日之後升級的用戶,無需進行任何處理,升級工具會自動升級地圖文件
方案二:手動遷移模板
直接下載的 10.0 exe 進行安裝之後,遷移 9.0 模板至 10.0 工程目錄下後,還需将 9.0 地圖目錄(assets/map/geographic下以及assets/map/image下的文件)遷移到 10.0 同一目錄下。
4.2 老圖表的相關說明
關於老圖表需注意以下幾點:
1)10.0 不再提供新增老圖表的功能,不過老模板中已經存在的老圖表依然支持設置和預覽。
切換圖表類型的下拉框灰化。其餘數據,樣式等設置項可正常設置并生效。
注:如需使用舊圖表,請安裝 圖表(舊版本)插件
老圖表兼容到 10.0 後,取消圖表切換的新增按鈕。圖表切換中已經存在的各圖表,數據、樣式等設置項可正常設置并生效。
2)10.0 不再支持位圖地圖插件。
5. 插件兼容說明
5.1 官方插件
官方插件 | 兼容狀态 |
---|---|
FineBI數據轉移 | 9.0 版本有此插件,10.0 版本廢棄此插件 |
決策平台使用infromix | |
浏覽器兼容性設置 | |
本地軟件打印 | |
平台數據遷移 | |
FineIndex數據集 | |
登錄決策平台增加驗證碼功能 | |
阿裏雲OTS數據集 | |
集群部署 | |
分級權限管理 | |
輸出離線HTML報表 | |
決策平台升級更新 | 9.0 版本使用插件,10.0 已内置此功能 |
掃碼控件 | |
多級上報集成 | |
報表自适應插件 | |
内置推送插件 | |
模板版本控制 | |
設計器更新升級 | |
水印插件 | |
高級系統監控 | |
工程遷移 | 未兼容,需下載對應版本插件 |
自定義OdbcDialect | |
星環直連 | |
只支持中文搜索的下拉框控件 | |
自定義JtdsDialect | |
權限導出 | |
郵件排序 |
5.2 第三方插件
第三方插件 | 兼容狀态 |
---|---|
圖标可自定義插件 | 9.0 版本有此插件,10.0 版本廢棄此插件 |
第三方插件 | 主題類插件無法兼容,需下載對應版本插件 |
藍綠主題 | |
天空主題 | |
平台主題切換 | |
Mac扁平主題 | |
酷黑側滑導航 | |
Metro主題 | |
酷炫主題 | |
Varied Minton | |
琉璃主題 | |
青綠主題 | |
Simple主題 | |
Material Design 主題 | |
酷黑主題 | |
嵌入部署主題 | 未兼容,需下載對應版本插件 |
思維導圖 | |
韋恩圖 | |
馬賽克圖表 | |
卡通折線圖 | |
彩色3D折線圖 | |
3D裏程碑 | |
登錄增強接口 | |
漸變折線圖 | |
導出OFD | |
數據查詢事件版 | |
自定義模板目錄 | |
自定義郵件發送人 |
6. 開發兼容說明
相關功能 | 9.0 寫法 | 10.0 新寫法 |
---|---|---|
國際化 | Inter.getLocText(key) | 設計器:com.fr.design.i18n.Toolkit.i18nText(key) 服務器:InterProviderFactory.getProvider().getLocText(key) |
日志打印方式 | FRLogger.getLogger() FRContext.getLogger() FRLoggerFactory.getLogger() | FineLoggerFactory.getLogger() |
日志接口 | FRLoggerProvider | FineLoggerProvider |
模板訪問路徑 | ?reportlet=xxx.cpt?formlet=xxx.frm | /view/form?viewlet=xxx.frm/view/report?viewlet=xxx.cpt |
env 接口 | Env | Workspace |
env 獲取方式 | FRContext.getCurrentEnv() | WorkContext.getCurrent() |
session 信息類名修改 | SessionIDInfor | SessionIDInfo |
session 操作類 | SessionDealWith | SessionPoolManager |
獲取當前登錄用戶方式 | FSAuthentication/getUserInfo() | LoginService.getInstance().getCurrentUserNameFromRequest(req) |
管理員的判斷 | FSAuthentication/isRoot() | 需要通過獲取用戶 id 并和 AuthorityStaticItemId.SUPER_USER_CUSTOM_ROLE 比較 |
配置文件的寫法修改 | 繼承 XMLFileManager 讀取和寫入 xml | 繼承 Configuration 寫入數據庫和從數據庫讀取 |
sessionid 的傳送 | 在前台通過 post 方式傳遞 sessionid | 将 sessionid 添加到 header 中傳遞,也可以使用 get 方式傳遞 sessionid |
平台消息接口 | com.fr.base.platform.msg.Message | com.fr.decision.system.bean.message.Message |
系統消息發送 | SystemMessageDeal.getInstance().save(message) | SystemContext.getInstance().getMessageController().saveMessage(message) |
module 啓動方式 | ModuleContext.startModule("XXModule.class") | 定義 activator 的方式,并将聲明的 activator 注冊到 xml 中 |
參數 map 轉字符串 | FRLogger.createParamString(para) FRLogger.createParamString(para,excludeParas) | TextUtils.createParamString(para) TextUtils.createParamString(para,excludeParas) |
後台 http 連接 | HttpClient(String url) HttpClient(String url,HashMap<String, String> para) HttpClient(String url, HashMap<String, String> para, boolean encode) | HttpToolbox.get(url) HttpToolbox.appendQuery(prefix, new String[]{xxx}, new String[]{}) |
平台所有配置郵箱用戶獲取 | ConfigManager.getProviderInstance() .getEmailManager().getAllMailUsers(true) | UserService.getInstance().getAllUsers(currentUsername, userSearchBean, true) userSearchBean 是用戶搜索附加的一些屬性(分頁、關鍵字、部門職位等) |
多報表訪問 | ({reportlet:/k1.cpt},{reportlet:/k2.cpt}) | encodeURIComponent("[{reportlet:k1.cpt}, {reportlet:k2.cpt}]") |
插件訪問數據庫的方式 | 自定義 DAO ,可參考 MessageDataAccessObject | 使用 DBAccessProvider 注冊 DAO |
平台請求處理 | 通過注冊 service 和 action 實現請求的分發和處理 | 使用 spring 通過添加 @Controller 和 @RequestMapping 注解實現請求的映射和處理 |