備份程式對程式設計師來說是一個相當重要的工作,雖然 SAP 本身已有 Version Management,但異地備份的工作仍不能省略,至少對自己重要的程式身邊留一份比較安全。
主要的語法 READ REPORT 'ZXXXXX' INTO [INTERNAL TABLE].
透過上面語法把程式寫入 Internal Table 後,再使用 GUI_DOWNLOAD 下載到本機電腦
REPORT Z_EX_DOWNLOAD_PROGRAM.
TYPES: ABAPLINE(255) TYPE C.
DATA: IT_REPSRC TYPE STANDARD TABLE OF ABAPLINE.
DATA: FILENAME TYPE STRING.
PARAMETERS : P_PROG(60) TYPE C.
READ REPORT P_PROG INTO IT_REPSRC.
CONCATENATE 'C:\' P_PROG '.TXT' INTO FILENAME.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = FILENAME
TABLES
DATA_TAB = IT_REPSRC
EXCEPTIONS
OTHERS = 22.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
另外也可以透過 package name 下載該 package 下的所有 Z report (follow program from : http://scn.sap.com/thread/1258318)
REPORT ZDOWN_PACKG
* Author: Pulak Mandal
***********************************************************************
* Table declaration *
***********************************************************************
TABLES: TADIR.
***********************************************************************
* Data declaration *
***********************************************************************
TYPES: ABAPLINE(255) TYPE C.
TYPES: BEGIN OF TY_REPOSIT,
PGMID TYPE TADIR-PGMID,
OBJECT TYPE TADIR-OBJECT,
OBJ_NAME TYPE TADIR-OBJ_NAME,
DEVCLASS TYPE TADIR-DEVCLASS,
END OF TY_REPOSIT.
DATA: IT_REPOSIT TYPE STANDARD TABLE OF TY_REPOSIT,
WA_REPOSIT TYPE TY_REPOSIT.
DATA: IT_REPSRC TYPE STANDARD TABLE OF ABAPLINE,
WA_REPSRC TYPE ABAPLINE.
DATA: PROG(60) TYPE C,
MC_FILENAME TYPE RLGRAP-FILENAME,
FILENAME TYPE STRING.
***********************************************************************
* Selection Screen *
***********************************************************************
PARAMETERS: P_DEV TYPE TADIR-DEVCLASS. "Package Name
*****Program Logic
SELECT PGMID
OBJECT
OBJ_NAME
DEVCLASS
FROM TADIR
INTO TABLE IT_REPOSIT
WHERE PGMID = 'R3TR' AND
OBJECT = 'PROG' AND
DEVCLASS = P_DEV.
IF SY-SUBRC NE 0.
MESSAGE 'No programs available in the given package' TYPE 'E'.
EXIT.
ENDIF.
* Get the program names and download to the given path
LOOP AT IT_REPOSIT INTO WA_REPOSIT.
PROG = WA_REPOSIT-OBJ_NAME.
clear it_repsrc.
READ REPORT PROG INTO IT_REPSRC.
CONCATENATE 'C:\Documents and Settings\Administrator\Desktop\My ABAP Programs\Report' PROG '.txt'
INTO MC_FILENAME.
FILENAME = MC_FILENAME.
*****Function module for download files into local system
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = FILENAME
TABLES
DATA_TAB = IT_REPSRC
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR PROG.
CLEAR WA_REPSRC.
ENDLOOP.
*****After download all the programs to intimate user.
MESSAGE 'Check your folder for the Programs downloaded' TYPE 'S'.
不過以上方法只能備份 Z_REPORT 的內容,無法保存相對應的 SCREEN / STATUS / TITLE
這部份則能參考 http://scn.sap.com/message/589195#589195 中所提到的 http://www.dalestech.com/ 提供的 Code http://www.dalestech.com/products/massdownload.htm
透過他們程式則可以針對所有 Program 引用的 Object 全都下載下來
沒有留言:
張貼留言