‎2005 Dec 12 11:45 AM
hi all,
Is there any BAPI available with which we can update a delivery note and also if possible do PGI using it.
In case there are separate BAPI's for both the processes that will do for me.
Kindly help
Regards
Varun
‎2005 Dec 12 11:49 AM
Hi,
Check the fm 'RV_DELIVERY_POST_GI_VIEW', this might be of help,
Rgds,
‎2005 Dec 12 12:52 PM
‎2005 Dec 12 3:09 PM
‎2005 Dec 12 3:33 PM
Hi,
Thanks for this information Rob.
However, do you have any idea how the FM "BAPI_DELIVERYPROCESSING_EXEC" works.
If anyone know how this FM works please let me know
Thanks
Varun
‎2005 Dec 12 3:45 PM
Have a look at the documentation. If that doesn't help, let us know.
Rob
‎2005 Dec 12 3:31 PM
Hi Varun,
You can use <b>WS_DELIVERY_UPDATE</b> or <b>WS_DELIVERY_UPDATE_2</b> ..
Following sample code works for Automatic PGI of an existing delivery. Use this as a basis and code for your requirement.
DATA: ls_vbkok LIKE vbkok,
lv_error_pgi TYPE xfeld,
lt_prot LIKE prott OCCURS 0 WITH HEADER LINE,
lwa_prot like prott.
ls_vbkok-vbeln_vl = <your Delivery Note number>.
ls_vbkok-wabuc = c_true.
CALL FUNCTION 'WS_DELIVERY_UPDATE'
EXPORTING
vbkok_wa = ls_vbkok
synchron = c_true
* NO_MESSAGES_UPDATE = ' '
commit = c_true
delivery = <your Delivery Note number>
* UPDATE_PICKING = ' '
* NICHT_SPERREN = ' '
* IF_CONFIRM_CENTRAL = ' '
* IF_WMPP = ' '
* IF_GET_DELIVERY_BUFFERED = ' '
* IF_NO_GENERIC_SYSTEM_SERVICE = ' '
* IF_DATABASE_UPDATE = '1'
* IF_NO_INIT = ' '
* IF_NO_READ = ' '
* IF_ERROR_MESSAGES_SEND_0 = 'X'
* IF_NO_BUFFER_REFRESH = ' '
* IF_NO_MES_UPD_PACK = ' '
* IMPORTING
* EF_ERROR_ANY_0 =
* EF_ERROR_IN_ITEM_DELETION_0 =
* EF_ERROR_IN_POD_UPDATE_0 =
* EF_ERROR_IN_INTERFACE_0 =
ef_error_in_goods_issue_0 = lv_error_pgi
* EF_ERROR_IN_FINAL_CHECK_0 =
TABLES
* VBPOK_TAB =
prot = lt_prot[]
* VERKO_TAB =
* VERPO_TAB =
* VBSUPCON_TAB =
* IT_VERPO_SERNR =
* IT_PACKING =
* IT_PACKING_SERNR =
* IT_REPACK =
* IT_HANDLING_UNITS =
* ET_CREATED_HUS =
.
IF NOT lt_prot[] IS INITIAL.
READ TABLE lt_prot WITH KEY msgty = 'E'.
IF sy-subrc EQ 0.
****Errors Exist
*** Goods Issue Failed
ENDIF.
ELSE.
*** Goods Issue posted sucessfully
ENDIF.
Hope this helps..
Sri
Message was edited by: Srikanth Pinnamaneni
‎2005 Dec 12 3:43 PM
Hi Shrikanth,
Do u have any idea if I will be able to update tne header of a delivery note for which the PGI has already been done. I want to replace a BDC program and want the following operations:
1) PGI a delivery if not PGIed
2) Update the header information
3)do not do PGI on those which have been PGIed
‎2005 Dec 12 3:49 PM
Hi Varun,
Yes you can as long as the field is available in the structure VBKOK. See ls_vbkok in my eariler post.
Whatever is available in VBKOK you can change.
Also, You can determine whether a delivery is PGIed or not by looking at LIKP-WADAT_IST and then set WABUC in VBKOK structure accordingly..
****Read delivery header first
SELECT SINGLE * FROM likp WHERE vbeln EQ <your del. number>.
CHECK sy-subrc EQ 0.
****Check whether delivery is PGIed or not and set for automatic PGI
IF likp-wadat_ist IS INITIAL.
ls_vbkok-wabuc = 'X'.
ENDIF.
****Set all header fields you want to change
ls_vbkok-<fieldname> = ...
ls_vbkok-<fieldname> = ...
****Finally call WS_DELIVERY_UPDATE_2
Hope this helps..
<b>Varun, Please do not forget to award points to helpful answers and close the post if the problem has been solved.
Thanks,</b>
Sri
Message was edited by: Srikanth Pinnamaneni
‎2005 Dec 12 4:53 PM
Hi Srikanth
Thanks for your help. Your suggestion has given me a lead and I will try to fit this logic in my program.
Thanks once again
Varun