关于QUERY的一些体会
2012-08-10 14:50 VincentMK 阅读(523) 评论(0) 编辑 收藏 举报1、如果字段为CURR类型,在除以价格单位获取单价时,定义字段类型,不可以定义为CURR类型,
如下面这种定义方式 data: unitprice LIKE VBAP-NETPR. 在得到单价时会多除去100(此处是根据系统设定的)
所以应该定义为
data: unitprice type p decimals 4.
unitprice = VBAP-NETPR / VBAP-KPEIN."获取单价
2、如果在处理不同币别转换时,使用FM:CONVERT_TO_LOCAL_CURRENCY,需要注意此方法中的所有参数必须是变量,不可使用常量,
否则出现不可预知的结果。
DATA: lc LIKE t001-waers ,"Company Codes-Currency
fc LIKE t001-waers,
ty LIKE tcurr-kurst ,"Exchange Rate
unitprice type p decimals 4.
unitprice = VBAP-NETPR / VBAP-KPEIN.
lc = 'CNY'.
ty = 'M'.
fc = LIKP-WAERK.
CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
EXPORTING
DATE = LIKP-LFDAT "汇率对应的日期
FOREIGN_AMOUNT = unitprice "外币金额
FOREIGN_CURRENCY = fc "外币类型
LOCAL_CURRENCY = lc "本币类型
TYPE_OF_RATE = ty " 固定值M
IMPORTING
LOCAL_AMOUNT = UNITPRICEINCNY ”转换为本币输出
EXCEPTIONS
NO_RATE_FOUND = 1
OTHERS = 2 .
3、找字段时如果遇到一些不常用的TABLE,使用ST05去追踪是个非常不错的方法,在SQL TRACE里可以看到所有的TABLE,仔细对比几次,就能找到。
当然需要耐心了,没办法的。没耐心就别干这个活了。
4、做好一个QUERY以后,需要多次测试,因为你很可能没有抓取到最合适的栏位,或者TABLE之间的JOIN有一些问题。
测试方法就是在SE16N里单笔测试对比你的QUERY。当然必须要懂一些业务流程,否则做起来真的很苦。
5、QUERY也可以在不同系统间传输,SQ02点击下面的小货车也就是Transports
我采用这种方式去做,先download,然后再upload,也比较简单,无脑的操作。
下图3位置填入你infoset和query的名称,
2位置test run是测速运行,没问题就去掉此勾。
将文件保存后,进入你的不同client,再去upload,步骤同上。
先写这些,以后想到再续吧。
2012.08.10 阴。