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: 

BAPI for delivery update

Former Member
0 Kudos

Hi ,

Please suggest me any BAPI for updating the delivery document header.

Thanks.

Regards

DV

9 REPLIES 9

Former Member
0 Kudos

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.

Former Member
0 Kudos

HI,

You can use this : BAPI_OUTB_DELIVERY_CHANGE

Regards,

JLN

Former Member
0 Kudos

Hi,

You can use WS_DELIVERY_UPDATE or WS_DELIVERY_UPDATE_2.

Regards,

Satish

Former Member
0 Kudos

Hi All ,

I want to update the loading point(LSTEL) field in the delivery header.

Regards

DV

0 Kudos

Hi,

Use FM WS_DELIVERY_UPDATE, There is a table parameter VERKO_TAB-LSTEL for loading point.

Regards,

Satish

Former Member
0 Kudos

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.

0 Kudos

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

0 Kudos

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

Former Member
0 Kudos

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.