01-25-2007 2:13 AM
Hello Gurus,
I am trying to update a custom field for sales order. The field name is zfield1 in vbak. The field is added to vbakkom, vbakkomx, vbakkoz, vbakkozx, BAPE_VBAK, BAPE_VBAKX. I guess i need to use the EXTENSIONIN table to populate this field's values to change it with the BAPI. But I not sure exactly how to populate the fields. Can someone tell me how exactly i need to do this?
Also the documentation says fill Extensionin this way.
STRUCTURE VALUEPART1 1234561234567890123
BAPE_VBAP 0000004711000020 XYZ
BAPE_VBAPX 0000004711000020 X
What is the 1234561234567890123? Is it a field?
Thanks,
KB
01-25-2007 2:17 AM
Hi,
Check this example..I am updating the VBAP field..Instead you can replace it for VBAK..
PARAMETERS: P_VBELN TYPE VBAK-VBELN.
DATA: T_LINE LIKE BAPISDITM OCCURS 0 WITH HEADER LINE.
DATA: T_LINEX LIKE BAPISDITMX OCCURS 0 WITH HEADER LINE.
DATA: T_EXTEN LIKE BAPIPAREX OCCURS 0 WITH HEADER LINE.
DATA: T_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.
DATA: BAPE_VBAP LIKE BAPE_VBAP.
DATA: BAPE_VBAPX LIKE BAPE_VBAPX.
DATA: ORDER_HEADERX LIKE BAPISDH1X.
ORDER_HEADERX-UPDATEFLAG = 'U'.
T_LINE-ITM_NUMBER = '000010'.
APPEND T_LINE.
T_LINEX-ITM_NUMBER = '000010'.
T_LINEX-UPDATEFLAG = 'U'.
APPEND T_LINEX.
BAPE_VBAP-VBELN = P_VBELN.
BAPE_VBAP-POSNR = '000010'.
<b>BAPE_VBAP-<b>YYFREETEXT</b> = '02'.</b>
T_EXTEN-STRUCTURE = 'BAPE_VBAP'.
T_EXTEN+30 = BAPE_VBAP.
APPEND T_EXTEN.
BAPE_VBAPX-VBELN = P_VBELN.
BAPE_VBAPX-POSNR = '000010'.
<b>BAPE_VBAPX-YYFREETEXT = 'X'.</b>
T_EXTEN-STRUCTURE = 'BAPE_VBAPX'.
T_EXTEN+30 = BAPE_VBAPX.
APPEND T_EXTEN.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = p_vbeln
order_header_inx = ORDER_HEADERX
tables
return = T_RETURN
ORDER_ITEM_IN = T_LINE
ORDER_ITEM_INX = T_LINEX
EXTENSIONIN = T_EXTEN.
COMMIT WORK.
Thanks,
Naren
01-25-2007 2:17 AM
Hi,
Check this example..I am updating the VBAP field..Instead you can replace it for VBAK..
PARAMETERS: P_VBELN TYPE VBAK-VBELN.
DATA: T_LINE LIKE BAPISDITM OCCURS 0 WITH HEADER LINE.
DATA: T_LINEX LIKE BAPISDITMX OCCURS 0 WITH HEADER LINE.
DATA: T_EXTEN LIKE BAPIPAREX OCCURS 0 WITH HEADER LINE.
DATA: T_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.
DATA: BAPE_VBAP LIKE BAPE_VBAP.
DATA: BAPE_VBAPX LIKE BAPE_VBAPX.
DATA: ORDER_HEADERX LIKE BAPISDH1X.
ORDER_HEADERX-UPDATEFLAG = 'U'.
T_LINE-ITM_NUMBER = '000010'.
APPEND T_LINE.
T_LINEX-ITM_NUMBER = '000010'.
T_LINEX-UPDATEFLAG = 'U'.
APPEND T_LINEX.
BAPE_VBAP-VBELN = P_VBELN.
BAPE_VBAP-POSNR = '000010'.
<b>BAPE_VBAP-<b>YYFREETEXT</b> = '02'.</b>
T_EXTEN-STRUCTURE = 'BAPE_VBAP'.
T_EXTEN+30 = BAPE_VBAP.
APPEND T_EXTEN.
BAPE_VBAPX-VBELN = P_VBELN.
BAPE_VBAPX-POSNR = '000010'.
<b>BAPE_VBAPX-YYFREETEXT = 'X'.</b>
T_EXTEN-STRUCTURE = 'BAPE_VBAPX'.
T_EXTEN+30 = BAPE_VBAPX.
APPEND T_EXTEN.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = p_vbeln
order_header_inx = ORDER_HEADERX
tables
return = T_RETURN
ORDER_ITEM_IN = T_LINE
ORDER_ITEM_INX = T_LINEX
EXTENSIONIN = T_EXTEN.
COMMIT WORK.
Thanks,
Naren
01-25-2007 11:15 AM
Hello Naren,
Thanks for your quick reply. but it still does not work. I even tried you sample code to change the data in a custom VBAP field. But it did not change it. Do you know why?
Thanks,
KB