Application Development and Automation 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: 
Read only

splitting a delivery

Former Member
0 Likes
412

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

2 REPLIES 2
Read only

Former Member
0 Likes
370

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

Read only

Former Member
0 Likes
370

Solved using Function Module RV_DELIVERIES_SAVE