第一步 CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS'
这个参数少,没有库位,批号信息
第二步 BADI 增强内部传值
第三步 修改交货单加上批次
源码:
*&---------------------------------------------------------------------*
REPORT zsd017.
TABLES: sscrfields,pbim.
DATA: ls_functxt TYPE smp_dyntxt. "功能代码文本
DATA: gv_flag TYPE c LENGTH 2 .
TYPES: BEGIN OF ty_upload,
vbeln LIKE vbap-vbeln , " 订单号
posnr LIKE vbap-posnr , " 订单行项目
posnr2 LIKE vbap-posnr , " 订单行项目
erdat LIKE lips-erdat,
posnr3 LIKE lips-posnr,
lgort LIKE lips-lgort,
lfimg LIKE lips-lfimg,
charg TYPE lips-charg,
pc02 TYPE c LENGTH 10,
vbeln_dn TYPE lips-vbeln,
icon TYPE icon_d,
zmsg TYPE char255,
zmsg2 TYPE char255,
END OF ty_upload.
DATA: lf_vbeln TYPE vbeln_vl,
lf_num TYPE vbnum,
ls_deli TYPE bapishpdelivnumb,
lt_deli TYPE TABLE OF bapishpdelivnumb,
lt_order TYPE TABLE OF bapidlvreftosalesorder,
ls_order TYPE bapidlvreftosalesorder,
ls_itm TYPE bapidlvitemcreated,
lt_itm TYPE TABLE OF bapidlvitemcreated,
ls_ext TYPE bapiparex,
lt_extin TYPE TABLE OF bapiparex,
lt_extout TYPE TABLE OF bapiparex,
ls_ret TYPE bapiret2,
lt_return TYPE TABLE OF bapiret2.
TYPES:BEGIN OF ty_vbap,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
kwmeng LIKE vbap-kwmeng,
meins LIKE vbap-meins,
END OF ty_vbap.
DATA:it_vbap TYPE TABLE OF ty_vbap.
DATA:ws_vbap TYPE ty_vbap.
DATA: gt_out TYPE TABLE OF ty_upload,
gs_out TYPE ty_upload.
DATA: gt_fieldcat TYPE TABLE OF slis_fieldcat_alv.
DATA: gs_fieldcat TYPE slis_fieldcat_alv.
DATA: gs_layout TYPE slis_layout_alv .
PARAMETERS: p_erdat LIKE vbak-erdat OBLIGATORY .
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001.
PARAMETERS: p_path LIKE rlgrap-filename MODIF ID m1.
SELECTION-SCREEN END OF BLOCK blk1.
INITIALIZATION.
SELECTION-SCREEN: FUNCTION KEY 1.
ls_functxt-icon_id = icon_export. "给FUNCTXT_01按钮设置图标
ls_functxt-quickinfo = '模版选择下载'. "给FUNCTXT_01按钮设置指针悬停文本
ls_functxt-icon_text = '模板选择下载'. "给FUNCTXT_01按钮设置显示文本
sscrfields-functxt_01 = ls_functxt.
AT SELECTION-SCREEN.
IF sy-ucomm = 'FC01'.
PERFORM frm_download.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
DATA: l_filename LIKE rlgrap-filename.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
* DEF_FILENAME = ',*.XLSX,*.XLSX;,*.XLS,*.XLS;'
* DEF_PATH = ' '
mask = ',Excel file,*.xls;*.xlsx;' "
mode = 'O'
* TITLE = ' '
IMPORTING
filename = l_filename
* RC =
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
IF sy-subrc = 0.
p_path = l_filename.
ENDIF.
START-OF-SELECTION.
"提示选择导入文件
IF p_path IS INITIAL.
MESSAGE '请选择导入文件!' TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
RETURN.
ENDIF.
PERFORM frm_upload.
PERFORM check_data .
PERFORM display_alv .
*------------------------------------------------------------------