Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

How to download a ABAP report to text file

Former Member
0 Kudos

Hi Experts,

I want to save a ABAP report to a local file in my PC (*txt format). Since it uses a lot of includes, I have to download those ones too.. Is there is quickway to save the main program and all it's subprograms to a text file ?

Regards

Shibu

2 REPLIES 2

Former Member
0 Kudos

Hi,

Try this report, it will solve u r problem,

TABLES:TRDIR.

SELECT-OPTIONS: PGMNAME FOR TRDIR-NAME.

CONSTANTS: LINESIZE value 2048.

PARAMETERS:

HEADING AS CHECKBOX DEFAULT 'X',

FGROUP AS CHECKBOX,

USER LIKE TRDIR-CNAM DEFAULT '*',

DOWNLOAD AS CHECKBOX default 'X',

pa_TEXTP AS CHECKBOX,

DOWNDIR(80) DEFAULT 'C:\temp\',

chg_date(8) default '19000101',

chg_time(6) default '000000'.

  • ,

  • PGMNAME like TRDIR-NAME.

DATA:

W_TEXT(128),

W_FILENAME(128),

W_PROGRAM_LOW(8),

W_PROGRAM_HIGH(8).

DATA:

  • _texttab type textpool,

texttab type standard table of textpool initial size 0

with header line,

  • BEGIN OF TEXTTAB OCCURS 0,

  • ID(1),

  • KEY(8),

  • ENTRY(70),

  • END OF TEXTTAB,

BEGIN OF ABAPTAB OCCURS 500,

  • LINE(72),

line(LINESIZE),

END OF ABAPTAB,

BEGIN OF TRTAB OCCURS 0,

NAME LIKE TRDIR-NAME,

ENTRY LIKE TEXTTAB-ENTRY,

CDAT LIKE TRDIR-CDAT,

UDAT LIKE TRDIR-UDAT,

END OF TRTAB,

BEGIN OF TRFTAB OCCURS 0,

NAME LIKE TRDIR-NAME,

ENTRY LIKE TEXTTAB-ENTRY,

CDAT LIKE TRDIR-CDAT,

UDAT LIKE TRDIR-UDAT,

END OF TRFTAB.

START-OF-SELECTION.

IF FGROUP = ' '.

PERFORM LOAD_TRDIR_PROGRAM.

PERFORM PROCESS_PROGRAM.

ELSE.

PERFORM LOAD_TRDIR_FGROUP.

PERFORM PROCESS_FGROUP.

ENDIF.

&----


*& form load_trdir_program.

&----


FORM LOAD_TRDIR_PROGRAM.

SELECT * FROM TRDIR

WHERE NAME IN PGMNAME

and sdate >= chg_date

and stime >= chg_time.

IF USER <> '*'.

CHECK TRDIR-UNAM = USER OR

TRDIR-CNAM = USER.

ENDIF.

CLEAR: TEXTTAB.

REFRESH: TEXTTAB.

CLEAR: TRTAB.

READ TEXTPOOL TRDIR-NAME INTO TEXTTAB LANGUAGE 'E'.

IF SY-SUBRC = 0.

READ TABLE TEXTTAB WITH KEY 'R'.

MOVE TEXTTAB-ENTRY TO TRTAB-ENTRY.

ENDIF.

MOVE TRDIR-NAME TO TRTAB-NAME.

MOVE TRDIR-CDAT TO TRTAB-CDAT.

MOVE TRDIR-UDAT TO TRTAB-UDAT.

APPEND TRTAB.

CLEAR: TEXTTAB.

ENDSELECT.

ENDFORM. " load_trdir_program

&----


*& Form load_trdir_fgroup

&----


FORM LOAD_TRDIR_FGROUP.

SELECT * FROM TRDIR

WHERE NAME BETWEEN 'SAPLYYYY' AND 'SAPLZZZZ'.

CHECK TRDIR-UNAM = USER OR TRDIR-CNAM = USER.

CLEAR: TEXTTAB.

CLEAR: TRTAB.

REFRESH: TEXTTAB.

READ TEXTPOOL TRDIR-NAME INTO TEXTTAB LANGUAGE 'E'.

IF SY-SUBRC = 0.

READ TABLE TEXTTAB WITH KEY 'R'.

MOVE TEXTTAB-ENTRY TO TRTAB-ENTRY.

ENDIF.

MOVE TRDIR-NAME TO TRTAB-NAME.

MOVE TRDIR-CDAT TO TRTAB-CDAT.

MOVE TRDIR-UDAT TO TRTAB-UDAT.

APPEND TRTAB.

CLEAR: TEXTTAB.

ENDSELECT.

LOOP AT TRTAB.

