01-23-2008 8:35 AM
Hi ,
Please suggest me any BAPI for updating the delivery document header.
Thanks.
Regards
DV
01-23-2008 8:37 AM
Hi
This is a BAPI code, go thru this, hope it wil help you.
reward if help.
Check this sample program for creating delivery from a sales order.
Give the sales order as input..
PARAMETERS: p_vbeln LIKE vbak-vbeln.
DATA: BEGIN OF t_vbap OCCURS 0,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
kwmeng LIKE vbap-kwmeng,
matnr LIKE vbap-matnr,
werks LIKE vbap-werks,
END OF t_vbap.
DATA: t_request TYPE STANDARD TABLE OF bapideliciousrequest
WITH HEADER LINE.
DATA: t_created TYPE STANDARD TABLE OF bapideliciouscreateditems
WITH HEADER LINE.
DATA: t_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
SELECT vbeln posnr kwmeng matnr werks
INTO TABLE t_vbap
FROM vbap
WHERE vbeln = p_vbeln.
LOOP AT t_vbap.
t_request-document_numb = t_vbap-vbeln.
t_request-document_item = t_vbap-posnr.
t_request-quantity_sales_uom = t_vbap-kwmeng.
t_request-id = 1.
t_request-document_type = 'A'.
t_request-delivery_date = sy-datum.
t_request-material = t_vbap-matnr.
t_request-plant = t_vbap-werks.
t_request-date = sy-datum.
t_request-goods_issue_date = sy-datum.
t_request-goods_issue_time = sy-uzeit.
APPEND t_request.
ENDLOOP.
CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'
TABLES
request = t_request
createditems = t_created
return = t_return
.
READ TABLE t_return WITH KEY type = 'E'.
IF sy-subrc = 0.
MESSAGE e208(00) WITH 'Delivery creation error'.
ENDIF.
COMMIT WORK.
READ TABLE t_created INDEX 1.
WRITE: / 'Delivery - ', t_created-document_numb.
01-23-2008 8:37 AM
01-23-2008 8:38 AM
Hi,
You can use WS_DELIVERY_UPDATE or WS_DELIVERY_UPDATE_2.
Regards,
Satish
01-23-2008 8:44 AM
Hi All ,
I want to update the loading point(LSTEL) field in the delivery header.
Regards
DV
01-23-2008 8:47 AM
Hi,
Use FM WS_DELIVERY_UPDATE, There is a table parameter VERKO_TAB-LSTEL for loading point.
Regards,
Satish
01-23-2008 8:46 AM
SHP_BAPI_DELIVERY_CHANGE
BAPI_OUTB_DELIVERY_CHANGE
WS_DELIVERY_UPDATE - for picking the outbound delivery
The sample code:
WA_VBKOK-VBELN_VL = <del_nbr>.
WA_VBKOK-VBELN = VBFA-VBELV.
LOOP AT TAB_VBPOK.
TAB_VBPOK-VBELN_VL = WA_VBKOK-VBELN_VL.
Get delivery line item data.
TAB_VBPOK-VBELN = SY-DATUM.
TAB_VBPOK-POSNN = SY-UZEIT.
TAB_VBPOK-VBTYP_N = VBFA-VBTYP_N.
SELECT * INTO TABLE TVBFA FROM VBFA
WHERE VBELV = WA_VBKOK-VBELN_VL.
SORT TVBFA DESCENDING.
CLEAR TVBFA.
READ TABLE TVBFA WITH KEY VBELV = TAB_VBPOK-VBELN_VL
POSNV = TAB_VBPOK-POSNR_VL
VBTYP_N = 'Q'
TAQUI = ' '.
IF SY-SUBRC EQ 0.
V_PIKMG = TAB_VBPOK-PIKMG + TVBFA-RFMNG. " Picking quantity
CLEAR TVBFA.
READ TABLE TVBFA WITH KEY VBELV = TAB_VBPOK-VBELN_VL
POSNV = TAB_VBPOK-POSNR_VL
VBTYP_N = 'Q'
TAQUI = 'X'.
IF SY-SUBRC EQ 0.
V_PIKMG = V_PIKMG + TVBFA-RFMNG. " Total Picking quantity
*****Error Message: Picked quantity is larger than the quantity to be delivered.
IF LIPS-LFIMG LT V_PIKMG.
PERFORM GET_RETURN USING 'E' 'VL' '019' SPACE SPACE SPACE SPACE
RETURN.
V_EXIT = 'Y'.
EXIT. " EXIT THE RFC.
ENDIF.
ENDIF.
ENDIF.
TAB_VBPOK-KZNTG = 'X'. " Confirmation of net weight
TAB_VBPOK-KZBRG = 'X'. " Confirmation of gross weight
TAB_VBPOK-KZVOL = 'X'. " Confirmation of volume
MODIFY TAB_VBPOK.
ENDLOOP.
CALL FUNCTION 'WS_DELIVERY_UPDATE_2'
EXPORTING
VBKOK_WA = WA_VBKOK
SYNCHRON = 'X'
DELIVERY = WA_VBKOK-VBELN_VL
NICHT_SPERREN_1 = 'X'
IF_ERROR_MESSAGES_SEND = 'X'
IT_PARTNER_UPDATE = IS_PARTNER
TABLES
PROT = I_PROTT.
IF NOT I_PROTT IS INITIAL.
RETURN-TYPE = 'E'.
RETURN-MESSAGE = 'Goods Issue Failed!'.
EXIT. "EXIT THE RFC
ELSE.
COMMIT WORK AND WAIT.
ENDIF.
Rewards if useful.
02-10-2009 7:18 AM
Hi Prakash,
i am using the FM WS_DELIVERY_UPDATE
but some times when updating delivery with batches if i make Pick Quantity ZERO this FM is
not setting the Pick Quantity to a ZERO value instead its keep the pick Quantity unchanged
or some times its getting doubled.
do you have any inputs on this..
thanks,
vinayaka
02-10-2009 7:19 AM
Hi Prakash,
i am using the FM WS_DELIVERY_UPDATE
but some times when updating delivery with batches if i make Pick Quantity ZERO this FM is
not setting the Pick Quantity to a ZERO value instead its keep the pick Quantity unchanged
or some times its getting doubled.
do you have any inputs on this..
thanks,
vinayaka
01-23-2008 10:02 AM
Hi ,
Please find below the code i am using.But the value is not getting updated.
Can you please advise me on the same.
W_DELIVERY = WA_E1EDL20-VBELN "Delivery Number.
T_VBKOK-VBELN_VL = WA_E1EDL20-VBELN.
T_VERKO-LSTEL = '02'.
CALL FUNCTION 'WS_DELIVERY_UPDATE'
EXPORTING
VBKOK_WA = T_VBKOK
SYNCHRON = 'X'
DELIVERY = W_DELIVERY
IF_DATABASE_UPDATE = '1'
IF_ERROR_MESSAGES_SEND_0 = 'X'
TABLES
VERKO_TAB = T_VERKO
.
IF SY-SUBRC EQ 0 .
COMMIT WORK .
endif.