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_SALESORDER_CHANGE Extensionin not working?

Former Member
0 Kudos

Hi guys,

The issue here is I can't update the field ZZREPMATNR for VBAP table.

Is there something missing for EXTENSIONIN that I've done?

below is the code:

  • Populate item number,material number, higher level item

I_ORDER_ITEM_IN-ITM_NUMBER = V_UPD_ITEM.

I_ORDER_ITEM_IN-MATERIAL = P_MATNR.

I_ORDER_ITEM_IN-HG_LV_ITEM = V_SALORD_ITEM.

APPEND I_ORDER_ITEM_IN.

  • Set flag fields of item number,material number, higher level item

I_ORDER_ITEM_INX-ITM_NUMBER = V_UPD_ITEM.

I_ORDER_ITEM_INX-UPDATEFLAG = V_UPDATE_FLG.

APPEND I_ORDER_ITEM_INX.

  • If we are deleting the line we do not care to touch the schedule line.

CHECK V_NEW_QTY <> 0.

  • Populate quantity

I_SCHEDULE_LINES-ITM_NUMBER = V_UPD_ITEM.

I_SCHEDULE_LINES-SCHED_LINE = C_SCHED_LINE.

I_SCHEDULE_LINES-REQ_QTY = P_REQ_QTY + I_ITEM_MATERIAL-KWMENG.

APPEND I_SCHEDULE_LINES.

  • Set the quantity flag

I_SCHEDULE_LINESX-ITM_NUMBER = V_UPD_ITEM.

I_SCHEDULE_LINESX-SCHED_LINE = C_SCHED_LINE.

I_SCHEDULE_LINESX-REQ_QTY = C_FLAG_X.

I_SCHEDULE_LINESX-UPDATEFLAG = C_FLAG_UPDATE.

APPEND I_SCHEDULE_LINESX.

*start of D10K949074 - add

IF I_ITEM_MATERIAL-PSTYV = 'IRIN'.

DATA: I_EXTENSIONIN TYPE STANDARD TABLE OF BAPIPAREX.

DATA: BEGIN OF T_BAPE_VBAP,

VBELN TYPE VBELN_VA,

POSNR TYPE POSNR_VA,

ZZBWTAR TYPE BWTAR_D,

ZZGRUND TYPE MB_GRBEW,

ZZBWART TYPE BWART,

ZZPOSTP TYPE POSTP,

ZZUSR00 TYPE USRCHAR20,

ZZFPCODE TYPE ZRRB_FPCODE,

ZZFPCHARGE TYPE ZRRB_FPCHARGE,

ZZFPHANDLE TYPE ZRRB_FPHANDLE,

ZZOWNER TYPE ZRRB_OWN,

ZZCLASS TYPE ZRRB_CLASS,

ZZVBILL TYPE ZRRB_VALBILL,

ZZRBILL TYPE ZRRB_REASONBILL,

ZZTYPE TYPE ZRRB_TYPE,

ZZMODULE TYPE PS_POSID,

ZZMODULE2 TYPE ZRRB_MODULE,

ZZEXCHANGE TYPE ZRRB_EXC,

ZZFPEXCHANGE TYPE ZRRB_FPEXCHANGE,

ZZKB TYPE ZRRB_KB,

ZZFPKB TYPE ZRRB_FPKB,

ZZVENDOR TYPE LIFNR,

ZZVENDTYPE TYPE ZRRB_VENDTYPE,

ZZREPMATNR TYPE ZRRB_REPMATNR,

END OF T_BAPE_VBAP.

DATA: BEGIN OF T_BAPE_VBAPX,

VBELN TYPE VBELN_VA,

POSNR TYPE POSNR_VA,

ZZBWTAR TYPE BAPIUPDATE,

ZZGRUND TYPE BAPIUPDATE,

ZZBWART TYPE BAPIUPDATE,

ZZPOSTP TYPE BAPIUPDATE,

ZZUSR00 TYPE BAPIUPDATE,

ZZFPCODE TYPE BAPIUPDATE,

ZZFPCHARGE TYPE BAPIUPDATE,

ZZFPHANDLE TYPE BAPIUPDATE,

ZZOWNER TYPE BAPIUPDATE,

ZZCLASS TYPE BAPIUPDATE,

ZZVBILL TYPE BAPIUPDATE,

