AP資料集提供了直接取數的方法,但自由度不高,且頻繁的取數會給SAP系統帶來很大的額外壓力,所以在部分情況下,客戶需要將資料同步到另外的資料庫中,再從資料庫中取數,也就是說將取數成功的資料集中的資料作為輸入流,轉換到其他的資料庫中去,以後取數直接從其他資料庫中取數,不需要再去操作SAP,由於資料同步是對於所有模板來說的,所以進行資料同步的SAP資料集必須為伺服器資料集,而且,使用資料同步會產生一個問題,如果SAP系統中資料變化,那麼FR裡面的轉換就得執行一次來保證資料的一致性,所以報表開發軟體FineReport提供了SAP同步任務的設定頁面,類似於定時器,定時執行SAP轉換。
工具/原料
報表開發軟體FineReport7.1.1
大小:148.2M 適用平臺:windows/linux
方法/步驟
新建SAP伺服器資料集>新建其他資料庫表>新建SAP資料同步>SAP定時同步設定
新建一個簡單的SAP伺服器資料集,然後將資料同步至FineReport內建資料庫FRDemo中。
選擇伺服器>伺服器資料集,新建一個SAP資料集SAP同步,如下圖:
access資料庫表建立
FRDemo資料庫中沒有與資料集SAP同步列一致的表,所以我們首先新建一張access資料庫表SAP,裡面有5個欄位,欄位名字與SAP資料集中資料列名字保持一致,如下圖:
資料轉換
新建好資料集之後,點選伺服器>SAP資料同步,點選“+”按鈕,新增一個轉換,如下圖:
輸入輸出
在SAP資料集中選擇剛剛新建的伺服器資料集SAP同步,在輸出面板中資料庫選擇FRDemo,資料庫表選擇SAP,如下圖
注:輸入的SAP資料集只能是伺服器資料集。
轉換型別以及關係
轉換型別分為四種:插入提交、智慧提交、更新提交、刪除提交,同填報報表中的提交型別一致,意義也一致
主鍵的選擇也填報報表的主鍵選擇意義一致。
輸入值型別分為:資料列、公式、字串、整形、雙精度型、日期、布林型,輸入值對應的是往其他資料庫中輸入的資料,可以是SAP資料集中的資料列,也可以是公式、函式、固定值等等,但是不能有單元格。
輸出列為輸出資料庫中表對應的欄位,輸入值與輸出列一一對應。
資料型別選擇智慧提交,輸入值型別全部選擇SAP資料集中的資料列,並與access資料庫中的欄位一一對應,如下圖:
資料列
輸入值型別選擇資料列,然後點選設定按鈕,進入資料列設定介面,該介面與單元格資料列使用類似,包括3個屬性,基本、過濾和高階,如下圖:
基本:在相應的SAP資料集中選擇對應的資料列作為輸入值,並可對資料列進行簡單的分組,列表,彙總設定。
過濾:對輸入值進行一定條件的過濾,與單元格過濾使用方法一致。
高階:對輸入值進行排序設定和自定義顯示設定,與單元格中使用方法也一樣,排序請檢視高階排序。
為5列資料分別新增好輸入值輸出列之後,如下圖:
如果有多個輸入值輸出列,每一行間的資料都是一對一,一一對應的關係。在存在資料列的情況下,上方的資料列是下方資料列的”父格”,及預設存在上方的資料列做為下方資料列的過濾條件,可以在設定的SAP資料集的基礎上,進行一定意義的彙總等計算後再入庫。
注:如果輸入值選擇公式,公式裡面需要引用到其他資料列的資料作為公式計算的引數,可通過$syn_column1引數引用第一列(第一行輸入值)的值,$syn_column2引數引用第二列的值,以此類推。比如說:上面的截圖中,如果第二行,也就是輸入值中的的第二個輸入值,使用的是公式,需要計算第一列資料也就是第一個輸入值加5之後的結果,那麼公式為=$syn_column1+5。
點選確定,SAP資料同步的轉換就已經設定好了。
同步任務設定
建立好SAP資料同步之後,在瀏覽器中輸入進入同步設定介面,進入時,必須經過超級管理員的驗證,也就是說會先跳轉到管理平臺的登入頁面進行登入,登入完成之後才會進如SAP定時同步設定介面,如下圖:
第一部——基本設定
點選新增同步任務按鈕,新增一個同步任務,進入基本設定介面,給轉換1新增一個同步任務,任務名稱也為轉換1,點選新增按鈕,新增轉換,如下圖:
第二步——時間表
點選下一步,進入第二步時間表的設定介面,我們讓該任務每天早上9點執行一次,如下圖:
任務管理和執行監控
點選完成,如下圖。可在任務管理中檢視所有新增的同步任務以及執行狀態,也可切換到執行監控查詢各個同步任務的執行結果,執行監控同定時器的執行監控是一樣的。此次SAP任務同步的設定,該任務會在每天上午九點執行一次,也就是說每天上午9點,FRDemo資料庫中的SAP表都會跟伺服器資料集SAP同步轉換一次,保持資料一致性。
結果檢視
當同步任務被執行一次之後,access資料庫中的SAP表裡面就會把SAP資料集中的資料全部導進去,如下圖: