1. 描述
一般在公司的系統中會有工資選項,在月底的時候就可點選查看當月的工資資訊,即定時的在每個月月底,將當前使用者當月的工資資訊掛載在指定的工資節點上,這個該如何實現呢?
2. 解決方案
在定時任務的本地任務中,有一個選項“除通用結果外,根據預設使用者組內的使用者單獨生成結果”,可以在此處勾選,在執行定時任務時,會根據參數$fine_username、$fine_role、$fine_position進行資料過濾,則在 schedule 資料夾的使用者資料夾下生成的 cpr 檔案內容是相應使用者的工資資訊。
3. 範例
在系統虛擬目錄樹 FRTest 下面有個工資表的節點,每個月月底的時候,可查看當前使用者該月的工資資訊。
3.1 範本準備
1)資料準備
在設計器中點選伺服器>伺服器資料集,建立一個內建伺服器資料集 staff,其內容如下圖:
注:由於需要將該使用者資訊同步到數據決策系統中,故只能使用伺服器資料集。
2)範本製作
建立一張範本,將伺服器資料集 staff 中的資料欄拖曳至儲存格中,並給 name 資料欄新增過濾條件,如下圖:
注:此處也可以透過過濾使用者的角色和職務來實現,分別使用對應的參數$fine_role、$fine_position。
已完成範本請參照%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\定時任務權限控制.cpt
3.2 使用者配置
點選管理系統>使用者管理,匯入 staff 資料集中的使用者,如下圖:
使用者匯入詳細請查看 匯入使用者。
3.3 建立定時任務
使用者配置好之後,點選管理系統>排程管理,第一步——基本設定,建立一個定時任務工資表,預設使用者組選擇“使用者-平台”,勾選全部使用者,如下圖:
第二步——調度週期,調度週期為每個月的最後一天 12 點執行,如下圖:
注:為了測試方便,這裏將執行頻率設為“只執行一次”。
具體新增程式請查看 排程管理範例-日報。
第三步——本地檔案,範本為上面建立的範本定時任務權限控制.cpt,勾選“除通用結果外,根據預設使用者組內的使用者單獨生成結果”,這裏的使用者組就是第一步裏設定的預設使用者組,如下圖:
注:若勾選“除通用結果外,根據預設使用者組內的使用者單獨生成結果”,那麼範本類型只支援“預覽”
這樣上面的範本,有過濾條件name=$fine_username,那麼在儲存 cpr 檔案時,會根據帳號來存檔,並實現過濾,定時任務執行完成之後,在%FR_HOME%\webapps\webroot\WEB-INF\schedule\檔案名稱\日期\時間 會生成使用者資料夾,資料夾名稱分別為預設使用者組裏的帳號,如,Anna 資料夾下的 cpr檔案在儲存之前就會先將$fine_username指派為 Anna,實現過濾之後再儲存,這樣就保證,該 cpr 檔案中只有 Anna 的資訊,當 Anna 登入系統的時候,掛載在FRTest 下面的工資表節點就指向該 cpr 檔案,那麼 Anna就只能看到自己的工資資訊了。
第四步——檔案處理,勾選“掛載平台”,在掛載平台標籤頁,掛載目錄選擇 FRTest,掛載名稱填寫每月薪資,如下圖:
點選提交即可,定時任務執行完成之後,在系統的虛擬目錄樹 FRTest 下面顯示使用者的工資表節點,當員工登入系統之後,點選工資表節點,即可看到自己的工資資訊。
3.4 cpr 節點權限分配
定時任務執行完成之後會生成 cpr 檔案,cpr 檔案掛載的虛擬目錄 FRTest 下面,那麼使用者登入系統查看該 cpr 檔案工資表的時候,首先需要有該節點的查看權限。
點選管理系統>權限管理-報表權限快捷配置,將 FRTest 整個資料夾的權限分配給技術支援整個部門,如下圖:
詳細的配置程式請查看 根據部門職位分配權限。
注:給使用者配置虛擬目錄樹的權限,如果將某個資料夾的權限分配給使用者角色,那麼之後新增在該資料夾下的新範本均會自動分配給該使用者角色。
3.5 效果查看
cpr 節點效果查看
用 Anna 的帳號登入系統,可以看到
目錄下面有一個工資表的節點,點開節點,可以看到範本中只顯示了 Anna 的工資資訊。同理,用其他幾個使用者的帳號登入後,點開工資表,均只能看到該使用者的工資資訊。