05-30-2006 8:27 AM
Hi All
I am trying to update a saleorder at item level(order quantity field) thru the function module BAPI_SALEORDER_CHANGE. I have 3 items in my saleorder. I am able to update the first item but I am unable to update the schedule_lines-req_qty(order quantity field) of the second and third item.
Can anyone plz suggest me how 2 overcome this prob.??
Thanks in Advance
Vijay.
05-30-2006 8:32 AM
Hi Vijay,
Perhaps you should loop into the schedule_lines internal table.
Better yet, kindly post your code, the part where you're updating the table.
Best regards
05-30-2006 8:44 AM
Hi Kevin
Here is the code you were asking for. I will repeat my problem. The prob is: I am able to update the first item level but I am unable to update the req_qty field of the subsequent item levels.
Expecting an early reply.....
CODE:
*****************
data: salesdocument like bapivbeln occurs 0 with header line,
order_header_in like bapisdh1 occurs 0 with header line,
order_header_inx like bapisdh1x occurs 0 with header line,
order_item_in like bapisditm occurs 0 with header line,
order_item_inx like bapisditmx occurs 0 with header line,
partners like bapiparnr occurs 0 with header line,
schedule_lines like bapischdl occurs 0 with header line,
schedule_linesx like bapischdlx occurs 0 with header line,
partnerchanges like BAPIPARNRC occurs 0 with header line,
return like bapiret2 occurs 0 with header line.
data : pur_ord_no like vbkd-vbeln.
parameters : puro_num like vbkd-bstkd.
start-of-selection.
*Retrieving salesorder number by passing the purchase order number.
select single vbeln from vbkd into pur_ord_no where bstkd = puro_num.
salesdocument-vbeln = pur_ord_no.
append salesdocument.
order_header_inx-updateflag = 'U'.
order_header_inx-sales_org = 'X'.
order_header_inx-distr_chan = 'X'.
order_header_inx-division = 'X'.
order_header_inx-sales_off = 'X'.
order_header_inx-purch_no_c = 'X'.
order_header_inx-req_date_h = 'X'.
order_header_inx-purch_date = 'X'.
append order_header_inx.
order_header_in-sales_org = 'JNJ1'.
order_header_in-distr_chan = '02'.
order_header_in-division = 'J1'.
order_header_in-sales_off = 'JNJ1'.
order_header_in-purch_no_c = 'XMLFileUpload6'.
order_header_in-purch_date = '20060101'.
order_header_in-req_date_h = '20060202'.
append order_header_in.
*partnerchanges-itm_number = '000030'.
*partnerchanges-updateflag = 'X'.
*partnerchanges-partn_role = 'AG'.
*partnerchanges-p_numb_old = '0000000011'.
*partnerchanges-p_numb_new = '0000000011'.
*append partnerchanges.
order_item_inx-updateflag = 'U'.
order_item_inx-material = 'X'.
order_item_inx-plant = 'X'.
order_item_inx-itm_number = '000020'.
append order_item_inx.
schedule_linesx-updateflag = 'U'.
schedule_linesx-req_qty = 'X'.
schedule_linesx-itm_number = '000020'.
SCHEDULE_LINESx-SCHED_LINE = '0001'.
append schedule_linesx.
order_item_in-itm_number = '000020'.
order_item_in-material = '000000000000000877'.
order_item_in-plant = 'JNJ1'.
append order_item_in.
schedule_lines-sched_line = '0001'.
schedule_lines-itm_number = '20'.
schedule_lines-req_qty = 64.
append schedule_lines.
Calling the function module updating the salesorder.
call function 'BAPI_SALESORDER_CHANGE'
exporting
salesdocument = salesdocument
order_header_in = order_header_in
order_header_inx = order_header_inx
SIMULATION =
BEHAVE_WHEN_ERROR = ' '
INT_NUMBER_ASSIGNMENT = ' '
LOGIC_SWITCH =
tables
return = return
order_item_in = order_item_in
order_item_inx = order_item_inx
PARTNERS =
PARTNERCHANGES = 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 = schedule_lines
SCHEDULE_LINESX = schedule_linesx
ORDER_TEXT =
ORDER_KEYS =
CONDITIONS_IN = conditions_in
CONDITIONS_INX = conditions_inx
EXTENSIONIN =
.
if sy-subrc ne 0.
write: return-message,return-number,return-type.
else.
write: return-message,return-number,return-type.
call function 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT =
IMPORTING
RETURN =
.
endif.
Thanks,
Vijay.
05-30-2006 8:33 AM
Vjiay,
I believe the qty should be fill in target_qty of item table as well as teh req_qty of schedule line table.
Thanks,
Thomas.