之前有个程序,为了帮助用户分摊预制凭证差异的。在程序中调用了BAPI_INCOMINGINVOICE_CHANGE这个BAPI,起先用的还是蛮正常的,某天用户抱怨说这个程序会报ABAP RUNTIME ERROR,于是找到BASIS调出日志,一看是个COMPUTE_INT_PLUS_OVERFLOW
的错误。找到开发顾问一瞧,发现是个循环的地方没弄好,在某些极端情况下死循环了,造成某个计数器溢出。
这个问题倒也容易,三下五除二就搞定了。后来我让用户做测试,用户说这次系统报了一个M8332的错误,“Planned delivery costs for PO item & & incorrectlydefined”。
找啊找,找了几个SAP的NOTES,1148218,里边说要把PATCH LEVEL升一下。和BASIS商量一下,发现这个打PATCH还不是个容易的事情,就怕打了之后出现一些新问题。于是要求用户给SAP发MESSAGE,在测试环境做好测试数据提供给SAP那里。
后来SAP给了一个回复:
==================================================================================================
According to our standard design, as you post, park or change an invoicefor planned delivery costs using following function modules:
BAPI_INCOMINGINVOICE_CREATE
BAPI_INCOMINGINVOICE_PARK
BAPI_INCOMINGINVOICE_CHANGE
you should fill either the fields Level Number (COND_ST_NO) and Condition Counter (COND_COUNT) or the field Condition Type (COND_TYPE) into BAPI interface table ITEMDATA, but not fill COND_ST_NO, COND_COUNT and COND_TYPE together into ITEMDATA.
==================================================================================================
让开发顾问按照这个提示去修改输入参数,果然管用,但是奇怪的是,这个 ITEMDATA的数据是用BAPI_INCOMINGINVOICE_GETDETAIL取到的,居然其中有些参数不能一起作为输入参数。
并且这个BAPI的错误,在正式系统没有报错,但是BASIS又说2个系统的版本是一样的。这还是个迷。
=================================================
2012.05.11更新
今天看到有个puber问我究竟改了哪些参数,其实那个NOTES写的挺清楚了,就是 COND_ST_NO, COND_COUNT and COND_TYPE这3个字段不能同时赋值。
为了验证我的理解,我翻出程序看了一下,有如下代码:
LOOP AT IT_ITEMDATA .
CLEAR IT_ITEMDATA -COND_TYPE .
MODIFY IT_ITEMDATA TRANSPORTING COND_TYPE .
ENDLOOP .
===============================================================
=================================================
2012.05.28更新
用户又遇到这个问题 M8 332,暂时只能让开发顾问去debug一下看看。
再补一个中文版的消息描述:计划交货成本的定义不正确。
看来那个NOTES:1148218是要打上去了。
目前有问题的系统的这个组件的版本是600 SAPKH60014
===============================================================
这个问题倒也容易,三下五除二就搞定了。后来我让用户做测试,用户说这次系统报了一个M8332的错误,“Planned delivery costs for PO item & & incorrectlydefined”。
找啊找,找了几个SAP的NOTES,1148218,里边说要把PATCH LEVEL升一下。和BASIS商量一下,发现这个打PATCH还不是个容易的事情,就怕打了之后出现一些新问题。于是要求用户给SAP发MESSAGE,在测试环境做好测试数据提供给SAP那里。
后来SAP给了一个回复:
==================================================================================================
According to our standard design, as you post, park or change an invoicefor planned delivery costs using following function modules:
BAPI_INCOMINGINVOICE_CREATE
BAPI_INCOMINGINVOICE_PARK
BAPI_INCOMINGINVOICE_CHANGE
you should fill either the fields Level Number (COND_ST_NO) and Condition Counter (COND_COUNT) or the field Condition Type (COND_TYPE) into BAPI interface table ITEMDATA, but not fill COND_ST_NO, COND_COUNT and COND_TYPE together into ITEMDATA.
==================================================================================================
让开发顾问按照这个提示去修改输入参数,果然管用,但是奇怪的是,这个 ITEMDATA的数据是用BAPI_INCOMINGINVOICE_GETDETAIL取到的,居然其中有些参数不能一起作为输入参数。
并且这个BAPI的错误,在正式系统没有报错,但是BASIS又说2个系统的版本是一样的。这还是个迷。
=================================================
2012.05.11更新
今天看到有个puber问我究竟改了哪些参数,其实那个NOTES写的挺清楚了,就是 COND_ST_NO, COND_COUNT and COND_TYPE这3个字段不能同时赋值。
为了验证我的理解,我翻出程序看了一下,有如下代码:
LOOP AT IT_ITEMDATA .
CLEAR IT_ITEMDATA -COND_TYPE .
MODIFY IT_ITEMDATA TRANSPORTING COND_TYPE .
ENDLOOP .
===============================================================
=================================================
2012.05.28更新
用户又遇到这个问题 M8 332,暂时只能让开发顾问去debug一下看看。
再补一个中文版的消息描述:计划交货成本的定义不正确。
看来那个NOTES:1148218是要打上去了。
Affected Releases
|
Correction delivered in Support Package
|
目前有问题的系统的这个组件的版本是600 SAPKH60014
===============================================================
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/1605/viewspace-661600/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/1605/viewspace-661600/