10-26-2009 9:04 PM
Hi,
I have used function BAPI_SALESORDER_CHANGE to change the values of Item-level Billing block and Schedule line deleivery block in 'VA02' . Even though , I get the RETURN parameters as successful, the required values are not getting changed. What possibly could be the reason. Iam pasting the code, please correct me...!
tables: vbak, vbap, vbep.
data: soheader like bapisdh1,
soheaderx like bapisdh1x.
data: it_item type table of bapisditm,
wa_item like line of it_item.
data: it_itemx type table of bapisditmx,
wa_itemx like line of it_itemx.
data: it_schedule type table of bapischdl,
wa_schedule like line of it_schedule.
data: it_schedulex type table of bapischdlx,
wa_schedulex like line of it_schedulex.
data: it_return type table of bapiret2,
wa_return like line of it_return.
data: it_vbap type table of vbap,
wa_vbap like line of it_vbap.
data: it_vbep type table of vbep,
wa_vbep like line of it_vbep.
data: zreturn like bapiret2.
select-options: salesdoc for vbak-VBELN no intervals no-extension obligatory.
select * from vbap into table it_vbap where vbeln eq salesdoc-low and faksp eq '69'. "Some XYZ Block
if it_vbap[] is not initial.
select * from vbep into table it_vbep for all entries in it_vbap where vbeln eq salesdoc-low and posnr eq it_vbap-posnr.
endif.
loop at it_vbap into wa_vbap.
wa_itemx-updateflag = 'U'.
wa_item-itm_number = wa_vbap-posnr.
wa_itemx-itm_number = wa_vbap-posnr.
wa_item-material = wa_vbap-matnr.
wa_itemx-material = 'X'.
wa_item-bill_block = ' '.
wa_itemx-bill_block = 'X'.
append wa_item to it_item.
append wa_itemx to it_itemx.
endloop.
loop at it_vbep into wa_vbep.
wa_schedulex-updateflag = 'U'.
wa_schedule-itm_number = wa_vbep-posnr.
wa_schedulex-itm_number = wa_vbep-posnr.
wa_schedule-sched_line = wa_vbep-etenr.
wa_schedulex-sched_line = wa_vbep-etenr.
wa_schedule-req_dlv_bl = ' '.
wa_schedulex-req_dlv_bl = 'X'.
append wa_schedule to it_schedule.
append wa_schedulex to it_schedulex.
endloop.
soheaderx-updateflag = 'U'.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
SALESDOCUMENT = salesdoc-low
ORDER_HEADER_IN = soheader
ORDER_HEADER_INX = soheaderx
SIMULATION =
BEHAVE_WHEN_ERROR = ' '
INT_NUMBER_ASSIGNMENT = ' '
LOGIC_SWITCH =
TABLES
RETURN = it_return
ORDER_ITEM_IN = it_item
ORDER_ITEM_INX = it_itemx
PARTNERS =
PARTNERCHANGES =
PARTNERADDRESSES =
ORDER_CFGS_REF =
ORDER_CFGS_INST =
ORDER_CFGS_PART_OF =
ORDER_CFGS_VALUE =
ORDER_CFGS_BLOB =
ORDER_CFGS_VK =
ORDER_CFGS_REFINST =
SCHEDULE_LINES = it_schedule
SCHEDULE_LINESX = it_schedulex
ORDER_TEXT =
ORDER_KEYS =
CONDITIONS_IN =
CONDITIONS_INX =
EXTENSIONIN =
.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
.
Thanks,
Shivaa...
10-26-2009 9:15 PM
instead of using the bapi to comitt work, just do a...
COMMIT WORK AND WAIT.
10-27-2009 5:46 AM
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = p_vbeln
order_header_in = s_order_header_in
order_header_inx = s_order_header_inx
behave_when_error = 'P'
TABLES
return = it_return
order_item_in = i_order_item_in
order_item_inx = i_order_item_inx
schedule_lines = i_sched
schedule_linesx = i_schedx.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
LOOP AT it_return.
WRITE / it_return-message.
ENDLOOP.