MOVE-CORRESPONDING TRTAB TO TRFTAB.

APPEND TRFTAB.

MOVE TRTAB-NAME+3(5) TO W_PROGRAM_LOW.

MOVE '%' TO W_PROGRAM_LOW+5(1).

MOVE TRTAB-NAME+3(5) TO W_PROGRAM_HIGH.

MOVE 'MMMMMMMM' TO W_PROGRAM_HIGH.

SELECT * FROM TRDIR

WHERE NAME LIKE W_PROGRAM_LOW.

*where name between w_program_low and w_program_high.

CHECK TRDIR-NAME+5(1) <> '$'.

CHECK TRDIR-NAME(5) =

TRTAB-NAME+3(5).

READ TEXTPOOL TRDIR-NAME INTO

TEXTTAB LANGUAGE 'E'.

READ TABLE TEXTTAB WITH KEY 'R'.

MOVE TEXTTAB-ENTRY TO TRFTAB-ENTRY.

MOVE TRDIR-NAME TO TRFTAB-NAME.

MOVE TRDIR-CDAT TO TRFTAB-CDAT.

MOVE TRDIR-UDAT TO TRFTAB-UDAT.

APPEND TRFTAB.

ENDSELECT.

ENDLOOP.

ENDFORM. " load_trdir_fgroup.

----


  • FORM PROCESS_PROGRAM

*

----


  • ........ *

----


FORM PROCESS_PROGRAM.

LOOP AT TRTAB.

READ REPORT TRTAB-NAME INTO ABAPTAB.

IF DOWNLOAD = 'X'.

PERFORM DOWNLOAD_PROGRAMS USING TRTAB-NAME.

ELSE.

PERFORM LIST_PROGRAMS USING TRTAB-NAME.

ENDIF.

IF pa_TEXTP = 'X'.

READ TEXTPOOL TRTAB-NAME INTO TEXTTAB LANGUAGE

'E'.

IF SY-SUBRC = 0 AND DOWNLOAD = 'X'.

PERFORM DOWNLOAD_TEXTPOOL USING

TRTAB-NAME.

ENDIF.

LOOP AT TEXTTAB.

WRITE:/

TEXTTAB-ID,

TEXTTAB-KEY,

TEXTTAB-ENTRY.

ENDLOOP.

ENDIF.

ENDLOOP.

ENDFORM.

----


  • FORM PROCESS_fgroup

*

----


  • ........ *

----


FORM PROCESS_FGROUP.

LOOP AT TRFTAB.

READ REPORT TRFTAB-NAME INTO ABAPTAB.

IF DOWNLOAD = 'X'.

PERFORM DOWNLOAD_PROGRAMS USING TRFTAB-NAME.

ELSE.

PERFORM LIST_PROGRAMS USING TRFTAB-NAME

.

ENDIF.

IF pa_TEXTP = 'X'.

READ TEXTPOOL TRFTAB-NAME INTO TEXTTAB LANGUAGE

'E'.

IF SY-SUBRC = 0 AND DOWNLOAD = 'X'.

PERFORM DOWNLOAD_TEXTPOOL USING

TRFTAB-NAME.

LOOP AT TEXTTAB.

WRITE:/

TEXTTAB-ID,

TEXTTAB-KEY,

TEXTTAB-ENTRY.

ENDLOOP.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM.

&----


*& Form DOWNLOAD_PROGRAMS

&----


FORM DOWNLOAD_PROGRAMS USING NAME.

W_TEXT = 'Downloading'.

W_TEXT+15(8) = NAME.

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

TEXT = W_TEXT

EXCEPTIONS

OTHERS = 1.

clear w_filename.

MOVE DOWNDIR TO W_FILENAME(80).

  • MOVE NAME TO W_FILENAME+20(8).

  • MOVE '.txt' TO W_FILENAME+28(4).

  • CONDENSE W_FILENAME NO-GAPS.

concatenate w_filename name '.doc' into w_filename.

condense w_filename no-gaps.

CALL FUNCTION 'WS_DOWNLOAD'

EXPORTING

FILENAME = W_FILENAME

FILETYPE = 'ASC'

TABLES

DATA_TAB = ABAPTAB

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_WRITE_ERROR = 2

INVALID_FILESIZE = 3

INVALID_TABLE_WIDTH = 4

INVALID_TYPE = 5

NO_BATCH = 6

UNKNOWN_ERROR = 7

OTHERS = 8.

ENDFORM. " DOWNLOAD_PROGRAMS

&----


*& Form LIST_PROGRAMS

&----


FORM LIST_PROGRAMS USING NAME.

LOOP AT ABAPTAB.

WRITE:/ NAME, ABAPTAB-LINE.

ENDLOOP.

