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

bapi

Former Member
0 Likes
584

can anybody help me with bapi to create delivery note?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
543

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..

3 REPLIES 3
Read only

Former Member
0 Likes
544

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..

Read only

Former Member
0 Likes
543

Hi,

Please refer to the link below :

http://www.saptechnical.com/Tutorials/BAPI/CustomBAPICreation/page1.htm

Thanks,

Sriram Ponna.

Read only

Former Member
0 Likes
543

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