Display files on SAP Application Server(UNIX)

View file on the application server(UNIX). Used in conjunction with ZUNIXFILES which displays all directorys/files on the application server. Simple copy and paste the following code into a new ABAP report program.

*....................................................................
*: Title:        Browse file on Unix.                               :
*:                                                                  :
*: Description:  Using internal System Call we gain access to UNIX. :
*:               The program uses the standard Unix command 'cat' to:
*:               browse the file                                    :
*:                                                                  :
*:               The program lets you browse a file record of up to :
*:               500 chars wide.                                    :
*:                                                                  :
*:..................................................................:

REPORT ZBROWSEFILE MESSAGE-ID Z1
                   NO STANDARD PAGE HEADING
                   LINE-COUNT 65
                   LINE-SIZE  80.
DATA: BEGIN OF TABL OCCURS 0,
      LINE(560),
      END OF TABL.
DATA: PARCOM_LOC LIKE RS37A-LINE.
DATA: COLOR TYPE I.
DATA: COUNT(16) TYPE C.
*-------------------------------------------------------------------*
* Parameters.                                                       *
*-------------------------------------------------------------------*
SELECTION-SCREEN SKIP 2.
  PARAMETERS: PARCOM LIKE RS37A-LINE.
*-------------------------------------------------------------------*
* Validering af parametre.                                          *
*-------------------------------------------------------------------*
*-------------------------------------------------------------------*
* TOP-OF-PAGE.                                                      *
*-------------------------------------------------------------------*
TOP-OF-PAGE.
  PERFORM WRITE_PAGE_HEADING.
*-------------------------------------------------------------------*
* INITIALIZATION.                                                   *
*-------------------------------------------------------------------*
INITIALIZATION.
  PARCOM = '/usr/sap/trans/* '.
*-------------------------------------------------------------------*
* START-OF-SELECTION.                                               *
*-------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM MAKE_LOC.
  PERFORM COLLECT_DATA.
  PERFORM WRITE_FILE_CONTENT.
  PERFORM WRITE_NUMBER_OF_CONTENT.
*---------------------------------------------------------------------*
* FORM MAKE_LOC.                                                      *
*---------------------------------------------------------------------*
FORM MAKE_LOC.
  CLEAR: PARCOM_LOC.
  PARCOM_LOC(4)    = 'cat '.
  PARCOM_LOC+4(245) = PARCOM.
ENDFORM.
*---------------------------------------------------------------------*
* FORM COLLECT_DATA.                                                  *
*---------------------------------------------------------------------*
FORM COLLECT_DATA.
  REFRESH TABL.
  CALL 'SYSTEM' ID 'COMMAND' FIELD PARCOM_LOC
                ID 'TAB'     FIELD TABL-*SYS*.
ENDFORM.
*-------------------------------------------------------------------*
* FORM WRITE_FILE_CONTENT.                                          *
*-------------------------------------------------------------------*
FORM WRITE_FILE_CONTENT.
* The following data item needs to be renamed as the     "DEVK910117
* special character used is no longer valid.             "DEVK910117
*DATA: LÆNGDE        LIKE SY-FDPOS.                      "DEVK910117
 DATA: LAENGDE       LIKE SY-FDPOS.                      "DEVK910117
LOOP AT TABL.
*   LÆNGDE = STRLEN( TABL-LINE ).                        "DEVK910117
    LAENGDE = STRLEN( TABL-LINE ).                       "DEVK910117
*   IF LÆNGDE GE 0.                                      "DEVK910117
    IF LAENGDE GE 0.                                     "DEVK910117
       PERFORM COLORLINE USING '  0' TABL-LINE+0(69).
       PERFORM STREGER_3.
    ENDIF.
*   IF LÆNGDE GE 70.                                     "DEVK910117
    IF LAENGDE GE 70.                                    "DEVK910117
       PERFORM COLORLINE USING ' 70' TABL-LINE+69(70).
       PERFORM STREGER_3.
    ENDIF.
