‎2008 Jan 23 2:08 PM
‎2008 Jan 23 2:10 PM
Hi,
this is BAPi to create a delivery document BAPI_DELIVERYPROCESSING_EXEC
if u want i have the sample code..
----
Include YCL_CREATE_DELIVERY_DOCU
----
----
Form delivery_creation *
----
This Subroutine is used to Create Delivery
----
FORM delivery_creation .
DATA: BEGIN OF LFS_vbap,
vbeln TYPE vbap-vbeln, " Sales Document
posnr TYPE vbap-posnr, " Sales Document Item
kwmeng TYPE vbap-kwmeng, " Order quantity in sales units
matnr TYPE vbap-matnr, " Material Number
werks TYPE vbap-werks, " Plant
END OF lfs_vbap.
data lw_delnum type VBELN.
----
LOCAL TABLES DECLARATION *
----
DATA:
Lt_VBAP LIKE TABLE OF Lfs_VBAP, " To Store datata from vbeln..
lt_request TYPE STANDARD TABLE
OF bapideliciousrequest, " Data for Creating Deliveries
lt_created TYPE STANDARD TABLE OF bapideliciouscreateditems,
" To Store Delivery Item..
lt_return TYPE STANDARD TABLE OF bapiret2.
" Table for Return Parameters
----
LOCAL FIELD STRINGS DECLARATION *
----
DATA:
lfs_request type bapideliciousrequest,
" Work area for lt_request
lfs_created like line of lt_created.
" Work area for lt_created
SELECT vbeln posnr kwmeng matnr werks
INTO TABLE Lt_vbap
FROM vbap
WHERE vbeln = W_vbeln.
if sy-subrc <> 0.
write / text-002.
exit.
endif. " if sy-subrc <> 0
LOOP AT Lt_vbap INTO LFS_VBAP .
lfs_request-document_numb = lfs_vbap-vbeln.
lfs_request-document_item = lfs_vbap-posnr.
lfs_request-quantity_sales_uom = lfs_vbap-kwmeng.
lfs_request-id = 1.
lfs_request-document_type = 'A'.
lfs_request-delivery_date = sy-datum.
lfs_request-material = lfs_vbap-matnr.
lfs_request-plant = lfs_vbap-werks.
lfs_request-date = sy-datum.
lfs_request-goods_issue_date = sy-datum.
lfs_request-goods_issue_time = sy-uzeit.
APPEND lfs_request to lt_request.
ENDLOOP.
CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'
TABLES
request = lt_request
createditems = lt_created
return = lt_return.
READ TABLE t_return WITH KEY type = 'E'.
if sy-subrc eq 0.
write : / text-004.
EXIT.
ELSE.
perform commit_work. " To Call External Commit
READ TABLE lt_created into lfs_created INDEX 1.
WRITE: / text-001,
lfs_created-document_numb.
lw_delnum = lfs_created-document_numb.
perform transfer_order using lw_delnum.
" TRANSFER ORDER CREATION
ENDIF. " If sy-subrc eq 0
ENDFORM. " delivery_creation
plzz reward if it is usefull to u..
plzz dont forget to reward...
Regards
Sunil..
‎2008 Jan 23 2:10 PM
Hi,
this is BAPi to create a delivery document BAPI_DELIVERYPROCESSING_EXEC
if u want i have the sample code..
----
Include YCL_CREATE_DELIVERY_DOCU
----
----
Form delivery_creation *
----
This Subroutine is used to Create Delivery
----
FORM delivery_creation .
DATA: BEGIN OF LFS_vbap,
vbeln TYPE vbap-vbeln, " Sales Document
posnr TYPE vbap-posnr, " Sales Document Item
kwmeng TYPE vbap-kwmeng, " Order quantity in sales units
matnr TYPE vbap-matnr, " Material Number
werks TYPE vbap-werks, " Plant
END OF lfs_vbap.
data lw_delnum type VBELN.
----
LOCAL TABLES DECLARATION *
----
DATA:
Lt_VBAP LIKE TABLE OF Lfs_VBAP, " To Store datata from vbeln..
lt_request TYPE STANDARD TABLE
OF bapideliciousrequest, " Data for Creating Deliveries
lt_created TYPE STANDARD TABLE OF bapideliciouscreateditems,
" To Store Delivery Item..
lt_return TYPE STANDARD TABLE OF bapiret2.
" Table for Return Parameters
----
LOCAL FIELD STRINGS DECLARATION *
----
DATA:
lfs_request type bapideliciousrequest,
" Work area for lt_request
lfs_created like line of lt_created.
" Work area for lt_created
SELECT vbeln posnr kwmeng matnr werks
INTO TABLE Lt_vbap
FROM vbap
WHERE vbeln = W_vbeln.
if sy-subrc <> 0.
write / text-002.
exit.
endif. " if sy-subrc <> 0
LOOP AT Lt_vbap INTO LFS_VBAP .
lfs_request-document_numb = lfs_vbap-vbeln.
lfs_request-document_item = lfs_vbap-posnr.
lfs_request-quantity_sales_uom = lfs_vbap-kwmeng.
lfs_request-id = 1.
lfs_request-document_type = 'A'.
lfs_request-delivery_date = sy-datum.
lfs_request-material = lfs_vbap-matnr.
lfs_request-plant = lfs_vbap-werks.
lfs_request-date = sy-datum.
lfs_request-goods_issue_date = sy-datum.
lfs_request-goods_issue_time = sy-uzeit.
APPEND lfs_request to lt_request.
ENDLOOP.
CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'
TABLES
request = lt_request
createditems = lt_created
return = lt_return.
READ TABLE t_return WITH KEY type = 'E'.
if sy-subrc eq 0.
write : / text-004.
EXIT.
ELSE.
perform commit_work. " To Call External Commit
READ TABLE lt_created into lfs_created INDEX 1.
WRITE: / text-001,
lfs_created-document_numb.
lw_delnum = lfs_created-document_numb.
perform transfer_order using lw_delnum.
" TRANSFER ORDER CREATION
ENDIF. " If sy-subrc eq 0
ENDFORM. " delivery_creation
plzz reward if it is usefull to u..
plzz dont forget to reward...
Regards
Sunil..
‎2008 Jan 23 2:11 PM
Hi,
Please refer to the link below :
http://www.saptechnical.com/Tutorials/BAPI/CustomBAPICreation/page1.htm
Thanks,
Sriram Ponna.
‎2008 Jan 23 2:12 PM
Hi,
You can use WS_DELIVERY_UPDATE or WS_DELIVERY_UPDATE_2 ..
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.
Regards,
Satish