天天看點

SWM0-Excel模闆上載以及模闆下載下傳程式

SAP系統中用Excel上載資料時,為防止使用者用錯模闆,可以将excel模闆儲存在SMW0中,每次上載前通過程式再從SMW0下載下傳下來。

1, SMW0 模闆上載

Tcode SMW0選擇‘Binary data...\'選項

SWM0-Excel模闆上載以及模闆下載下傳程式

<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,運作

SWM0-Excel模闆上載以及模闆下載下傳程式

<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文檔,

SWM0-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格式的檔案建立一個類型,

SWM0-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建立通過菜單

SWM0-Excel模闆上載以及模闆下載下傳程式

<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

SWM0-Excel模闆上載以及模闆下載下傳程式

<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中内容:

SWM0-Excel模闆上載以及模闆下載下傳程式

<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()實作。

以上。