*   IF LÆNGDE GE 140.                                    "DEVK910117
    IF LAENGDE GE 140.                                   "DEVK910117
       PERFORM COLORLINE USING '140' TABL-LINE+139(70).
       PERFORM STREGER_3.
    ENDIF.
*   IF LÆNGDE GE 210.                                    "DEVK910117
    IF LAENGDE GE 210.                                   "DEVK910117
       PERFORM COLORLINE USING '210' TABL-LINE+209(70).
       PERFORM STREGER_3.
    ENDIF.
*   IF LÆNGDE GE 280.                                    "DEVK910117
    IF LAENGDE GE 280.                                   "DEVK910117
      PERFORM COLORLINE USING '280' TABL-LINE+279(70).
       PERFORM STREGER_3.
    ENDIF.
*   IF LÆNGDE GE 350.                                    "DEVK910117
    IF LAENGDE GE 350.                                   "DEVK910117
       PERFORM COLORLINE USING '350' TABL-LINE+349(70).
       PERFORM STREGER_3.
    ENDIF.
*   IF LÆNGDE GE 420.                                    "DEVK910117
    IF LAENGDE GE 420.                                   "DEVK910117
       PERFORM COLORLINE USING '420' TABL-LINE+419(70).
       PERFORM STREGER_3.
    ENDIF.
*   IF LÆNGDE GE 490.                                    "DEVK910117
    IF LAENGDE GE 490.                                   "DEVK910117
       PERFORM COLORLINE USING '490' TABL-LINE+489(70).
       PERFORM STREGER_3.
    ENDIF.
*   IF LÆNGDE GE 560.                                    "DEVK910117
    IF LAENGDE GE 560.                                   "DEVK910117
* The following can only pass over at most one byte      "DEVK910117
* because the table line length is only 560. An error    "DEVK910117
* results on compilation because it is currently         "DEVK910117
* trying to pass over something which does not exist.    "DEVK910117
* It is better to pass over just the one byte than       "DEVK910117
* nothing at all.                                        "DEVK910117
*      PERFORM COLORLINE USING '560' TABL-LINE+559(70).  "DEVK910117
       PERFORM COLORLINE USING '560' TABL-LINE+559(01).  "DEVK910117
       PERFORM STREGER_3.
    ENDIF.
  ENDLOOP.
  WRITE:/1(80) SY-ULINE.
ENDFORM.
*-------------------------------------------------------------------*
* FORM WRITE_PAGE_HEADING.                                          *
*-------------------------------------------------------------------*
FORM WRITE_PAGE_HEADING.
   WRITE:/1(80) SY-ULINE.
   PERFORM STREGER_2.
   FORMAT INTENSIFIED.
   WRITE: /2(79) SPACE       COLOR 1.
   WRITE:  2    SY-DATUM     COLOR 1.
   WRITE: 15    PARCOM(65)   COLOR 1.
   PERFORM STREGER_2.
   WRITE:/1(80) SY-ULINE.
   PERFORM STREGER_2.
   FORMAT INTENSIFIED.
   WRITE: /2(79) SPACE COLOR 3.
   WRITE:   2    'Offset' COLOR 3,
           10    '0....+....1....+....2....+....3....+....' COLOR 3,
           50    '4....+....5....+....6....+....' COLOR 3.
   PERFORM STREGER_3.
   FORMAT RESET.
   WRITE:/1(80) SY-ULINE.
ENDFORM.
*-------------------------------------------------------------------*
* FORM STREGER_2.                                                   *
*-------------------------------------------------------------------*
FORM STREGER_2.
   PERFORM WRITE_VLINE USING ' '  1.
   PERFORM WRITE_VLINE USING ' '  80.
