‎2009 May 26 12:44 PM
Hi all ,
I have a scenario where i will create a delivery. Now the user requires to split the line item in the delivery into two line items by splitting the quantity equal to the initial document thru VA02. I tried using variout ways like userexits, bapis,etc. Can anyone give me a way to split line items in an existing delivery and saving it ensuring the sales flow doesnt get hampered
‎2009 May 26 6:42 PM
Hi,
try with below code.
1) appned internal table with old shedule line for deletion then
2) appned new values to create new shedule line in the sales order .
LOOP AT IST_FINAL.
ZORDERHEADERINX-UPDATEFLAG ='U'.
APPEND ZORDERHEADERINX.
ZDSCHEDULE_LINES-ITM_NUMBER = IST_FINAL-POSNR.
ZDSCHEDULE_LINES-SCHED_LINE = IST_FINAL-ETENR.
APPEND ZDSCHEDULE_LINES.
ZDSCHEDULE_LINESX-ITM_NUMBER = IST_FINAL-POSNR.
ZDSCHEDULE_LINESX-SCHED_LINE = IST_FINAL-ETENR.
ZDSCHEDULE_LINESX-UPDATEFLAG = 'D'.
APPEND ZDSCHEDULE_LINESX.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM ZDSCHEDULE_LINES COMPARING ITM_NUMBER SCHED_LINE .
DELETE ADJACENT DUPLICATES FROM ZDSCHEDULE_LINESX COMPARING ITM_NUMBER SCHED_LINE .
LOOP AT IST_FINAL.
ZORDERHEADERINX-UPDATEFLAG ='U'.
APPEND ZORDERHEADERINX.
TMP = TMP - IST_FINAL-ETENR.
ZDORDER_ITEM_IN-ITM_NUMBER = IST_FINAL-POSNR.
ZDORDER_ITEM_IN-TARGET_QTY = IST_FINAL-WMENGE.
APPEND ZDORDER_ITEM_IN.
ZDORDER_ITEM_INX-ITM_NUMBER = IST_FINAL-POSNR.
ZDORDER_ITEM_INX-TARGET_QTY = 'X'.
ZDORDER_ITEM_INX-UPDATEFLAG = 'U'.
APPEND ZDORDER_ITEM_INX.
ZDSCHEDULE_LINES-ITM_NUMBER = IST_FINAL-POSNR.
ZDSCHEDULE_LINES-SCHED_LINE = TMP.
ZDSCHEDULE_LINES-SCHED_TYPE = IST_FINAL-ETTYP.
ZDSCHEDULE_LINES-REQ_DATE = IST_FINAL-PRODATE.
ZDSCHEDULE_LINES-REQ_QTY = IST_FINAL-WMENGE.
APPEND ZDSCHEDULE_LINES.
ZDSCHEDULE_LINESX-ITM_NUMBER = IST_FINAL-POSNR.
ZDSCHEDULE_LINESX-SCHED_LINE = TMP.
ZDSCHEDULE_LINESX-UPDATEFLAG = 'I'.
ZDSCHEDULE_LINESX-SCHED_TYPE = 'X'.
ZDSCHEDULE_LINESX-REQ_DATE = 'X'.
ZDSCHEDULE_LINESX-REQ_QTY = 'X'.
APPEND ZDSCHEDULE_LINESX.
ENDLOOP.
UNPACK IST_FINAL-VBELN TO IST_FINAL-VBELN.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
SALESDOCUMENT = IST_FINAL-VBELN
ORDER_HEADER_INX = ZORDERHEADERINX
TABLES
RETURN = ZRETURN
ORDER_ITEM_IN = ZDORDER_ITEM_IN
ORDER_ITEM_INX = ZDORDER_ITEM_INX
SCHEDULE_LINES = ZDSCHEDULE_LINES
SCHEDULE_LINESX = ZDSCHEDULE_LINESX.
IF SY-SUBRC = 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
WAIT UP TO 3 SECONDS.
ENDIF.
Salil....
Edited by: salil chavan on May 26, 2009 7:42 PM
Edited by: salil chavan on May 26, 2009 7:43 PM
‎2009 Jun 30 6:20 AM