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. .