Skip to Content
0
Former Member
Mar 23, 2009 at 07:42 AM

A question about 'BAPI_CUSTOMERCONTRACT_CHANGE'

120 Views

Hi experts,

I want to use 'BAPI_CUSTOMERCONTRACT_CHANGE' to set the cancellation reason on a contract.when I execute below coding, the return message tell me that is successfully.But according to VA43,I found the cancellation reason hasn't changed.Please give me some advice.Many thanks!Below is my coding.

data: g_HEADER_IN type BAPISDH1,

g_CONTRACT_HEADER_INX type BAPISDH1X,

g_CONTRACT_DATA like table of BAPICTR,

wa_CONTRACT_DATA like BAPICTR,

g_CONTRACT_DATA_INX like table of BAPICTRX,

wa_CONTRACT_DATA_INX like BAPICTRX,

g_return like table of BAPIRET2,

wa_return like BAPIRET2.

data: contractitemin LIKE bapisditm OCCURS 0 WITH HEADER LINE,

contractiteminx LIKE bapisditmx OCCURS 0 WITH HEADER LINE.

g_CONTRACT_HEADER_INX-UPDATEFLAG = 'U'.

contractitemin-itm_number = '000010'.

APPEND contractitemin.

contractiteminx-itm_number = '000010'.

contractiteminx-updateflag ='U'.

APPEND contractiteminx.

wa_CONTRACT_DATA-ITM_NUMBER = '000010'.

wa_CONTRACT_DATA-CANCREASON = 'B'.

wa_CONTRACT_DATA-CANC_R_DAT = sy-datum.

wa_CONTRACT_DATA-R_CANC_DAT = sy-datum.

append wa_CONTRACT_DATA to g_CONTRACT_DATA.

wa_CONTRACT_DATA_INX-ITM_NUMBER = '000010'.

wa_CONTRACT_DATA_INX-UPDATEFLAG = 'U'.

wa_CONTRACT_DATA_INX-CANCREASON = 'X'.

wa_CONTRACT_DATA_INX-CANC_R_DAT = 'X'.

wa_CONTRACT_DATA_INX-R_CANC_DAT = 'X'.

append wa_CONTRACT_DATA_INX to g_CONTRACT_DATA.

data: g_salesnumber like BAPIVBELN-VBELN.

g_salesnumber = '0030029885'.

CALL FUNCTION 'BAPI_CUSTOMERCONTRACT_CHANGE'

EXPORTING

SALESDOCUMENT = g_salesnumber

CONTRACT_HEADER_IN = g_HEADER_IN

CONTRACT_HEADER_INX = g_CONTRACT_HEADER_INX

TABLES

RETURN = g_return

CONTRACT_ITEM_IN = contractitemin

CONTRACT_ITEM_INX = contractiteminx

CONTRACT_DATA_IN = g_CONTRACT_DATA

CONTRACT_DATA_INX = g_CONTRACT_DATA_INX.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

loop at g_return into wa_return.

write: wa_return-MESSAGE,/.

endloop.