SAP系统中用Excel上载数据时,为防止用户用错模板,可以将excel模板保存在SMW0中,每次上载前通过程序再从SMW0下载下来。
1, SMW0 模板上载
Tcode SMW0选择‘Binary data...\'选项

<img class="alignnone size-full wp-image-3261" src="http://www.baidusap.com/wp-content/uploads/2017-02-28_13-30-13.png" alt="2017-02-28_13-30-13" width="573" height="225" />
输入package,运行
<img class="alignnone size-full wp-image-3262" src="http://www.baidusap.com/wp-content/uploads/2017-02-28_13-31-13.png" alt="2017-02-28_13-31-13" width="691" height="210" />
进入下一屏后,点击创建按钮添加excel文档,
<img class="alignnone size-full wp-image-3263" src="http://www.baidusap.com/wp-content/uploads/2017-02-28_13-31-45.png" alt="2017-02-28_13-31-45" width="769" height="398" srcset="http://www.baidusap.com/wp-content/uploads/2017-02-28_13-31-45.png 769w, http://www.baidusap.com/wp-content/uploads/2017-02-28_13-31-45-740x383.png 740w, http://www.baidusap.com/wp-content/uploads/2017-02-28_13-31-45-768x397.png 768w" sizes="(max-width: 769px) 100vw, 769px" />
如果出现下面的错误,提示’No MIME type assigned to object\',则需要为excel格式的文件创建一个类型,
<img class="alignnone size-full wp-image-3264" src="http://www.baidusap.com/wp-content/uploads/2017-02-28_13-32-29.png" alt="2017-02-28_13-32-29" width="506" height="178" />
MIME type创建通过菜单
<img class="alignnone size-full wp-image-3265" src="http://www.baidusap.com/wp-content/uploads/2017-02-28_18-18-42.png" alt="2017-02-28_18-18-42" width="553" height="247" />
点击新建按钮,输入type和扩展名(extension),保存即可。如下图,type是excel,扩展名是*.xls
<img class="alignnone size-full wp-image-3266" src="http://www.baidusap.com/wp-content/uploads/2017-02-28_18-19-39.png" alt="2017-02-28_18-19-39" width="386" height="235" />
2, 模板下载代码
下载主要通过函数DOWNLOAD_WEB_OBJECT()实现。
代码如下:
REPORT ZTEST_SMW0_DOWNLOAD.
DATA: lwa_wwwdata_tab LIKE wwwdatatab,
l_filename TYPE rlgrap-filename.
l_filename = \'C:/temp/xx.xlsx\'.
SELECT SINGLE *
FROM wwwdata
INNER JOIN tadir
ON wwwdata~objid = tadir~obj_name
INTO CORRESPONDING FIELDS OF lwa_wwwdata_tab
WHERE wwwdata~srtf2 = 0
AND wwwdata~relid = \'MI\' "标识二进制的对象
AND tadir~pgmid = \'R3TR\'
AND tadir~object = \'W3MI\'
AND tadir~obj_name = \'ZGA_NONSTPRICE\'."模板名字
IF sy-subrc = 0.
CALL FUNCTION \'DOWNLOAD_WEB_OBJECT\'
EXPORTING
key = lwa_wwwdata_tab
destination = l_filename.
ENDIF.
SWM0中内容:
<img class="alignnone size-full wp-image-3269" src="http://www.baidusap.com/wp-content/uploads/2017-02-28_18-47-36.png" alt="2017-02-28_18-47-36" width="788" height="237" srcset="http://www.baidusap.com/wp-content/uploads/2017-02-28_18-47-36.png 788w, http://www.baidusap.com/wp-content/uploads/2017-02-28_18-47-36-740x223.png 740w, http://www.baidusap.com/wp-content/uploads/2017-02-28_18-47-36-768x231.png 768w" sizes="(max-width: 788px) 100vw, 788px" />
如果要通过程序上载模板文件到SMW0中,可以用函数UPLOAD_WEB_OBJECT()实现。
以上。