代码改变世界

关于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 阴。