ENDFORM.
*-------------------------------------------------------------------*
* FORM STREGER_3.                                                   *
*-------------------------------------------------------------------*
FORM STREGER_3.
   PERFORM WRITE_VLINE USING ' '  1.
   PERFORM WRITE_VLINE USING ' '  9.
   PERFORM WRITE_VLINE USING ' '  80.
ENDFORM.
*-------------------------------------------------------------------*
* WRITE_VLINE.                                                      *
*-------------------------------------------------------------------*
FORM WRITE_VLINE USING MODE POS.
   IF MODE NE 'T'.
     FORMAT INTENSIFIED.
   ENDIF.
   POSITION POS.
   WRITE: SY-VLINE.
   IF MODE NE 'T'.
     FORMAT RESET.
   ENDIF.
ENDFORM.
*-------------------------------------------------------------------*
* FORM COLORLINE.                                                   *
*-------------------------------------------------------------------*
FORM COLORLINE USING TEXT1 TEXT2.
   ON CHANGE OF SY-TABIX.
      COLOR = COLOR + 1.
      COLOR = COLOR MOD 2.
   ENDON.
   FORMAT RESET.
   IF COLOR = 1.
      WRITE: /2(79) SPACE COLOR 2.
      IF TEXT1 = '  0'.
         WRITE: 3 TEXT1 COLOR 2, 11 TEXT2 COLOR 2.
      ELSE.
         WRITE: 3 TEXT1 COLOR 2, 10 TEXT2 COLOR 2.
      ENDIF.
   ELSE.
      WRITE: /2(79) SPACE COLOR 4.
      IF TEXT1 = '  0'.
         WRITE: 3 TEXT1 COLOR 4, 11 TEXT2 COLOR 4.
      ELSE.
         WRITE: 3 TEXT1 COLOR 4, 10 TEXT2 COLOR 4.
      ENDIF.
   ENDIF.
ENDFORM.
*-------------------------------------------------------------------*
* FORM WRITE_NUMBER_OF_CONTENT.                                     *
*-------------------------------------------------------------------*
FORM WRITE_NUMBER_OF_CONTENT.
   DESCRIBE TABLE TABL LINES COUNT.
   FORMAT RESET. CONDENSE COUNT.
   RESERVE 3 LINES.
   WRITE:/1(80) SY-ULINE.
   WRITE:/1(80) SY-ULINE.
   WRITE: /2(79) SPACE                         COLOR 2.
   WRITE: 2      'Number of records in file:'  COLOR 2,
          29     COUNT                         COLOR 2.
   PERFORM STREGER_2.
   WRITE:/1(80) SY-ULINE.
ENDFORM.                                        .

Related Articles

SAP applications and ABAP reports that process data files stored on your PC or within SAP
HEX codes and there associated ABAP declaration within SAP
Browse files on SAP Application Server(UNIX)
Downloading files to PC(Presentation Server)
Downloading files to SAP Application Server
Popup window to select a File using function module WS_FILENAME_GET
Get list of files within specific directory or SAP Application server
Directory selection for ABAP report using SAP method DIRECTORY_BROWSE
File Selection for ABAP report using SAP object method FILE_OPEN_DIALOG
Save file location popup on ABAP report selection screen using FILE_SAVE_DIALOG
ABAP Upload and download Function Modules in SAP
SAP File Selection Window - various methods of adding a file selection popup to your ABAP report
Upload Tab delimited file from PC into ABAP internal table
Upload and download files into and out of SAP or your PC
ABAP to check if file exists before downloading from SAP
SAP Upload Excel document into internal table
ABAP to Upload Excel document into internal table on SAP system including .xlsx
Upload Excel document into ABAP internal table
ABAP Uploading files from PC to SAP R/3 system
ABAP to Upload files from SAP Application Server
Upload Tab delimited file from PC into ABAP internal table
Upload Tab delimited file from application server into ABAP internal table
Example Excel Spreadsheet used to demo SAP upload and download using ABAP
Download file from SAP unix system to your desktop using transaction SXDA