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: 

Change Quantity of Sales Order in BAPI_SALESORDER_CHANGE

former_member196157
Active Participant
0 Kudos

Hiiii Experts,

I want to change the quantity in sales order i.e. I want to replace the Order quantity to schedule quantity but using BAPI_SALESORDER_CHANGE

it add the quantity . It can not update sales order quantity as per our requirement. The code is as bellow, please correct me ..........


DATA: s_order_header_in LIKE bapisdh1.
DATA: s_order_header_inx LIKE bapisdh1x.

DATA: BEGIN OF i_order_item_in OCCURS 0.
         INCLUDE STRUCTURE bapisditm.
DATA: END   OF i_order_item_in.
DATA: BEGIN OF i_order_item_inx OCCURS 0.
         INCLUDE STRUCTURE bapisditmx.
DATA: END   OF i_order_item_inx.
DATA: BEGIN OF SCHEDULE_LINES OCCURS 0.
         INCLUDE STRUCTURE BAPISCHDL.
DATA: END   OF SCHEDULE_LINES.

DATA: BEGIN OF SCHEDULE_LINESX OCCURS 0.
         INCLUDE STRUCTURE BAPISCHDLX.
DATA: END   OF SCHEDULE_LINESX.

DATA: BEGIN OF it_return OCCURS 0.
         INCLUDE STRUCTURE bapiret2.
DATA: END OF it_return.

s_order_header_inx-UPDATEFLAG = 'U'.


   schedule_linesx-itm_number = '000010'.
   SCHEDULE_LINES-REQ_QTY = '1'.
   schedule_linesx-sched_line = '0001'.
   schedule_linesx-updateflag = 'U'.
   schedule_linesx-req_qty = 'X'.
  append SCHEDULE_LINES.


   p_vbeln = '0000001808'.
   i_order_item_in-itm_number = '000010'.
   i_order_item_inx-updateflag = 'U'.
   i_order_item_inx-itm_number = '000010'.
   APPEND: i_order_item_in, i_order_item_inx.

     CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
     EXPORTING
       salesdocument     = p_vbeln
       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    = SCHEDULE_LINES
       SCHEDULE_LINESX   = SCHEDULE_LINESX.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
     EXPORTING
       wait = 'X'.

Please Help me.......

Thanks........

1 ACCEPTED SOLUTION

former_member196157
Active Participant
0 Kudos

Hiii Experts,

Problem is solved by myself,

I just add the following line,


DATA: s_order_header_in LIKE bapisdh1.
DATA: s_order_header_inx LIKE bapisdh1x.

DATA: BEGIN OF i_order_item_in OCCURS 0.
         INCLUDE STRUCTURE bapisditm.
DATA: END   OF i_order_item_in.
DATA: BEGIN OF i_order_item_inx OCCURS 0.
         INCLUDE STRUCTURE bapisditmx.
DATA: END   OF i_order_item_inx.
DATA: BEGIN OF SCHEDULE_LINES OCCURS 0.
         INCLUDE STRUCTURE BAPISCHDL.
DATA: END   OF SCHEDULE_LINES.

DATA: BEGIN OF SCHEDULE_LINESX OCCURS 0.
         INCLUDE STRUCTURE BAPISCHDLX.
DATA: END   OF SCHEDULE_LINESX.

DATA: BEGIN OF it_return OCCURS 0.
         INCLUDE STRUCTURE bapiret2.
DATA: END OF it_return.

*   Header update indicator
   s_order_header_inx-updateflag = 'U'.

   SCHEDULE_LINES-ITM_NUMBER = it_final-posnr.
   SCHEDULE_LINES-REQ_QTY = it_final-dqty.
    SCHEDULE_LINES-sched_line = '0001'.
   append SCHEDULE_LINES.

   SCHEDULE_LINESX-ITM_NUMBER = it_final-posnr.
   SCHEDULE_LINESX-REQ_QTY = 'X'.
   SCHEDULE_LINESX-UPDATEFLAG = 'U'.
   SCHEDULE_LINESX-sched_line = '0001'.
   append SCHEDULE_LINESX.

**   Line items
   p_vbeln = it_final-vbeln.
   i_order_item_in-itm_number = it_final-posnr.
*
   i_order_item_inx-updateflag = 'U'.
   i_order_item_inx-itm_number = it_final-posnr.
   APPEND: i_order_item_in, i_order_item_inx.


     CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
     EXPORTING
       salesdocument     = p_vbeln
       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    = SCHEDULE_LINES
       SCHEDULE_LINESX   = SCHEDULE_LINESX.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
     EXPORTING
       wait = 'X'.

Thanks a lot now thread is closed...

Thanks....

1 REPLY 1

former_member196157
Active Participant
0 Kudos

Hiii Experts,

Problem is solved by myself,

I just add the following line,


DATA: s_order_header_in LIKE bapisdh1.
DATA: s_order_header_inx LIKE bapisdh1x.

DATA: BEGIN OF i_order_item_in OCCURS 0.
         INCLUDE STRUCTURE bapisditm.
DATA: END   OF i_order_item_in.
DATA: BEGIN OF i_order_item_inx OCCURS 0.
         INCLUDE STRUCTURE bapisditmx.
DATA: END   OF i_order_item_inx.
DATA: BEGIN OF SCHEDULE_LINES OCCURS 0.
         INCLUDE STRUCTURE BAPISCHDL.
DATA: END   OF SCHEDULE_LINES.

DATA: BEGIN OF SCHEDULE_LINESX OCCURS 0.
         INCLUDE STRUCTURE BAPISCHDLX.
DATA: END   OF SCHEDULE_LINESX.

DATA: BEGIN OF it_return OCCURS 0.
         INCLUDE STRUCTURE bapiret2.
DATA: END OF it_return.

*   Header update indicator
   s_order_header_inx-updateflag = 'U'.

   SCHEDULE_LINES-ITM_NUMBER = it_final-posnr.
   SCHEDULE_LINES-REQ_QTY = it_final-dqty.
    SCHEDULE_LINES-sched_line = '0001'.
   append SCHEDULE_LINES.

   SCHEDULE_LINESX-ITM_NUMBER = it_final-posnr.
   SCHEDULE_LINESX-REQ_QTY = 'X'.
   SCHEDULE_LINESX-UPDATEFLAG = 'U'.
   SCHEDULE_LINESX-sched_line = '0001'.
   append SCHEDULE_LINESX.

**   Line items
   p_vbeln = it_final-vbeln.
   i_order_item_in-itm_number = it_final-posnr.
*
   i_order_item_inx-updateflag = 'U'.
   i_order_item_inx-itm_number = it_final-posnr.
   APPEND: i_order_item_in, i_order_item_inx.


     CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
     EXPORTING
       salesdocument     = p_vbeln
       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    = SCHEDULE_LINES
       SCHEDULE_LINESX   = SCHEDULE_LINESX.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
     EXPORTING
       wait = 'X'.

Thanks a lot now thread is closed...

Thanks....