简单实例
有如下数据:
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
结果如下,系统把欧元转换成日元了
以上。