ENDFORM. " LIST_PROGRAMS

&----


*& Form DOWNLOAD_TEXTPOOL

&----


FORM DOWNLOAD_TEXTPOOL USING NAME.

W_TEXT = 'Textpool...'.

W_TEXT+15(8) = NAME.

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

TEXT = W_TEXT

EXCEPTIONS

OTHERS = 1.

MOVE DOWNDIR TO W_FILENAME(80).

MOVE TRTAB-NAME TO W_FILENAME+20(8).

MOVE '.tpl' TO W_FILENAME+28(4).

CONDENSE W_FILENAME NO-GAPS.

CALL FUNCTION 'WS_DOWNLOAD'

EXPORTING

FILENAME = W_FILENAME

FILETYPE = 'ASC'

TABLES

DATA_TAB = TEXTTAB

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_WRITE_ERROR = 2

INVALID_FILESIZE = 3

INVALID_TABLE_WIDTH = 4

INVALID_TYPE = 5

NO_BATCH = 6

UNKNOWN_ERROR = 7

OTHERS = 8.

ENDFORM. " DOWNLOAD_TEXTPOOL

TOP-OF-PAGE.

IF HEADING = 'X'.

  • Place your heading here:

  • call function 'Z_WRITE_HEADER_FOOTER'

  • exporting

  • type = 'H'

  • exceptions

  • others = 1.

*

  • skip 1.

ENDIF.

Regards

Nilesh

Former Member
0 Kudos

Hi,

Here is the program which will download all the things

REPORT ZZBGS106  MESSAGE-ID Z1.
*----------------------------------------------------------------------*
* Description: Utillity used for downloading abap/4 source code and    *
*              text elements to the desktop using ws_download.         *
*              Is useful as backup or for transporting to another site.*
*              You must run this program in foreground/online due to   *
*              the use of ws_download throug the SAPGUI.               *
*                                                                      *
* Implementing The program is client independent.                      *
*                                                                      *
* Authoriza.   No Authorization check.                                 *
*                                                                      *
* Submitting:  Run by SA38, SE38.                                      *
*                                                                      *
* Parametre:   You can use generic values when filling the parameters  *
*              except for the Path.                                    *
*                                                                      *
* Customizing: No need for customization.                              *
*                                                                      *
* Change of    You only need to do the syntax check at releasechanges. *
* release:                                                             *
*                                                                      *
* R/3 Release: Developed and tested in R/3 Release:                    *
*              2.2F                                                    *
*              3.0D                                                    *
*                                                                      *
* Programmer:  Benny G. Sørensen, BGS-Consulting                       *
* Date:        Nov 1996.                                               *
*                                                                      *
* Version  1
*-------------------------------Corrections----------------------------*
* Date        Userid     Correction     Text                           *
* 11.11.1996  BGS        :::::::::::::: Start of development           *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* Tables                                                               *
*----------------------------------------------------------------------*
TABLES: TRDIR      "Application Masterdata
       .
*----------------------------------------------------------------------*
* Parameters                                                           *
*----------------------------------------------------------------------*
SELECT-OPTIONS: REPO FOR TRDIR-NAME.
PARAMETERS:     PATH(60) TYPE C DEFAULT 'C:SAP'.

*----------------------------------------------------------------------*
* Work Variables and internal tables                                   *
*----------------------------------------------------------------------*
DATA: BEGIN OF TABSOURCE OCCURS 10
       ,SOURCE(72) TYPE C
     ,END OF TABSOURCE.

DATA: BEGIN OF TABTEXT OCCURS 50
       ,TAB LIKE TEXTPOOL
     ,END OF TABTEXT.

DATA: BEGIN OF TABRDIR OCCURS 100
       ,RDIR LIKE TRDIR
     ,END OF TABRDIR.

DATA: FILENAME   LIKE RLGRAP-FILENAME
     ,MODE       TYPE C VALUE ' '
     ,RDIRROWS   TYPE I
     ,SOURCEROWS TYPE I
     ,RC         TYPE I
     ,LENGTH     TYPE I
     .
FIELD-SYMBOLS: <P> .

*----------------------------------------------------------------------*
* Constants                                                            *
*----------------------------------------------------------------------*
DATA: OK         TYPE I VALUE 0
     ,FAIL       TYPE I VALUE 1.

*----------------------------------------------------------------------*
* EVENT: validate users entries on the selection screen                *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
DATA: I TYPE I.
  DESCRIBE TABLE REPO LINES I.
  IF I <= 0.
    SET CURSOR FIELD REPO.
    MESSAGE E065 WITH TEXT-101.
  ENDIF.

