11-02-2006 10:49 AM
HI,
I want to take a back up of custom developed programs. So i want to download all the programs developed in a developemnt class at once.
I have done in past, but don't remember the program or process now.
Points will be rewarded for helpful answers
Thanks
11-02-2006 10:51 AM
HI,
First check in tadir that the given package is valid
SELECT SINGLE devclass FROM tadir INTO ws_devclass WHERE devclass = p_devcls.
Select all the records from TADIR table where OBJECT = 'FUGR' and PGMID = 'R3TR '.
In this way u can get all the FUnction group for that package.
For getting the function module under the function module use the FM RS_FUNCTION_POOL_CONTENTS to get all the function module under the Function group.
Usign the table tfdir get the program name of the Function module.
Using the FM 'GET_INCLUDETAB' get all the includes
for that PRogram name.
Loop at the internal table which you got from the function module.
Use the READ REPORT prog INTO itab.
Download the contents to the place where you want.
Reward points if this Helps.
Manish
11-02-2006 11:01 AM
Hi:
just try this -
Following is the code for downloading program to selected directory.
REPORT ZABAPDL2 LINE-SIZE 80 LINE-COUNT 50 NO STANDARD PAGE HEADING.
************************************************************************
PROGRAM : ZABAPDL2 *
DESCRIPTION : This program will download programs to a *
selected directory. *
************************************************************************
TABLES: TRDIR, "System table TRDIR
BHDGD. "Report headings
CONSTANTS: INCL(1) TYPE C VALUE 'I',
SAPP(4) TYPE C VALUE 'SAP*',
ABAP_FILE(4) TYPE C VALUE '.SAP',
TEXT_FILE(4) TYPE C VALUE '.TXT'.
DATA: BEGIN OF Z_NAME OCCURS 100,
PROG LIKE TRDIR-NAME,
TYPE LIKE TRDIR-SUBC,
PPATH(128) TYPE C,
TPATH(128) TYPE C,
END OF Z_NAME.
DATA: BEGIN OF Z_TEXT OCCURS 20.
INCLUDE STRUCTURE TEXTPOOL.
DATA: END OF Z_TEXT.
DATA: BEGIN OF Z_INTTAB OCCURS 100,
CONTENTS(80) TYPE C,
END OF Z_INTTAB.
DATA: FILE(42) TYPE C,
Z_ANSWER(1) TYPE C.
DATA: SEL_COND(72) OCCURS 1 WITH HEADER LINE.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(53) TEXT-003.
PARAMETERS: P_PROG LIKE TRDIR-NAME OBLIGATORY DEFAULT 'Z*'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP 1.
PARAMETERS: P_PATH(30) OBLIGATORY DEFAULT 'A:\'.
SELECTION-SCREEN SKIP 2.
SELECTION-SCREEN BEGIN OF BLOCK BL2 WITH FRAME TITLE TEXT-002.
SELECTION-SCREEN SKIP 1.
PARAMETERS: P_INCL AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN SKIP 1.
PARAMETERS: P_SAP AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN SKIP 1.
PARAMETERS: P_TEXT AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK BL2.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK RAD1
WITH FRAME TITLE TEXT-004.
SELECT-OPTIONS : S_USER FOR TRDIR-CNAM ,
S_USERL FOR TRDIR-UNAM .
SELECTION-SCREEN END OF BLOCK RAD1.
SELECTION-SCREEN END OF BLOCK BL1.
START-OF-SELECTION.
P_PATH+29(1) = '\'.
CONDENSE P_PATH NO-GAPS.
IF P_PATH CS '
'.
REPLACE '
' WITH '\' INTO P_PATH.
ENDIF.
IF P_PROG CS '*'.
TRANSLATE P_PROG USING '*%'.
ENDIF.
MOVE: SY-LINSZ TO BHDGD-LINES, "Line Size
SY-UNAME TO BHDGD-UNAME,
SY-REPID TO BHDGD-REPID,
SY-TITLE TO BHDGD-LINE1,
'0' TO BHDGD-INIFL, "Flag for reinitializing
'BUKRS' TO BHDGD-DOMAI. "Domain Name
CLEAR: Z_NAME, SEL_COND.
REFRESH: Z_NAME, SEL_COND.
IF P_INCL EQ ' '.
CLEAR SEL_COND.
CONCATENATE ' subc ne ''' INCL '''' INTO SEL_COND.
APPEND SEL_COND.
ENDIF.
IF P_INCL EQ ' '
AND P_SAP EQ ' '.
CLEAR SEL_COND.
CONCATENATE ' and cnam ne ''' SAPP '''' INTO SEL_COND.
APPEND SEL_COND.
ENDIF.
IF P_INCL EQ 'X'
AND P_SAP EQ ' '.
CLEAR SEL_COND.
CONCATENATE ' cnam ne ''' SAPP '''' INTO SEL_COND.
APPEND SEL_COND.
ENDIF.
PERFORM POPUP_TO_CONFIRM.
TOP-OF-PAGE.
FORMAT INTENSIFIED.
PERFORM BATCH-HEADING(RSBTCHH0).
FORMAT INTENSIFIED OFF.
ULINE.
WRITE:/.
WRITE:/ 'Program', P_PROG COLOR COL_TOTAL.
WRITE:/ 'Path ', P_PATH COLOR COL_TOTAL.
WRITE:/.
ULINE.
----
FORM SELECT_PROGRAMS *
----
........ *
----
FORM SELECT_PROGRAMS.
SELECT * FROM TRDIR
WHERE NAME LIKE P_PROG
AND CNAM IN S_USER
AND UNAM IN S_USERL
AND (SEL_COND).
PERFORM BUILD_FILE_PATH.
Z_NAME-PROG = TRDIR-NAME.
Z_NAME-TYPE = TRDIR-SUBC.
APPEND Z_NAME.
ENDSELECT.
ENDFORM.
----
FORM BUILD_FILE_PATH *
----
Program filename will be in the format of XXXXXXXX.SAP *
Text filename will be in the format of XXXXXXXX.TXT *
----
FORM BUILD_FILE_PATH.
CLEAR FILE.
MOVE P_PATH TO FILE.
FILE+30(8) = TRDIR-NAME.
FILE+38(4) = ABAP_FILE.
CONDENSE FILE NO-GAPS.
Z_NAME-PPATH = FILE.
CLEAR FILE.
MOVE P_PATH TO FILE.
FILE+30(8) = TRDIR-NAME.
FILE+38(4) = TEXT_FILE.
CONDENSE FILE NO-GAPS.
Z_NAME-TPATH = FILE.
ENDFORM.
----
FORM DOWNLOAD_TO_FILE *
----
........ *
----
FORM DOWNLOAD_TO_FILE.
LOOP AT Z_NAME.
PERFORM DOWNLOAD_PROGRAM.
IF P_TEXT EQ 'X'
AND Z_NAME-TYPE EQ '1'.
PERFORM DOWNLOAD_TEXT.
ENDIF.
ENDLOOP.
ENDFORM.
----
FORM DOWNLOAD_PROGRAM *
----
........ *
----
FORM DOWNLOAD_PROGRAM.
CLEAR Z_INTTAB.
REFRESH Z_INTTAB.
READ REPORT Z_NAME-PROG INTO Z_INTTAB.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = Z_NAME-PPATH
FILETYPE = 'ASC'
TABLES
DATA_TAB = Z_INTTAB.
IF SY-SUBRC EQ 0.
WRITE:/ 'Program', Z_NAME-PROG, 'successfully downloaded'
COLOR COL_NORMAL.
ELSE.
WRITE:/ 'Program', Z_NAME-PROG, 'download failed '
COLOR COL_NEGATIVE.
ENDIF.
ENDFORM.
----
FORM DOWNLOAD_TEXT *
----
........ *
----
FORM DOWNLOAD_TEXT.
CLEAR Z_TEXT.
REFRESH Z_TEXT.
READ TEXTPOOL Z_NAME-PROG INTO Z_TEXT LANGUAGE SY-LANGU.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = Z_NAME-TPATH
FILETYPE = 'ASC'
TABLES
DATA_TAB = Z_TEXT.
IF SY-SUBRC EQ 0.
WRITE:/ 'Text ', Z_NAME-PROG, 'successfully downloaded'
COLOR COL_NORMAL.
ELSE.
WRITE:/ 'Text ', Z_NAME-PROG, 'download failed '
COLOR COL_NEGATIVE.
ENDIF.
ENDFORM.
----
FORM POPUP_TO_CONFIRM *
----
........ *
----
FORM POPUP_TO_CONFIRM.
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
TEXTLINE1 = 'Are you sure you want to download'
TEXTLINE2 = P_PROG
TITEL = 'Confirmation popup window'
IMPORTING
ANSWER = Z_ANSWER
EXCEPTIONS
OTHERS = 1.
IF Z_ANSWER EQ 'J'.
PERFORM SELECT_PROGRAMS.
IF SY-SUBRC EQ 0.
PERFORM DOWNLOAD_TO_FILE.
ELSE.
WRITE:/ 'No programs were found' COLOR COL_NEGATIVE.
ENDIF.
ENDIF.
ENDFORM.
11-02-2006 12:00 PM
hi
good
try this program
Selection parameter descriptions:
SO_NAME = Program name
SO_DEVC = Development class
PATHNAME = Destination drive and folder
P_AUTHOR = Program author
-
REPORT ZZDOWNLD.
TABLES: TRDIR, TADIR.
DATA: BEGIN OF REPLIST OCCURS 200, NAME(8) TYPE C, END OF REPLIST.
DATA: BEGIN OF BUFFER OCCURS 0, LINE(72) TYPE C, END OF BUFFER.
DATA: FILENAME(128) TYPE C, FILELENGTH(10) TYPE C.
SELECT-OPTIONS : SO_NAME FOR TADIR-OBJ_NAME.
SELECT-OPTIONS : SO_DEVC FOR TADIR-DEVCLASS.
PARAMETERS : PATHNAME(40).
PARAMETERS: P_AUTHOR LIKE SY-UNAME DEFAULT SY-UNAME.
SELECT * FROM TADIR
WHERE DEVCLASS IN SO_DEVC
AND OBJECT = 'PROG'
AND OBJ_NAME IN SO_NAME
AND AUTHOR = P_AUTHOR.
SELECT * FROM TRDIR
WHERE NAME = TADIR-OBJ_NAME AND CNAM = P_AUTHOR.
MOVE TRDIR-NAME TO REPLIST-NAME.
APPEND REPLIST.
ENDSELECT.
ENDSELECT.
LOOP AT REPLIST.
READ REPORT REPLIST-NAME INTO BUFFER.
FILENAME = PATHNAME.
FILENAME+40 = REPLIST-NAME.
FILENAME+50 = '.'.
FILENAME+51 = 'txt' "helpful to replace with SY-SYSID
CONDENSE FILENAME NO-GAPS.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = FILENAME
FILETYPE = 'ASC'
IMPORTING
FILELENGTH = FILELENGTH
TABLES
DATA_TAB = BUFFER
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2.
CASE SY-SUBRC.
WHEN 0.
WHEN 1.
WRITE : / 'did not download', FILENAME, 'error opening file.'.
WHEN 2.
WRITE : / 'did not download', FILENAME, 'error reading file.'.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
thanks
mrutyun^