Download R/3 SAPscript Code to Workstation
SapScript Forms are stored as SAP R/3 text elements in the R/3 text pool. The are thus of
the same nature as text modules which you can edit using transaction SO10 . For each
SapScript form there are two corresponding entres in table STXH . One entry holds the
SapScript options and parameters of the form the other keeps the coding. The key values
are:
SapScript Option
STXH-TDOBJECT = 'FORM' .
STXH-TDID = 'DEF' .
STXH-TDNAME = formname .
SapScript Coding
STXH-TDOBJECT = 'FORM' .
STXH-TDID = 'TXT' .
STXH-TDNAME = formname .
REPORT Z_AXX_DOWNLOAD_SAPSCRIPT .
TABLES: RSSCF, THEAD.
DATA: TSTXH LIKE STXH OCCURS 0 WITH HEADER LINE.
DATA: TLINES LIKE TLINE OCCURS 0 WITH HEADER LINE.
DATA: HTML(1000) OCCURS 0 WITH HEADER LINE.
DATA: KEYWORDS(255).
SELECT-OPTIONS: FORMNAME FOR RSSCF-TDFORM MEMORY ID ZFO.
PARAMETERS: FILEPATH LIKE RLGRAP-FILENAME MEMORY ID FIL.
PARAMETERS: FILENAME LIKE RLGRAP-FILENAME DEFAULT '%'.
START-OF-SELECTION.
SELECT * FROM STXH INTO TABLE TSTXH WHERE TDOBJECT EQ 'FORM'
AND TDNAME IN FORMNAME.
CLEAR KEYWORDS.
LOOP AT TSTXH.
IF TSTXH-TDID EQ 'DEF'.
CONCATENATE KEYWORDS ',' TSTXH-TDNAME INTO KEYWORDS.
ENDIF.
ENDLOOP.
LOOP AT TSTXH.
PERFORM HTML_OPEN.
PERFORM DOWNLOAD_FORM USING TSTXH.
PERFORM HTML_CLOSE USING TSTXH-TDNAME.
ENDLOOP.
*---------------------------------------------------------------------*
* FORM DOWNLOAD_FORM *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> XSTXH *
*---------------------------------------------------------------------*
FORM DOWNLOAD_FORM USING XSTXH LIKE TSTXH.
DATA: XFILENAME LIKE FILENAME.
XFILENAME = FILENAME.
REPLACE '%' WITH XSTXH-TDNAME INTO XFILENAME.
CALL FUNCTION 'READ_TEXT'
EXPORTING
* CLIENT = SY-MANDT
ID = XSTXH-TDID
LANGUAGE = XSTXH-TDSPRAS
NAME = XSTXH-TDNAME
OBJECT = XSTXH-TDOBJECT
* ARCHIVE_HANDLE = 0
IMPORTING
HEADER = THEAD
TABLES
LINES = TLINES
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.
PERFORM DOWNLOAD USING XFILENAME XSTXH-TDID XSTXH-TDSPRAS.
PERFORM HTML_TABLE_ROW USING TSTXH-TDNAME
TSTXH-TDID
TSTXH-TDTITLE
TSTXH-TDSPRAS
XFILENAME.
ENDFORM.
*---------------------------------------------------------------------*
* FORM DOWNLOAD *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> XSTXH *
*---------------------------------------------------------------------*
FORM DOWNLOAD USING XFILENAME EXTENSION SPRAS.
DATA: XFILEPATH LIKE FILENAME.
CONCATENATE XFILENAME '.' EXTENSION INTO XFILENAME.
IF SPRAS IS INITIAL. ELSE.
CONCATENATE XFILENAME '.' SPRAS '.txt' INTO XFILENAME.
ENDIF.
CONCATENATE FILEPATH XFILENAME INTO XFILEPATH.
CONDENSE XFILEPATH NO-GAPS.
TRANSLATE XFILEPATH TO LOWER CASE.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = XFILEPATH
TABLES
DATA_TAB = TLINES
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
GUI_REFUSE_FILETRANSFER = 8
OTHERS = 9.
ENDFORM. " download using xstxh like
stxh.
*---------------------------------------------------------------------*
* FORM HTML_OPEN *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM HTML_OPEN.
REFRESH HTML.
HTML = '<html>'.
APPEND HTML.
HTML = '<HEAD>'.
APPEND HTML.
HTML = '<TITLE>SAPSCRIPT TUTORIAL - EXAMPLE %</TITLE>'.
APPEND HTML.
CONCATENATE
'<META NAME="KEYWORDS" content="' KEYWORDS '">' INTO HTML.
APPEND HTML.
HTML = '</HEAD>'.
APPEND HTML.
HTML = '<BODY>'.
APPEND HTML.
HTML = '<TABLE>'.
APPEND HTML.
ENDFORM.
*---------------------------------------------------------------------*
* FORM HTML_CLOSE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM HTML_CLOSE USING VALUE(FORMNAME).
DATA: TMPFILENAME(32) VALUE 'TOC'.
HTML = '</TABLE>'.
APPEND HTML.
HTML = '</BODY>'.
REFRESH TLINES. APPEND LINES OF HTML TO TLINES.
CONCATENATE FORMNAME '.' TMPFILENAME INTO TMPFILENAME.
PERFORM DOWNLOAD USING TMPFILENAME 'HTM' SPACE.
ENDFORM.
*---------------------------------------------------------------------*
* FORM HTML_TABLE_ROW *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> COL1 *
* --> COL2 *
* --> LINK *
*---------------------------------------------------------------------*
FORM HTML_TABLE_ROW USING COL1 COL2 COL3 COL4 LINK.
HTML = '<TR>'. APPEND HTML.
HTML = '<TD>'. APPEND HTML.
HTML = COL2 . APPEND HTML.
HTML = '</TD>'. APPEND HTML.
HTML = '<TD>'. APPEND HTML.
HTML = COL4 . APPEND HTML.
HTML = '</TD>'. APPEND HTML.
HTML = '<TD>'. APPEND HTML.
HTML = '<A HREF="'. APPEND HTML.
HTML = LINK. APPEND HTML.
HTML = '">'. APPEND HTML.
HTML = COL1 . APPEND HTML.
HTML = '</A>'. APPEND HTML.
HTML = '</TD>'. APPEND HTML.
HTML = '<TD>'. APPEND HTML.
HTML = COL3 . APPEND HTML.
HTML = '</TD>'. APPEND HTML.
HTML = '</TR>'. APPEND HTML.
ENDFORM.
INITIALIZATION.
CALL FUNCTION 'WS_ULDL_PATH'
IMPORTING
DOWNLOAD_PATH = FILEPATH
* UPLOAD_PATH =
EXCEPTIONS
OTHERS = 1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR FORMNAME-LOW.
SUBMIT RSTXFCAT VIA SELECTION-SCREEN AND RETURN.
PERFORM GET_PARAMETER(SAPMSSCF) USING FORMNAME-LOW RSSCF-TDSPRAS.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR FORMNAME-HIGH.
SUBMIT RSTXFCAT VIA SELECTION-SCREEN AND RETURN.
PERFORM GET_PARAMETER(SAPMSSCF) USING FORMNAME-HIGH RSSCF-TDSPRAS.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILEPATH.
PERFORM QUERY_FILENAME(SAPLGRAP) USING FILEPATH 'S'.