ABAP-VL01N创建交货单

发布时间 2023-06-09 14:36:14作者: TigerMan
 1 TYPES:BEGIN OF ty_data ,
 2         posnr TYPE lips-posnr,
 3         lgort TYPE lips-lgort,
 4       END OF ty_data.
 5 
 6 DATA:lt_import TYPE TABLE OF ty_data,
 7      ls_import TYPE ty_data.
 8 
 9 DATA:ls_item   TYPE bapidlvreftosalesorder,
10      lt_item   TYPE TABLE OF bapidlvreftosalesorder,
11      lv_vbeln  TYPE vbeln,
12      ls_return TYPE bapiret2,
13      lt_return TYPE TABLE OF bapiret2.
14 
15 CLEAR ls_item .
16 ls_item-ref_doc = ls_data-vbeln .
17 ls_item-ref_item = ls_data-posnr .
18 ls_item-dlv_qty = ls_data-kwmeng .
19 ls_item-sales_unit = ls_data-vrkme .
20 APPEND ls_item TO lt_item .
21 
22 CLEAR ls_import .
23 ls_import-posnr = <fs_data>-posnr .
24 ls_import-lgort = <fs_data>-lgort .
25 APPEND ls_import TO lt_import .
26 
27 EXPORT lt_import = lt_import TO MEMORY ID 'ZBSD011'.
28 
29 CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS'
30   EXPORTING
31     ship_point        = ls_data-vstel
32 *   DUE_DATE          =
33 *   DEBUG_FLG         =
34 *   NO_DEQUEUE        = ' '
35   IMPORTING
36     delivery          = lv_vbeln
37 *   NUM_DELIVERIES    =
38   TABLES
39     sales_order_items = lt_item
40 *   SERIAL_NUMBERS    =
41 *   EXTENSION_IN      =
42 *   DELIVERIES        =
43 *   CREATED_ITEMS     =
44 *   EXTENSION_OUT     =
45     return            = lt_return.
46 
47 FREE MEMORY ID 'ZBSD011'.
48 
49 IF lv_vbeln IS NOT INITIAL .
50 
51   CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
52     EXPORTING
53       wait = 'X'.
54 
55 ELSE .
56 
57   CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
58 *             IMPORTING
59 *               RETURN        =
60     .
61 
62 ENDIF .
这个BAPI涉及的字段较少,可以通过增强去实现没有BAPI没有的赋值