簡單實例
有如下數據:
Sales | Sales Group | Currency | Sales Price |
---|---|---|---|
APPLE | gp-01 | EUR | 1,00 |
PEAR | gp-02 | EUR | 2,00 |
ORANGE | gp-01 | EUR | 3,00 |
我們要實現的功能是:
- 創建一個帶 variable 的 query
- 這個 variable 是讓我們輸入貨幣的種類:EUR,JPY,CNY……
- 之後 result 顯示對應貨幣種類的 price
這裏我們是 variable in the currency translation type
步驟
創建 InfoCube
- Sales 是一個 Characteristic InfoObject ZS_SALES
- Sales Group 是一個 Characteristic InfoObject ZS_SALEGP
- Sales Price 是一個 Key Figure InfoObject ZS_PRICE 類型選擇 amount 並於 0CURRENCY 相關聯
用 Report 往 InfoCube 裏面 generate records
T-Code: SE38 -> CUBE_SAMPLE_CREATE
選擇 Ready-For-Input ALV,運行後輸入 data
之後運行,系統就會產生我們設定的數據
- 去 InfoCube 裏面可以看到 generated 的 records
使用 Query Designer 創建 Query
接下來就比較重點啦!
這個時候我們的 source currency 就是我們輸入的 EUR
我們的 target currency 由用戶在執行這個 query 的時候輸入 variable 來決定
source currency 到 target currency 之間的匯率轉換,這裏先用標準的平均匯率轉換(比較複雜的是實時匯率轉換,這個以後研究)
要想實現這個 variable currency 的功能需要兩個條件
- 針對 0CURRENCY 定義一個 variable
- 針對 ZS_PRICE 這個 Key Figure 使用相關 currency translation type
針對 0CURRENCY 定義一個 variable
創建一個 variable
Detail 信息的設置可以參考如下:技術名稱,是否輸入單個值,強制輸入與否等等。
之後保存這個 variable
創建 currency translation type
T-Code: RSCUR 創建一個新的 currency translation type SKCTT01
Exchange Rate 這個 tab 頁我們選擇比較一般的 M,意思就是 standard translation at average rate
Currncy 這個 tab 頁,因爲 target currency 來自 variable SKVAR01,所以這樣填寫
保存這個 currency translation type
回到 Query 使用 SKCTT01
選中 Key Figures 的 Sales Price,在 Properties 界面,選 Conversion tab,之後選擇我們剛剛保存的 SKCTT01
之後保存這個 Query
這樣這個 Query 就定義完了,我們看看執行效果。
結果
在 AO 打開這個 query 的時候會彈出 variable 界面,讓我們輸入 currency 類型,這裏我輸入人民幣 CNY
結果如下,系統把歐元轉換成人民幣了
我們再次打開 prompt 界面,輸入日元 JPY
結果如下,系統把歐元轉換成日元了
以上。