涉及到的表:
参数表:WWWPARAMS
对象主记录表:WWWDATA
锁定对象FM:ENQUEUE_E_WWW_HTML
对象解锁FM:DEQUEUE_E_WWW_HTML
一:模板上传
SAP中模板存在两种设置方法,一种是用代码写死EXCLE的表头,另一种是将本地的excle 上传至sap的服务器上,推荐第二种方法,因为第二种方法更加的灵活,方便.
事务代码:SMW0
输入创建的名称和对象描述,选择本地模板然后上传至SAP服务器.
二:模板下载
form frm_download .
data: lw_key type wwwdatatab,
l_down type rlgrap-filename,
l_name type rlgrap-filename,
l_path type rlgrap-filename,
l_path_s type string,
l_name_s type string,
l_path_f type string,
l_action type i,
g_save_path type string value 'C:\'.
clear: lw_key.
lw_key-relid = 'MI'.
lw_key-objid = 'ZPPR044'.
*这里就是刚刚导入的模板的对象名称
call method cl_gui_frontend_services=>file_save_dialog
exporting
window_title = '选择位置'
default_extension = 'xlsx'
default_file_name = '物料计划导入确认模板.xlsx' "这里填写下载模板的描述
file_filter = 'Excel Files(2007/2010/2013)|*.xlsx|Excel Files(2003)|*.xls'
initial_directory = g_save_path
changing
filename = l_name_s
path = l_path_s
fullpath = l_path_f
user_action = l_action
exceptions
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
invalid_default_file_name = 4
others = 5.
if sy-subrc <> 0.
message id sy-msgid
type sy-msgty
number sy-msgno
with sy-msgv1 sy-msgv2
sy-msgv3 sy-msgv4.
return.
else.
g_save_path = l_path_s.
if l_action eq cl_gui_frontend_services=>action_cancel.
message s398(00) with '用户取消操作'.
return.
endif.
endif.
l_down = l_path_f.
call function 'DOWNLOAD_WEB_OBJECT'
exporting
key = lw_key
destination = l_down.
call function 'SO_SPLIT_FILE_AND_PATH'
exporting
full_name = l_down
importing
stripped_name = l_name
file_path = l_path.
call function 'GUI_RUN'
exporting
command = 'EXCEL'
parameter = l_name
cd = l_path.
endform. " FRM_DOWNLOAD
三:利用模板数据上传
注意:it_itab 作为承接 EXCLE 内容的内表,它的参考结构必须与excle的字段顺序一样,如果顺序发生了变动,会报错。
types:begin of ty_itab,
werks(4),"工厂
ps_psp_pnr(24), "项目
xmmc(50), "项目名称
ccpno(18), "产成品描述(物料号)
cpgg(130), "产品规格(物料描述长文本)
kwmeng(15), "订单数量
lptime(9), "低压开工物料需求时间
hptime(9), "高压开工物料需求时间
gasbtime(9), "气箱需求时间
boxtime(9), "装箱/总装物料需求时间
ordertime(9), "要求下发采购申请日期
end of ty_itab.
*&---导入表
data:it_itab type table of ty_itab,
wa_itab type ty_itab.
call function 'F4_FILENAME'
exporting
program_name = '' " 输入的路劲
importing
file_name = p_file. " 输出路径
form frm_upload.
*&---文件数据导入到内表
data: t_raw_data type truxs_t_text_data.
call function 'TEXT_CONVERT_XLS_TO_SAP'
exporting
* I_FIELD_SEPERATOR =
i_line_header = 'X'
i_tab_raw_data = t_raw_data
i_filename = p_file
tables
i_tab_converted_data = it_itab
exceptions
conversion_failed = 1
others = 2.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform. "FRM_UPLOAD