2007-03-12

好康:7-11 City cafe 優惠券

憑券大杯75折,有效期間:3/15-4/25

請自己印下來使用囉

按這裡 按這裡

SAP:Range的應用

使用Range的好處,在於讓程式碼簡潔可以閱讀

這裡提供一段程式碼,請參考使用


*定義Range
*RANGE for AUFNR (紀錄工單號的集合)
DATA: rAUFNR LIKE RANGE OF GLPCA-AUFNR INITIAL SIZE 0 WITH HEADER LINE.

*新增一筆虛擬資料
MOVE: 'I' TO rAUFNR-SIGN,
'EQ' TO rAUFNR-OPTION,
'XXXX' TO rAUFNR-LOW.
APPEND rAUFNR.

*將工單號碼加入Range
*找到2007/1, 有原料耗用科目的工單, 加入Range
SELECT * FROM GLPCA WHERE RYEAR = '2007' AND
POPER = '1' AND
RACCT = '4101010100'.
"若沒有加入Range的, 才加入
IF GLPCA-AUFNR IN rAUFNR.
ELSE.
rAUFNR-SIGN = 'I'.
rAUFNR-OPTION = 'EQ'.
rAUFNR-LOW = GLPCA-AUFNR.
APPEND rAUFNR.
ENDIF.
ENDSELECT.

*使用Range
*訂單物料異動檔(AUFM), 找到剛剛篩選的工單
SELECT * FROM AUFM WHERE AUFNR in rAUFNR. "只要使用IN, 不需要寫一堆OR
IF AUFM-SHKZG = 'S'.
INV_PROFIT = INV_PROFIT + AUFM-DMBTR.
ELSE.
INV_PROFIT = INV_PROFIT - AUFM-DMBTR.
ENDIF.
ENDSELECT.

SAP:上傳檔案

既然可以由 SAP下載檔案,當然也有對應的檔案上傳的功能

當我們需要將一些參數由PC傳送至SAP主機時,這功能就很實用了


DATA: FNAME(128), FTYPE(3), FSIZE TYPE I.

*儲存資料
DATA: BEGIN OF i_Data OCCURS 10,
CATA(30) TYPE C,
HSL TYPE P,
END OF i_GLPCT.


*檔案上傳
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = 'C:\Upload\U_file.txt' "U_file.txt 要以Tab間隔
FILETYPE = 'DAT'
ITEM = '對照表檔案上傳'
IMPORTING
ACT_FILENAME = FNAME
ACT_FILETYPE = FTYPE
FILESIZE = FSIZE
TABLES
DATA_TAB = i_Data
EXCEPTIONS
INVALID_FILESIZE = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3.

SAP:下載檔案至PC端

當我們要將Internal table的資料 dump 至用戶的電腦上

我們可以下列寫法, 呼叫 Download..


DATA: FNAME(128), FTYPE(3), FSIZE TYPE I.

*欄位文字
data: begin of i_column occurs 0,
hd(50) type c,
end of i_column.

*儲存資料
DATA: BEGIN OF i_Data OCCURS 10,
CATA(30) TYPE C,
HSL TYPE P,
END OF i_GLPCT.


*欄位名稱輸入
move '類別' to i_column-hd. append i_column.
move '金額' to i_column-hd. append i_column.


*呼叫下載FUNCTUIN
CALL FUNCTION 'DOWNLOAD'
EXPORTING
FILENAME = 'C:\FileName.XLS'
FILETYPE = 'DAT'
ITEM = ' 下載 '
IMPORTING
ACT_FILENAME = FNAME
ACT_FILETYPE = FTYPE
FILESIZE = FSIZE
TABLES
DATA_TAB = i_Data
FIELDNAMES = i_column
EXCEPTIONS
INVALID_FILESIZE = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3.


補充一下, 如果將 IMPORTING段的程式碼刪除, 就不會再執行中, 一直詢問檔案名稱

如果一次會下載大量的檔案, 或者檔案名稱及位置都已經固定, 則這個關閉功能是很實用的