*----------------------------------------------------------------------*
* EVENT: Start-Of-Selection                                            *
*----------------------------------------------------------------------*
START-OF-SELECTION.
* Set slash at the end of path if not speciefied by user
  CONDENSE PATH NO-GAPS.
  LENGTH = STRLEN( PATH ) .
  SUBTRACT 1 FROM LENGTH.
  ASSIGN PATH+LENGTH(1) TO <P>.
  IF <P> <> ''.
    ADD 1 TO LENGTH.
    ASSIGN PATH+LENGTH TO <P>.
    <P> = ''.
  ENDIF.

  SELECT * FROM TRDIR INTO TABLE TABRDIR WHERE NAME IN REPO.
  DESCRIBE TABLE TABRDIR LINES RDIRROWS.
  CHECK RDIRROWS > 0.

* For every selected program:
  LOOP AT TABRDIR.
    MOVE TABRDIR TO TRDIR.
    PERFORM DOWNLOAD_SOURCE USING RC.
    CHECK RC = OK.
    PERFORM DOWNLOAD_TEXTPOOL USING RC.
  ENDLOOP.

*----------------------------------------------------------------------*
* FORM: Download_Sourcecode                                            *
*----------------------------------------------------------------------*
FORM DOWNLOAD_SOURCE USING RC.
  RC = FAIL.
  CLEAR:   TABSOURCE, FILENAME.
  REFRESH: TABSOURCE.
  READ REPORT TRDIR-NAME INTO TABSOURCE.
  DESCRIBE TABLE TABSOURCE LINES SOURCEROWS.
  CHECK SOURCEROWS > 0.

  CALL FUNCTION 'STRING_CONCATENATE_3'                "R. 2.2F
       EXPORTING                                      "R. 2.2F
            STRING1 = PATH                            "R. 2.2F
            STRING2 = TRDIR-NAME                      "R. 2.2F
            STRING3 = '.aba'                          "R. 2.2F
       IMPORTING                                      "R. 2.2F
            STRING = FILENAME                         "R. 2.2F
       EXCEPTIONS                                     "R. 2.2F
            TOO_SMALL = 01.                           "R. 2.2F

* CONCATENATE PATH TRDIR-NAME '.ABA' INTO FILENAME.   "R. 3.0D
  CONDENSE FILENAME NO-GAPS.
  PERFORM DOWNLOAD TABLES TABSOURCE USING FILENAME RC.

ENDFORM.

*----------------------------------------------------------------------*
* FORM: Download_Textpool                                              *
*----------------------------------------------------------------------*
FORM DOWNLOAD_TEXTPOOL USING RC.
  RC = FAIL.
  CLEAR:   TABTEXT, FILENAME.
  REFRESH: TABTEXT.
  READ TEXTPOOL TRDIR-NAME INTO TABTEXT LANGUAGE SY-LANGU.
  DESCRIBE TABLE TABTEXT LINES SOURCEROWS.
  CHECK SOURCEROWS > 0.

  CALL FUNCTION 'STRING_CONCATENATE_3'                "R. 2.2F
       EXPORTING                                      "R. 2.2F
            STRING1 = PATH                            "R. 2.2F
            STRING2 = TRDIR-NAME                      "R. 2.2F
            STRING3 = '.TXT'                          "R. 2.2F
       IMPORTING                                      "R. 2.2F
            STRING = FILENAME                         "R. 2.2F
       EXCEPTIONS                                     "R. 2.2F
            TOO_SMALL = 01.                           "R. 2.2F

* CONCATENATE PATH TRDIR-NAME '.TXT' INTO FILENAME.   "R. 3.0x
  CONDENSE FILENAME NO-GAPS.
  PERFORM DOWNLOAD TABLES TABTEXT USING FILENAME RC.

ENDFORM.

*----------------------------------------------------------------------*
* FORM: Download                                                       *
*----------------------------------------------------------------------*
FORM DOWNLOAD TABLES TABDATA USING FILENAME RC.

  RC = FAIL.
  CALL FUNCTION 'WS_DOWNLOAD'
    EXPORTING
      FILENAME            = FILENAME
      FILETYPE            = 'ASC'
      MODE                = MODE
    TABLES
      DATA_TAB            = TABDATA
    EXCEPTIONS
      FILE_OPEN_ERROR     = 1
      FILE_WRITE_ERROR    = 2
      INVALID_FILESIZE    = 3
      INVALID_TABLE_WIDTH = 4
      INVALID_TYPE        = 5
      NO_BATCH            = 6
      UNKNOWN_ERROR       = 7.
  IF SY-SUBRC <> OK.
    WRITE:/ SY-SUBRC, TEXT-100.
  ENDIF.
  RC = SY-SUBRC.

ENDFORM.

Regards

Sudheer