ZZRBILL TYPE BAPIUPDATE,

ZZTYPE TYPE BAPIUPDATE,

ZZMODULE TYPE BAPIUPDATE,

ZZMODULE2 TYPE BAPIUPDATE,

ZZEXCHANGE TYPE BAPIUPDATE,

ZZFPEXCHANGE TYPE BAPIUPDATE,

ZZKB TYPE BAPIUPDATE,

ZZFPKB TYPE BAPIUPDATE,

ZZVENDOR TYPE BAPIUPDATE,

ZZVENDTYPE TYPE BAPIUPDATE,

ZZREPMATNR TYPE BAPIUPDATE,

END OF T_BAPE_VBAPX.

DATA: K_EXTENSIONIN TYPE BAPIPAREX,

K_BAPE_VBAP LIKE T_BAPE_VBAP,

K_BAPE_VBAPX LIKE T_BAPE_VBAPX,

v_vbeln LIKE K_BAPE_VBAP-VBELN,

v_posnr LIKE K_BAPE_VBAP-POSNR,

v_zzrepmatnr LIKE K_BAPE_VBAP-ZZREPMATNR,

v_concatenate(240) TYPE C,

v_space_136(136) TYPE C,

v_space_21(21) TYPE C.

K_BAPE_VBAP-VBELN = I_ITEM_MATERIAL-VBELN.

K_BAPE_VBAP-POSNR = I_ITEM_MATERIAL-POSNR.

K_BAPE_VBAP-ZZREPMATNR = '50L689'.

K_EXTENSIONIN-STRUCTURE = C_BAPE_VBAP.

K_EXTENSIONIN+30 = K_BAPE_VBAP.

APPEND K_EXTENSIONIN TO I_EXTENSIONIN.

CLEAR K_EXTENSIONIN.

CLEAR: v_vbeln, v_posnr, v_zzrepmatnr, v_concatenate.

K_BAPE_VBAPX-VBELN = I_ITEM_MATERIAL-VBELN.

K_BAPE_VBAPX-POSNR = I_ITEM_MATERIAL-POSNR.

K_BAPE_VBAPX-ZZREPMATNR = C_FLAG_X.

K_EXTENSIONIN-STRUCTURE = C_BAPE_VBAPX.

K_EXTENSIONIN+30 = K_BAPE_VBAPX.

APPEND K_EXTENSIONIN TO I_EXTENSIONIN.

CLEAR K_EXTENSIONIN.

The BAPI is then called after this

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

SALESDOCUMENT = V_SALORD_NUMBER

ORDER_HEADER_IN = K_ORDER_HEADER_IN

ORDER_HEADER_INX = K_ORDER_HEADER_INX

TABLES

RETURN = I_RETURN

ORDER_ITEM_IN = I_ORDER_ITEM_IN

ORDER_ITEM_INX = I_ORDER_ITEM_INX

SCHEDULE_LINES = I_SCHEDULE_LINES

SCHEDULE_LINESX = I_SCHEDULE_LINESX

EXTENSIONIN = I_EXTENSIONIN.

  • Sucess evaluated based on return table

READ TABLE I_RETURN WITH KEY TYPE = C_ERROR.

IF SY-SUBRC = 0.

PERFORM INSERT_I_SUMMARY USING C_STATUS_F I_RETURN-MESSAGE.

V_ERR_FLG = C_X.

EXIT.

ELSE.

COMMIT WORK AND WAIT.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'.

2 REPLIES 2

Former Member
0 Kudos

Hi,

DATA: I_EXTENSIONIN TYPE STANDARD TABLE OF BAPIPAREX.

*DATA: BEGIN OF T_BAPE_VBAP,

*VBELN TYPE VBELN_VA,

*POSNR TYPE POSNR_VA,

*ZZBWTAR TYPE BWTAR_D,

*ZZGRUND TYPE MB_GRBEW,

*ZZBWART TYPE BWART,

*ZZPOSTP TYPE POSTP,

*ZZUSR00 TYPE USRCHAR20,

*ZZFPCODE TYPE ZRRB_FPCODE,

*ZZFPCHARGE TYPE ZRRB_FPCHARGE,

*ZZFPHANDLE TYPE ZRRB_FPHANDLE,

*ZZOWNER TYPE ZRRB_OWN,

*ZZCLASS TYPE ZRRB_CLASS,

