2008 Feb 13 1:06 PM
Where does an abap program get stored after save? ...plzz tell
Edited by: Alvaro Tejada Galindo on Feb 18, 2008 11:28 AM
Where does an abap program get stored after save? ...plzz tell
Edited by: Alvaro Tejada Galindo on Feb 18, 2008 11:28 AM
2008 Feb 13 1:14 PM
SAP programm is stored in application server and SAP kernal
2008 Feb 13 1:16 PM
this program download the code to presentation server
Analyse this code.
CHECK IT IN DEBUGGING
REPORT zdownload_source MESSAGE-ID zabap.
TABLES: trdir.
SELECT-OPTIONS: repo FOR trdir-name.
PARAMETERS: path(60) TYPE c DEFAULT 'C:\programs\'.
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>.
DATA: ok TYPE i VALUE 0,
fail TYPE i VALUE 1.
AT SELECTION-SCREEN.
DATA: i TYPE i.
DESCRIBE TABLE repo LINES i.
IF i <= 0.
SET CURSOR FIELD repo.
MESSAGE i001 WITH 'se message class'.
ENDIF.
START-OF-SELECTION.
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.
LOOP AT tabrdir.
MOVE tabrdir TO trdir.
PERFORM download_sourse USING rc.
CHECK rc = ok.
* PERFORM download_textpool USING rc.
ENDLOOP.
write :/ sy-dbcnt , ' number of programs downloaded'.
*&---------------------------------------------------------------------*
*& Form download_sourse
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_RC text
*----------------------------------------------------------------------*
FORM download_sourse 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'
EXPORTING
string1 = PATH
string2 = TRDIR-NAME
string3 = '.ABA'
IMPORTING
string = FILENAME
EXCEPTIONS
too_small = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
WRITE: 'AAAA'.
ENDIF.
CONDENSE filename NO-GAPS.
PERFORM download TABLES tabsource USING filename rc.
ENDFORM. " download_sourse
*&---------------------------------------------------------------------*
*& Form download_textpool
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_RC text
*----------------------------------------------------------------------*
FORM download_textpool USING p_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'
EXPORTING
string1 = path
string2 = trdir-name
string3 = '.TXT'
IMPORTING
string = filename
EXCEPTIONS
too_small = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
PERFORM download TABLES tabtext USING filename rc.
ENDFORM. " download_textpool
*&---------------------------------------------------------------------*
*& Form download
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_TABTEXT text
* -->P_FILENAME text
* -->P_RC text
*----------------------------------------------------------------------*
FORM download TABLES tabtext
USING filename
rc.
rc = fail.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
* BIN_FILESIZE = ' '
* CODEPAGE = ' '
FILENAME = filename
FILETYPE = 'ASC'
MODE = 'MODE'
* WK1_N_FORMAT = ' '
* WK1_N_SIZE = ' '
* WK1_T_FORMAT = ' '
* WK1_T_SIZE = ' '
* COL_SELECT = ' '
* COL_SELECTMASK = ' '
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
TABLES
data_tab = TABTEXT
* FIELDNAMES =
* EXCEPTIONS
* FILE_OPEN_ERROR = 1
* FILE_WRITE_ERROR = 2
* INVALID_FILESIZE = 3
* INVALID_TYPE = 4
* NO_BATCH = 5
* UNKNOWN_ERROR = 6
* INVALID_TABLE_WIDTH = 7
* GUI_REFUSE_FILETRANSFER = 8
* CUSTOMER_ERROR = 9
* OTHERS = 10
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF sy-subrc <> 0.
WRITE: / sy-subrc, ' message declare '.
ENDIF.
rc = sy-subrc.
ENDFORM. " download
regards.
santhosh reddy
<REMOVED BY MODERATOR>
Edited by: Santhosh Reddy on Feb 13, 2008 6:48 PM
Edited by: Alvaro Tejada Galindo on Feb 18, 2008 12:00 PM
2008 Feb 13 1:20 PM
The pgm will be stored in a table in the databse server, table name is TRDIR
<REMOVED BY MODERATOR>
Edited by: Alvaro Tejada Galindo on Feb 13, 2008 3:42 PM
2008 Feb 18 3:43 PM
2008 Feb 18 4:35 PM
TRDIR is the database view, the actual table is REPOSRC. Field DATA contains the actual (compressed) program code.
2008 Feb 18 4:57 PM
Every thing in ABAP should be stored in the application server in the form of tables.
TRDIR is one of the table it stores all the programs.
TFDIR for storing all the Function Modules
DD02L for storing all the user defined tables
TSTCT for storing all the T-Codes
DD04L for storing all the data elements
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |