Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

BAPI SALES ORDER CHANGE CUSTOM FIELD

Former Member
0 Kudos

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

1 ACCEPTED SOLUTION

Former Member
0 Kudos

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

2 REPLIES 2

Former Member
0 Kudos

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

0 Kudos

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