*ZZVBILL TYPE ZRRB_VALBILL,

*ZZRBILL TYPE ZRRB_REASONBILL,

*ZZTYPE TYPE ZRRB_TYPE,

*ZZMODULE TYPE PS_POSID,

*ZZMODULE2 TYPE ZRRB_MODULE,

*ZZEXCHANGE TYPE ZRRB_EXC,

*ZZFPEXCHANGE TYPE ZRRB_FPEXCHANGE,

*ZZKB TYPE ZRRB_KB,

*ZZFPKB TYPE ZRRB_FPKB,

*ZZVENDOR TYPE LIFNR,

*ZZVENDTYPE TYPE ZRRB_VENDTYPE,

*ZZREPMATNR TYPE ZRRB_REPMATNR,

*END OF T_BAPE_VBAP.

*DATA: BEGIN OF T_BAPE_VBAPX,

*VBELN TYPE VBELN_VA,

*POSNR TYPE POSNR_VA,

*ZZBWTAR TYPE BAPIUPDATE,

*ZZGRUND TYPE BAPIUPDATE,

*ZZBWART TYPE BAPIUPDATE,

*ZZPOSTP TYPE BAPIUPDATE,

*ZZUSR00 TYPE BAPIUPDATE,

*ZZFPCODE TYPE BAPIUPDATE,

*ZZFPCHARGE TYPE BAPIUPDATE,

*ZZFPHANDLE TYPE BAPIUPDATE,

*ZZOWNER TYPE BAPIUPDATE,

*ZZCLASS TYPE BAPIUPDATE,

*ZZVBILL TYPE BAPIUPDATE,

*ZZRBILL TYPE BAPIUPDATE,

*ZZTYPE TYPE BAPIUPDATE,

*ZZMODULE TYPE BAPIUPDATE,

*ZZMODULE2 TYPE BAPIUPDATE,

*ZZEXCHANGE TYPE BAPIUPDATE,

*ZZFPEXCHANGE TYPE BAPIUPDATE,

*ZZKB TYPE BAPIUPDATE,

*ZZFPKB TYPE BAPIUPDATE,

*ZZVENDOR TYPE BAPIUPDATE,

*ZZVENDTYPE TYPE BAPIUPDATE,

*ZZREPMATNR TYPE BAPIUPDATE,

*END OF T_BAPE_VBAPX.

DATA: K_EXTENSIONIN TYPE BAPIPAREX,

<b>K_BAPE_VBAP LIKE BAPE_VBAP,

K_BAPE_VBAPX LIKE BAPE_VBAPX,</b>

v_vbeln LIKE K_BAPE_VBAP-VBELN,

v_posnr LIKE K_BAPE_VBAP-POSNR,

v_zzrepmatnr LIKE K_BAPE_VBAP-ZZREPMATNR,

v_concatenate(240) TYPE C,

v_space_136(136) TYPE C,

v_space_21(21) TYPE C.

K_BAPE_VBAP-VBELN = I_ITEM_MATERIAL-VBELN.

K_BAPE_VBAP-POSNR = I_ITEM_MATERIAL-POSNR.

K_BAPE_VBAP-ZZREPMATNR = '50L689'.

K_EXTENSIONIN-STRUCTURE = C_BAPE_VBAP.

<b>K_EXTENSIONIN-VALUEPART1 = K_BAPE_VBAP.</b>

APPEND K_EXTENSIONIN TO I_EXTENSIONIN.

CLEAR K_EXTENSIONIN.

CLEAR: v_vbeln, v_posnr, v_zzrepmatnr, v_concatenate.

K_BAPE_VBAPX-VBELN = I_ITEM_MATERIAL-VBELN.

K_BAPE_VBAPX-POSNR = I_ITEM_MATERIAL-POSNR.

K_BAPE_VBAPX-ZZREPMATNR = C_FLAG_X.

K_EXTENSIONIN-STRUCTURE = C_BAPE_VBAPX.

<b>K_EXTENSIONIN-VALUEPART1 = K_BAPE_VBAPX.</b>

APPEND K_EXTENSIONIN TO I_EXTENSIONIN.

CLEAR K_EXTENSIONIN.

Apply these changes..And let me know if it works..

Thanks,

Naren

0 Kudos

Hi,

I've tried to change to codes but still it doesn't update.

thanks for all inputs. Need help on this urgently.