!--a11y-->
ABAP system fields are always available in ABAP programs. The runtime system fills them according to context. They can then be used in programs to query the system status. System fields are variables but you should always treat them as though they were constants, and only read them. If you change their values, important information for the flow of the program may be lost. In exceptional circumstances, system fields may be overwritten in an ABAP program to control the system – for example, SY-LSIND (for navigating to a detail list).
With one exception the names and data types of the system fields are stored in the ABAP Dictionary in the SYST structure and realized as components of the predefined structure SY in ABAP programs.
The system field SY-REPID is not part of SYST or SY. Instead, every program contains the predefined constants SY-REPID and SYST-REPID, which both contain the name of the corresponding program. Furthermore, there are two predefined types of the same name, SY-REPID and SYST-REPID.
All system fields are addressed using SY field name and their types using SYST field name.
The following table lists the definitions of the structure SYST in the ABAP Dictionary alphabetically. The character in the first column indicates how you can use the corresponding system field in ABAP programs. Name is the name of the component, Type is the Dictionary data type, and Length is the field length defined in the Dictionary. The Use column shows in which environment the system fields are set. The Description indicates the content.
|
|
Name |
Type |
Length |
Use |
Description |
|
|
ABCDE |
CHAR |
26 |
Constants |
|
|
|
APPLI |
RAW |
2 |
|
|
|
|
BATCH |
CHAR |
1 |
Background processing |
|
|
|
BATZD |
CHAR |
1 |
|
|
|
|
BATZM |
CHAR |
1 |
Obsolete |
|
|
|
BATZO |
CHAR |
1 |
Obsolete |
|
|
|
BATZS |
CHAR |
1 |
|
|
|
|
BATZW |
CHAR |
1 |
Obsolete |
|
|
|
BINPT |
CHAR |
1 |
Batch input |
|
|
|
BREP4 |
CHAR |
4 |
Obsolete |
|
|
|
BSPLD |
CHAR |
1 |
Obsolete |
|
|
|
CALLD |
CHAR |
1 |
ABAP Program |
|
|
|
CALLR |
CHAR |
8 |
Printing Lists |
|
|
|
CCURS |
DEC |
9 |
|
|
|
|
CCURT |
DEC |
9 |
Obsolete |
|
|
|
CDATE |
DATS |
8 |
Obsolete |
|
|
|
CFWAE |
CUKY |
5 |
|
|
|
|
CHWAE |
CUKY |
5 |
Internal |
|
|
|
COLNO |
INT4 |
10 |
Creating Lists |
|
|
|
CPAGE |
INT4 |
10 |
List processing |
|
|
|
CPROG |
CHAR |
40 |
ABAP Program |
|
|
|
CTABL |
CHAR |
4 |
Obsolete |
|
|
|
CTYPE |
CHAR |
1 |
Obsolete |
|
|
|
CUCOL |
INT4 |
10 |
Screens |
|
|
|
CUROW |
INT4 |
10 |
Screens |
Vertical cursor position at PAI |
|
|
DATAR |
CHAR |
1 |
Screens |
|
|
|
DATLO |
DATS |
8 |
Date and time |
Local date of user |
|
|
DATUM |
DATS |
8 |
Date and time |
|
|
|
DAYST |
CHAR |
1 |
Date and time |
|
|
|
DBCNT |
INT4 |
10 |
Database accesses |
|
|
|
DBNAM |
CHAR |
20 |
ABAP Program |
|
|
|
DBSYS |
CHAR |
10 |
R/3 System |
|
|
|
DCSYS |
CHAR |
4 |
|
|
|
|
DEBUG |
CHAR |
1 |
|
|
|
|
DSNAM |
CHAR |
8 |
|
|
|
|
DYNGR |
CHAR |
4 |
ABAP Program |
|
|
|
DYNNR |
CHAR |
4 |
ABAP Program |
|
|
|
ENTRY |
CHAR |
72 |
|
|
|
|
FDAYW |
INT1 |
3 |
Date and time |
|
|
|
FDPOS |
INT4 |
10 |
Character strings |
|
|
|
FFILE |
CHAR |
8 |
|
|
|
|
FLENG |
INT4 |
10 |
Internal |
|
|
|
FMKEY |
CHAR |
3 |
|
|
|
|
FODEC |
INT4 |
10 |
Internal |
|
|
|
FOLEN |
INT4 |
10 |
Internal |
|
|
|
FTYPE |
CHAR |
1 |
Internal |
|
|
|
GROUP |
CHAR |
1 |
|
|
|
|
HOST |
CHAR |
8 |
R/3 System |
|
|
|
INDEX |
INT4 |
10 |
Loops |
|
|
|
INPUT |
CHAR |
1 |
Internal |
|
|
|
LANGU |
LANG |
1 |
R/3 System |
|
|
|
LDBPG |
CHAR |
40 |
ABAP Program |
|
|
|
LILLI |
INT4 |
10 |
List processing |
|
|
|
LINCT |
INT4 |
10 |
Creating Lists |
|
|
|
LINNO |
INT4 |
10 |
Creating Lists |
|
|
|
LINSZ |
INT4 |
10 |
Creating Lists |
|
|
|
LISEL |
CHAR |
255 |
List processing |
|
|
|
LISTI |
INT4 |
10 |
List processing |
|
|
|
LOCDB |
CHAR |
1 |
|
|
|
|
LOCOP |
CHAR |
1 |
Obsolete |
|
|
|
LOOPC |
INT4 |
10 |
Screens |
|
|
|
LPASS |
CHAR |
4 |
|
|
|
|
LSIND |
INT4 |
10 |
List processing |
|
|
|
LSTAT |
CHAR |
16 |
List processing |
|
|
|
MACDB |
CHAR |
4 |
|
|
|
|
MACOL |
INT4 |
10 |
Printing Lists |
|
|
|
MANDT |
CLNT |
3 |
R/3 System |
|
|
|
MARKY |
CHAR |
1 |
|
|
|
|
MAROW |
INT4 |
10 |
Printing Lists |
|
|
|
MODNO |
CHAR |
1 |
R/3 System |
|
|
|
MSGID |
CHAR |
20 |
Messages |
|
|
|
MSGLI |
CHAR |
60 |
Messages |
|
|
|
MSGNO |
NUMC |
3 |
Messages |
|
|
|
MSGTY |
CHAR |
1 |
Messages |
|
|
|
MSGV1 |
CHAR |
50 |
Messages |
|
|
|
MSGV2 |
CHAR |
50 |
Messages |
Message variable |
|
|
MSGV3 |
CHAR |
50 |
Messages |
Message variable |
|
|
MSGV4 |
CHAR |
50 |
Messages |
Message variable |
|
|
NEWPA |
CHAR |
1 |
|
|
|
|
NRPAG |
CHAR |
1 |
Internal |
|
|
|
ONCOM |
CHAR |
1 |
|
|
|
|
OPSYS |
CHAR |
10 |
R/3 System |
|
|
|
PAART |
CHAR |
16 |
Print parameters |
|
|
|
PAGCT |
INT4 |
10 |
|
|
|
|
PAGNO |
INT4 |
10 |
Creating Lists |
|
|
|
PAUTH |
NUMC |
2 |
Internal |
|
|
|
PDEST |
CHAR |
4 |
Print parameters |
|
|
|
PEXPI |
NUMC |
1 |
Print parameters |
Retention period |
|
|
PFKEY |
CHAR |
20 |
Screens |
|
|
|
PLAYO |
CHAR |
5 |
|
|
|
|
PLAYP |
CHAR |
1 |
Internal |
|
|
|
PLIST |
CHAR |
12 |
Print parameters |
|
|
|
PNWPA |
CHAR |
1 |
|
|
|
|
PRABT |
CHAR |
12 |
Print parameters
|
|
|
|
PRBIG |
CHAR |
1 |
Print parameters |
Selection cover page |
|
|
PRCOP |
NUMC |
3 |
Print parameters |
|
|
|
PRDSN |
CHAR |
6 |
Print parameters |
Name of spool dataset |
|
|
PREFX |
CHAR |
3 |
|
|
|
|
PRI40 |
CHAR |
1 |
Internal |
|
|
|
PRIMM |
CHAR |
1 |
Print parameters |
|
|
|
PRINI |
NUMC |
1 |
Internal |
|
|
|
PRLOG |
CHAR |
1 |
Internal |
|
|
|
PRNEW |
CHAR |
1 |
Print parameters |
New spool request |
|
|
PRREC |
CHAR |
12 |
Print parameters |
Recipient |
|
|
PRREL |
CHAR |
1 |
Print parameters |
Delete after print |
|
|
PRTXT |
CHAR |
68 |
Print parameters |
|
|
|
REPI2 |
CHAR |
40 |
|
|
|
|
REPID |
CHAR |
40 |
ABAP Program |
|
|
|
RSTRT |
CHAR |
1 |
Internal |
|
|
|
RTITL |
CHAR |
70 |
Print parameters |
Title of printing program |
|
|
SAPRL |
CHAR |
4 |
R/3 System |
|
|
|
SCOLS |
INT4 |
10 |
Screens |
|
|
|
SFNAM |
CHAR |
30 |
Obsolete |
|
|
|
SFOFF |
INT4 |
10 |
Internal |
|
|
|
SLSET |
CHAR |
14 |
Selection screens |
|
|
|
SPONO |
NUMC |
10 |
Printing Lists |
|
|
|
SPONR |
NUMC |
10 |
Obsolete |
|
|
|
SROWS |
INT4 |
10 |
Screens |
|
|
|
STACO |
INT4 |
10 |
List processing |
|
|
|
STARO |
INT4 |
10 |
List processing |
|
|
|
STEPL |
INT4 |
10 |
Screens |
|
|
|
SUBCS |
CHAR |
1 |
Internal |
|
|
|
SUBRC |
INT4 |
10 |
Return value |
|
|
|
SUBTY |
RAW |
1 |
|
|
|
|
SYSID |
CHAR |
8 |
R/3 System |
|
|
|
TABID |
CHAR |
8 |
|
|
|
|
TABIX |
INT4 |
10 |
Internal Tables |
|
|
|
TCODE |
CHAR |
20 |
ABAP Program |
|
|
|
TFDSN |
CHAR |
8 |
|
|
|
|
TFILL |
INT4 |
10 |
Internal Tables |
|
|
|
TIMLO |
TIMS |
6 |
Date and time |
|
|
|
TITLE |
CHAR |
70 |
Screens |
|
|
|
TLENG |
INT4 |
10 |
Internal Tables |
|
|
|
TLOPC |
INT4 |
10 |
Internal |
|
|
|
TMAXL |
INT4 |
10 |
|
|
|
|
TNAME |
CHAR |
30 |
|
|
|
|
TOCCU |
INT4 |
10 |
|
|
|
|
TPAGI |
INT4 |
10 |
|
|
|
|
TSTIS |
INT4 |
10 |
Internal |
|
|
|
TTABC |
INT4 |
10 |
|
|
|
|
TTABI |
INT4 |
10 |
|
|
|
|
TVAR0 |
CHAR |
20 |
Creating Lists |
Text variable for headers |
|
|
TVAR1 |
CHAR |
20 |
Creating Lists |
Text variable for headers |
|
|
TVAR2 |
CHAR |
20 |
Creating Lists |
Text variable for headers |
|
|
TVAR3 |
CHAR |
20 |
Creating Lists |
Text variable for headers |
|
|
TVAR4 |
CHAR |
20 |
Creating Lists |
Text variable for headers |
|
|
TVAR5 |
CHAR |
20 |
Creating Lists |
Text variable for headers |
|
|
TVAR6 |
CHAR |
20 |
Creating Lists |
Text variable for headers |
|
|
TVAR7 |
CHAR |
20 |
Creating Lists |
|
|
|
TVAR8 |
CHAR |
20 |
Creating Lists |
Text variable for headers |
|
|
TVAR9 |
CHAR |
20 |
Creating Lists |
Text variable for headers |
|
|
TZONE |
INT4 |
10 |
Date and time |
|
|
|
UCOMM |
CHAR |
70 |
Screens |
|
|
|
ULINE |
CHAR |
255 |
Constants |
|
|
|
UNAME |
CHAR |
12 |
R/3 System |
|
|
|
UZEIT |
TIMS |
6 |
Date and time |
|
|
|
VLINE |
CHAR |
1 |
Constants |
|
|
|
WAERS |
CUKY |
5 |
|
|
|
|
WILLI |
INT4 |
10 |
|
|
|
|
WINCO |
INT4 |
10 |
Obsolete |
|
|
|
WINDI |
INT4 |
10 |
Obsolete |
|
|
|
WINRO |
INT4 |
10 |
Obsolete |
|
|
|
WINSL |
CHAR |
79 |
Obsolete |
|
|
|
WINX1 |
INT4 |
10 |
|
|
|
|
WINX2 |
INT4 |
10 |
Obsolete |
|
|
|
WINY1 |
INT4 |
10 |
Obsolete |
|
|
|
WINY2 |
INT4 |
10 |
Obsolete |
|
|
|
WTITL |
CHAR |
1 |
Creating Lists |
|
|
|
XCODE |
CHAR |
70 |
|
|
|
|
XFORM |
CHAR |
30 |
Internal |
|
|
|
XPROG |
CHAR |
40 |
Internal |
|
|
|
ZONLO |
CHAR |
6 |
Date and time |
|
|
The system field is set by the runtime environment. Its content can be evaluated in the ABAP program but not changed. |
|
|
The system field is set by the runtime environment. Its content can be changed in the ABAP program to influence the runtime environment. |
|
|
The system field must be set in the ABAP program. It can then be evaluated by the runtime environment or the program. |
|
|
The system field is only for internal use and must not be used in ABAP programs. |
|
|
The system field is obsolete and its content is not set. It cannot be used in ABAP programs. |
The following is a thematic summary of the system fields with notes on their use:
System information ·
Information on the current
R/3 System ·
Information on the user
session ·
Information on the current
ABAP program ABAP programming ·
Loops ·
Database
accesses Screens ·
Screens ·
Selection
screens Internal system fields Obsolete system fields Central database system, for example INFORMIX,
ORACLE Application server, for example HS0333,
PAWDF087 Operating system of application server, for example
HP-UX, SINIX Release status of R/3 System, for example 30D,
46A Name of R/3 System, for example B20, I47 One-digit language key, for example D, E, F. Either
logon language of user or set using the SET LOCALE LANGUAGE
statement. Client number the user logged on with, for example
000, 400. Indexes external modes. Zero in first
mode. In new modes, opened using the Create Mode function or by calling a
transaction using /o, it is raised
by 1. If previous modes were deleted, the free numbers are
used first. Modes opened using CALL TRANSACTION … STARTING NEW TASK
start back at 0. Logon name of user, for example KELLERH,
BC400-01. The
following system fields are always set automatically. If necessary, the GET TIME statement synchronizes
the application server time with that of the database server and writes it to
the system field SY-UZEIT.
SY-DATUM and the system fields for the local time
zone, that is SY-TIMLO, SY-DATLO, and SY-ZONLO are also reset. Local date of user, for example 19981129,
19990628. Current (application server) date, for example
19981130, 19990627. During daylight saving time X, otherwise empty.
Factory calendar weekday, Sunday 0 … Saturday
6. Local time of user, for example 154353,
225312. Time difference to Greenwich Mean Time (UTC) in
seconds, for example 3600, 10800. Current (application server) time, for example
164353, 215312. Time zone of user,
for example CET, UTC. SY-CALLD contains
SPACE if the program is the first and only program in a call chain.
SY_CALLD contains 'X' if the program is
a called program in a call chain (see ABAP Calls
Overview). ·
SY-CALLD is set to
‘X‘ in a program called using CALL TRANSACTION, CALL DIALOG, or
SUBMIT … AND RETURN. ·
With SUBMIT (without
RETURN) SY-CALLD retains the previous value. In
externally called procedures, the name of the calling program, otherwise the
name of the current program. If an externally called procedure calls
another external procedure, SY-CPROG keeps the name of the first main program
and is not given the name of the
main program of the further caller. With executable programs this is the linked logical
database. Screen group of current screen.
You can
assign several screens to a common screen group. You can use this, for
example, to modify all of the screens in the group in a uniform
way. Number of current screen During the
selection screen processing, SY-DYNNR contains the screen number of the
current selection screen. During list processing, SY-DYNNR contains the
number of the container screen. While a subscreen
is being processed, SY-DYNNR contains its screen number. This also
applies to tabstrips. With executable programs, the database program of
the linked logical database. Name of current
ABAP program. With externally
called procedures this is the name of the procedure’s main
program. If SY-REPID was
transferred to an external procedure as an actual parameter before Release
6.10, the formal parameter was not given the name of the caller, but the name
of the procedure’s main program. SY-REID had to be transferred to an auxiliary
variable before the call or you had to use SY-PROG. As of Release 6.10,
SY-REPID is a separate constant that is no longer part of the structure SYST
or SY. It can be transferred to external procedures directly. Name of current
transaction code. SY-BATCH is set to
X in an ABAP program running in the background. Otherwise it is
empty. SY-BINPT is set to
X during processing of batch input folders and in ABAP programs called with
CALL TRANSACTION USING. Otherwise it is empty.
·
OPTIONS FROM in the CALL
TRANSACTION USING statement can set SY-BINPT to empty for the whole program
execution, as well as at the end of the BDC data.
·
In CATT procedures,
SY-BINPT is always empty. Contains the Alphabet. Can be used to
access individual letters independently of the codepage by specifying
offset. Contains a horizontal line with length 255. Can be
used when creating the list. Contains a vertical
line (|). Can be used when
creating the list SY-INDEX contains the number of loop passes in DO
and WHILE loops, including the current loop pass. Found location for
operations with character-type fields. ·
If the operators CO, CN,
CA, NA, CS, NS, CP, NP are used in comparisons, SY-FDPOS is assigned offset
values depending on the comparison result. ·
SEARCH … FOR
… sets SY-FDPOS to the offset of the found search
string. Current line in an
internal table. With the
following statements SY-TABIX is set for index tables. With hashed tables, SY-TABIX is not filled or it is
set to 0. ·
APPEND sets SY-TABIX to
the index of the last table row, that is the total number of entries in the
target table. ·
COLLECT sets SY-TABIX to
the index of the existing or appended table row. With hashed tables, SY-TABIX is set to 0. ·
LOOP AT sets SY-TABIX to
the index of the current table row at the beginning of every loop pass.
After leaving a loop, SY-TABIX is set to
the value it had before entering the loop. With hashed tables, SY-TABIX is set to 0. ·
READ TABLE sets SY-TABIX
to the index of the table row read. If no row is found with binary search while
reading, SY-TABIX contains the index of the next-highest row or the total
number of rows +1. If no row is found with linear search while reading,
SY-TABIX is undefined. With the statements DESCRIBE TABLE, LOOP AT, and
READ TABLE, SY-TFILL is filled with the row number of the addressed internal
table. With the statements DESCRIBE TABLE, LOOP AT, and
READ TABLE, the system fills SY-TLENG with the row size of the addressed
internal table. SQL statements set
the content of SY-DBCNT to the number of database lines processed.
With SELECT loops in Open SQL, SY-DBCNT
is set after the ENDSELECT statement. In Native SQL, SY-DBCNT is set after the ENDEXEC
statement. ·
DELETE sets SY-DBCNT to
the number of lines deleted. ·
FETCH sets SY-DBCNT to the
number of lines already read by the current cursor. ·
INSERT sets SY-DBCNT to
the number of lines inserted. ·
MODIFY sets SY-DBCNT to
the number of lines processed. ·
UPDATE sets SY-DBCNT to
the number of lines changed. Return value set by
the following ABAP statements. In
general, a content of 0 means that the statement was executed without
problems. ·
ASSIGN sets SY-SUBRC to 0
if assignment to field symbol is possible, otherwise 4. ·
ASSIGN <dref>->*
sets SY-SUBRC to 0 if dereferencing is possible, otherwise 4. ·
AUTHORITY-CHECK sets
SY-SUBRC to 0 if the user has the necessary authorization, otherwise 4, 8, 12,
16, 24, 28, 32, or 36 depending on the cause. ·
CALL DIALOG with USING
sets SY-SUBRC to 0, if processing was successful, otherwise
<>0. ·
CALL FUNCTION sets
SY-SUBRC according to the exception handling. ·
CALL METHOD sets SY-SUBRC
according to the exception handling. ·
CALL SELECTION-SCREEN sets
SY-SUBRC to 0 if the user chose Enter or Execute and 4 if the user chose Cancel. ·
CALL TRANSACTION with
USING sets SY-SUBRC to 0 if processing was successful, otherwise
<>0. ·
CATCH SYSTEM-EXCEPTIONS
sets SY-SUBRC if there are runtime errors after the ENDCATCH statement.
The value is specified in the
program. ·
COMMIT WORK sets SY-SUBRC
to 0. ·
COMMIT WORK AND WAIT sets
SY-SUBRC to 0 if update was successful, otherwise <>0. ·
COMMUNICATION INIT
DESTINATION … RETURNCODE sets SY-SUBRC as specified. ·
CONCATENATE sets SY-SUBRC
to 0 if the result fits into target variable, otherwise 4. ·
CREATE OBJECT sets
SY-SUBRC if the exceptions of the instance constructor are handled. ·
CREATE OBJECT in OLE2 sets
SY-SUBRC to 0 if an external object was created, otherwise 1,2, 3 with
different causes. ·
DELETE sets SY-SUBRC to 0
if the operation was successful, otherwise 4 or <> 0 depending on
cause. ·
DEMAND … MESSAGES
INTO sets SY-SUBRC to 0 if a message table is empty, otherwise <>
0. ·
DESCRIBE LIST sets
SY-SUBRC to 0 if row or list exists, otherwise 4 or 8. ·
EXEC SQL - ENDEXEC sets
SY-SUBRC to 0 in almost all cases. Only if no set was read with FETCH is
SY-SUBRC 4. ·
FETCH sets SY-SUBRC to 0
if at least one row was read, otherwise 4.
·
GENERATE SUBROUTINE POOL
sets SY-SUBRC to 0 if generation was successful, otherwise 8. ·
GET CURSOR sets SY-SUBRC
to 0 if the cursor is correctly positioned, otherwise 4. ·
GET PARAMETER sets
SY-SUBRC to 0 if value found in SAP Memory, otherwise 4. ·
IMPORT sets SY-SUBRC to 0
if import of data objects was successful, otherwise 4. ·
LOAD REPORT sets SY-SUBRC
to 0 if the operation was successful, otherwise 4 or 8 depending on
cause. ·
LOOP sets SY-SUBRC to 0 if
loop over extract was passed at least once, otherwise 4. ·
LOOP AT sets SY-SUBRC to 0
if loop over internal table was passed at least once, otherwise 4. ·
MODIFY sets SY-SUBRC to 0
if operation was successful, otherwise 4. ·
MODIFY LINE sets SY-SUBRC
to 0 if list row was changed, otherwise <> 0. ·
MODIFY sets SY-SUBRC to 0
if operation was successful, otherwise 4. ·
OLE2 automation, bundled
commands set SY-SUBRC to 0 if all were successfully executed, otherwise 1, 2,
3, 4 depending on cause. ·
OPEN DATASET sets SY-SUBRC
to 0 if the file was opened, otherwise 8. ·
Open SQL commands set
SY-SUBRC to 0 if operation was successful, otherwise <>0. ·
OVERLAY sets SY-SUBRC to 0
if at least one character is overlayed, otherwise 4. ·
READ DATASET sets SY-SUBRC
to 0 if the read operation was successful, otherwise 4 or 8 depending on
cause. ·
READ LINE sets SY-SUBRC to
0 if list row exists, otherwise <> 0. ·
READ TABLE sets SY-SUBRC
to 0 if the table row was found, otherwise 2, 4, 8 depending on
cause. ·
REPLACE sets SY-SUBRC to 0
if search string could be replaced, otherwise <> 0. ·
ROLLBACK WORK always sets
SY-SUBRC to 0. ·
SCROLL sets SY-SUBRC to 0
if scrolling in list successful, otherwise 4 or 8 depending on
cause. ·
SEARCH sets SY-SUBRC to 0
if search string was found, otherwise 4. ·
SELECT sets SY-SUBRC to 0
if at least one row was read, otherwise 4 or even 8 with SELECT SINGLE FOR
UPDATE. ·
SET COUNTRY sets SY-SUBRC
to 0 if country ID was found in table T005X, otherwise 4. ·
SET BIT sets SY-SUBRC to 0
if bit was set, otherwise <> 0. ·
SET TITLEBAR sets SY-SUBRC
to 0 if title exists, otherwise 4. ·
SHIFT … UP TO sets
SY-SUBRC to 0 if position was found in character string, otherwise
4. ·
SPLIT sets SY-SUBRC to 0
if size of target fields is sufficient, otherwise 4. ·
UPDATE sets SY-SUBRC to 0
if operation successful, otherwise 4. ·
WRITE … TO sets
SY-SUBRC to 0 if assignment successful, otherwise 4. System fields are set at the PAI event for every
screen. These can be also used for interactive list
processing, except for SY-DATAR, SY-LOOPC, and SY-STEPL. Horizontal cursor position Counting starts at
column 2 Vertical cursor
position Counting starts at row
1 Set
to X at time of PAI if at least one screen input field was changed by the user
or other data transfer, otherwise empty. Number of rows currently displayed in a screen table
(table control). GUI
status of current screen. Can be set at PBO using SET
PF-STATUS. Number of columns in current screen. Number of rows in current screen. Index of current row in a screen table (table
control). Is set at every loop pass. Outside a
loop, for example during the POV event for a table row, SY-STEPL is not set
appropriately. Text that appears in the title bar of the
screen. For selection screens and lists this is the program
name, otherwise SAP R/3. Can be set during PBO using SET TITLEBAR. Function code that
triggered the event PAI. Every
user action that triggers PAI is assigned a unique function code, with one
exception: Choosing Enter triggers
PAI and different function codes can be transferred to SY-UCOMM: ·
If there is an entry in
the command field of the standard toolbar, this is transferred to SY-UCOMM as
the function code. ·
If there is no entry in
the command field and a function code is assigned to the ENTER key, this function code is transferred
to SY-UCOMM. Variant used to fill the selection
screen. When creating a list you can use the following
system fields to navigate. They help to ensure that output statements do
not overwrite any existing output and that the system does not try to write
outside the list. The current output position is always in the system
fields SY-COLNO and SY-LINNO and is rest for every output statement.
The remaining system fields contain further values
for the list creation. Current column
during list creation. Counting starts at 1. SY-COLNO is set by the
following output statements: ·
WRITE, ULINE, SKIP set
SY-COLNO to the next output position. ·
BACK sets SY-COLNO to 1.
·
POSITION <col>
sets SY-COLNO to
<col>. If <col> lies
outside the page, the subsequent output statements are ignored. ·
NEW-LINE sets SY-COLNO to
1. ·
NEW-PAGE sets SY-COLNO to
1. Page length of
list. SY-LINCT is 0 for a standard list of any length and
has a value unequal to 0 for lists with fixed page length. ·
LINE-COUNT in the
statements REPORT, PROGRAM, FUNCTION POOL sets SY-LINCT for the current
program. ·
LINE-COUNT in the SUBMIT
statement sets SY-LINCT for the called program. Current row during
the list creation. Counting begins at 1 and includes the page
header. SY-LINNO is set by the following output
statements: ·
WRITE, ULINE, SKIP raise
SY-LINNO by 1 in the case of a line break. ·
BACK sets
SY-LINNO to the first row after the page header. BACK
in connection with RESERVE sets SY-LINNO to
the first row of a block of lines. ·
NEW-LINE raises SY-LINNO
by 1. ·
SKIP TO LINE <lin>
sets SY-LINNO to <lin>. If <lin>
does not lie between 1 and the page length, the system ignores the
statement. Line width of
list Without further influence this is the standard
window width: If SY-SCOLS >=
84, SY-LINSZ = SY-SCOLS; if SY-SCOLS < 84, SY-LINSZ = 84. To change the width
of the output list, use the LINE-SIZE option of the REPORT or NEW PAGE
statement. ·
LINE-SIZE in the
statements REPORT, PROGRAM, FUNCTION POOL sets SY-LINSZ for the current
program. ·
LINE-SIZE in the SUBMIT
statement sets SY-LINSZ for the called program. Current page during
the list creation. ·
WRITE, ULINE, SKIP raise
SY-PAGNO by 1 in the case of a line break. ·
NEW-PAGE raises SY-PAGNO
by 1, but only if at least one output follows both on the current page and
after the NEW-PAGE statement. ·
NEW-SECTION of the
NEW-PAGE PRINT ON statement sets SY-PAGNO to 1. In
the program, you can assign values to these system fields. During the
TOP-OF-PAGE event, the system replaces the placeholders of the program’s
list and column headers with the contents of the system fields SY-TVAR0 to
SYTVAR9. Is set to N in the statements REPORT, PROGRAM, and
FUNCTION-POOL if the NO STANDARD PAGE HEADING addition is used, otherwise
empty. NEW-PAGE does not set SY-WTITL. At
each interactive list event and for READ-LINE, the system automatically fills
the following system fields: Page number of the first displayed page of the list
from which the event was triggered. Counting starts at
1 Line from which the event was triggered
Counting begins at 1 and includes the page
header. Contents of the line from which the event was
triggered Index of the list from which the event was
triggered Index of the list that is being created (basic list:
0, detail list > 0). Each time an interactive list event occurs,
the system automatically increases SY-LSIND by 1. SY-LSIND can be
changed in the ABAP program to navigate between detail lists.
Changes to SY-LSIND are not taken into account
until the end of the list event. Therefore, any
manipulation of SY-LISND should be done using the last command of the
processing block. ID
for list levels within the program. SY-LSTAT can be
filled with values during list creation in the ABAP program.
The value valid when the list is completed is saved
with the list. In the case of an interactive list event, SY-LSTAT
is set to the value it was assigned during the creation of the list from which
the event takes place. SY-LSTAT is no longer maintained and should
therefore no longer be used. Number of the first displayed column of the list
from which the event was triggered. Counting starts at
1. Number of the upper-most displayed row of the
upper-most page of the list, from which the event was triggered.
Counting begins at 1. This does not include the page
header. When printing lists, the spool and runtime systems
require certain internal
information, which is available in the following system fields and is set
during print activation. Contains a value that displays where printing was
started, for example NEW-PAGE for program-controlled printing or RSDBRUNT for
printing from the selection screen. Contains the name of the spool file during
printing. Contains the name of the spool number during
printing. The SET MARGIN
statement fills the system fields SY-MAROW and SY-MACOL, which determine the
number of lines on the upper margin and the number of columns on the left
margin when printing. The print parameters are transferred to the spool
system by the runtime system in a structure of dictionary type
PRI_PARAMS. Before this structure was used, its purpose was
served by system fields. Today a subset
of the PRI_PARAMS structure is still written to system fields with the same
names when printing is activated. This information
is redundant and should not be used. If
you execute the MESSAGE statement, the following system fields are
set. If you execute the MESSAGE … RAISING
statement in function modules and methods, these fields are also set in the
calling program, if it handles the exception.
SY-MSGID contains the message ID. SY-MSGNO contains the message number. SY-MSGTY contains the message type. SY-MSGV1 to
SY-MSGV4 contain the field contents that are used for the message’s
placeholders.
·
If you request database
locks using the ENQUEUE function module, the field SY-MSGV1 contains the name
of the user who holds the lock, in the case of the FOREIGN_LOCK
exception. ·
IN the case of CALL
TRANSACTION or CALL DIALOG with the USING addition, a message displayed during
the called screen sequence is returned in the fields SY-MSGID, SY-MSGTY,
SY-MSGNO, SY-MSGV1, ... , SY-MSGV4. ·
During Remote Function
Call (RFC), error messages are transferred from the remote system to the
calling system and SY-MSGID, SY-MSGTY, SY-MSGNO,SY-MSGV1, SY-MSGV2, SY-MSGV3,
SY-MSGV4 are set. If short dumps
or type X messages occur, the system also sets the fields. Internal system
fields are only for internal use in the ABAP runtime environment and are
defined in the kernel. Under no
circumstances must they be overwritten in ABAP programs and they should also
not be read (processed). Undocumented Undocumented Undocumented Name of spool output file. Undocumented Flat file (USING/GENERATING DATASET). Length of a field. Number of decimal places of a field. Output length of a field. Data type of a field. Bundling Undocumented Undocumented Undocumented Undocumented On Commit
flag. This system field is set to
different values depending on the call status of an ABAP program. Of these, only the value of ‘P’ is
guaranteed. If at all, SY-ONCOM
must only be queried for ‘P’. The
value 'P' means that the program is already executing a subroutine started
using PERFORM … ON COMMIT and therefore a further subroutine call using
PERFORM ... ON COMMIT would cause a runtime error.
System Information
Information on the Current R/3
System
SY-DBSYS
SY-HOST
SY-OPSYS
SY-SAPRL
SY-SYSID
Information on the User
Session
SY-LANGU
SY-MANDT
For database accesses with Open SQL, SY-MANDT is used as the first key field
of the WHERE clause.
SY-MODNO
SY-UNAME
Date and Time
Information
SY-DATLO
SY-DATUM
SY-DAYST
SY-FDAYW
SY-TIMLO
SY-TZONE
SY-UZEIT
SY-ZONLO
Information on the
Current ABAP Program
SY-CALLD
SY-CPROG
SY-DBNAM
SY-DYNGR
SY-DYNNR
SY-LDBPG
SY-REPID
SY-TCODE
Background
Processing
SY-BATCH
Batch
Input
SY-BINPT
ABAP Programming
Constants
SY-ABCDE
SY-ULINE
SY-VLINE
Loops
SY-INDEX
Character Strings
SY-FDPOS
Internal Tables
SY-TABIX
SY-TFILL
SY-TLENG
Database Accesses
SY-DBCNT
Return Value
SY-SUBRC
Screens
Screens
SY-CUCOL
SY-CUROW
SY-DATAR
SY-LOOPC
SY-PFKEY
SY-SCOLS
SY-SROWS
SY-STEPL
SY-TITLE
SY-UCOMM
Selection Screens
SY-SLSET
Creating
Lists
SY-COLNO
SY-LINCT
SY-LINNO
SY-LINSZ
SY-PAGNO
SY-TVAR0 ...
SY-TVAR9
SY-WTITL
List
Processing
SY-CPAGE
SY-LILLI
SY-LISEL
SY-LISTI
SY-LSIND
SY-LSTAT
SY-STACO
SY-STARO
Printing
Lists
SY-CALLR
SY-PRDSN
SY-SPONO
SY-MAROW, SY-MACOL
Print
Parameters
Messages
SY-MSGID
SY-MSGNO
SY-MSGTY
SY-MSGV1,…,SY-MSGV4
Special Actions
that Fill Message Fields
Internal System Fields
SY-CFWAE
SY-CHWAE
SY-DEBUG
SY-DSNAM
SY-ENTRY
SY-FFILE
SY-FLENG
SY-FODEC
SY-FOLEN
SY-FTYPE
SY-GROUP
SY-INPUT
SY-LPASS
SY-NEWPA
SY-NRPAG
SY-ONCOM
SY-PAUTH