ABAP System Fields – Use of structure SYST

Often one needs to use the values of the system structure SYST. Here is an alphabetical list of the different fields followed by a few sentences on the usage of their values.

Alphabetical List

Name Type Length Use Description
ABCDE CHAR 26 Constants Alphabet (A,B,C,…)
APPLI RAW 2 Obsolete
BATCH CHAR 1 Background processing Program runs in the background
BATZD CHAR 1 Obsolete
BATZM CHAR 1 Obsolete
BATZO CHAR 1 Obsolete
BATZS CHAR 1 Obsolete
BATZW CHAR 1 Obsolete
BINPT CHAR 1 Batch input Program runs under batch input
BREP4 CHAR 4 Obsolete
BSPLD CHAR 1 Obsolete
CALLD CHAR 1 ABAP Program Call mode of ABAP program
CALLR CHAR 8 Printing Lists ID for print dialog function
CCURS DEC 9 Obsolete
CCURT DEC 9 Obsolete
CDATE DATS 8 Obsolete
CFWAE CUKY 5 Internal
CHWAE CUKY 5 Internal
COLNO INT4 10 Creating Lists Current column in the list
CPAGE INT4 10 List processing Current page number
CPROG CHAR 40 ABAP Program External procedure call
CTABL CHAR 4 Obsolete
CTYPE CHAR 1 Obsolete
CUCOL INT4 10 Screens Horizontal cursor position at PAI
CUROW INT4 10 Screens Vertical cursor position at PAI
DATAR CHAR 1 Screens Displays user input
DATLO DATS 8 Date and time Local date of user
DATUM DATS 8 Date and time Current (application server) date
DAYST CHAR 1 Date and time Daylight saving time flag
DBCNT INT4 10 Database accesses Number of processed table rows
DBNAM CHAR 20 ABAP Program Linked logical database
DBSYS CHAR 10 R/3 System Name of central database system
DCSYS CHAR 4 Obsolete
DEBUG CHAR 1 Internal
DSNAM CHAR 8 Internal
DYNGR CHAR 4 ABAP Program Screen group of current screen
DYNNR CHAR 4 ABAP Program Number of current screen
ENTRY CHAR 72 Internal
FDAYW INT1 3 Date and time Factory calendar weekday
FDPOS INT4 10 Character strings Offset in character strings
FFILE CHAR 8 Internal
FLENG INT4 10 Internal
FMKEY CHAR 3 Obsolete
FODEC INT4 10 Internal
FOLEN INT4 10 Internal
FTYPE CHAR 1 Internal
GROUP CHAR 1 Internal
HOST CHAR 8 R/3 System Name of application server
INDEX INT4 10 Loops Current loop pass
INPUT CHAR 1 Internal
LANGU LANG 1 R/3 System Current language
LDBPG CHAR 40 ABAP Program Program of logical database
LILLI INT4 10 List processing Selected list row
LINCT INT4 10 Creating Lists Page length of list
LINNO INT4 10 Creating Lists Current row
LINSZ INT4 10 Creating Lists Column width of list
LISEL CHAR 255 List processing Content of selected row
LISTI INT4 10 List processing Index of selected list
LOCDB CHAR 1 Obsolete
LOCOP CHAR 1 Obsolete
LOOPC INT4 10 Screens Number of rows visible in table
LPASS CHAR 4 Internal
LSIND INT4 10 List processing Index of detail list
LSTAT CHAR 16 List processing ID for list levels
MACDB CHAR 4 Obsolete
MACOL INT4 10 Printing Lists Columns from SET MARGIN statement
MANDT CLNT 3 R/3 System Client number from logon
MARKY CHAR 1 Obsolete
MAROW INT4 10 Printing Lists Rows from SET MARGIN statement
MODNO CHAR 1 R/3 System Index of external modes
MSGID CHAR 20 Messages Message class
MSGLI CHAR 60 Messages Message line
MSGNO NUMC 3 Messages Message number
MSGTY CHAR 1 Messages Message type
MSGV1 CHAR 50 Messages Message variable
MSGV2 CHAR 50 Messages Message variable
MSGV3 CHAR 50 Messages Message variable
MSGV4 CHAR 50 Messages Message variable
NEWPA CHAR 1 Internal
NRPAG CHAR 1 Internal
ONCOM CHAR 1 Internal
OPSYS CHAR 10 R/3 System Operating system of application server
PAART CHAR 16 Print parameters Print formatting
PAGCT INT4 10 Obsolete
PAGNO INT4 10 Creating Lists Current page:
PAUTH NUMC 2 Internal
PDEST CHAR 4 Print parameters Output device
PEXPI NUMC 1 Print parameters Retention period
PFKEY CHAR 20 Screens Current GUI status
PLAYO CHAR 5 Internal
PLAYP CHAR 1 Internal
PLIST CHAR 12 Print parameters Name of spool request
PNWPA CHAR 1 Internal
PRABT CHAR 12 Print parameters Part of cover sheet
PRBIG CHAR 1 Print parameters Selection cover page
PRCOP NUMC 3 Print parameters Number of copies
PRDSN CHAR 6 Print parameters Name of spool dataset
PREFX CHAR 3 Obsolete
PRI40 CHAR 1 Internal
PRIMM CHAR 1 Print parameters Print immediately
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 Text for cover sheet
REPI2 CHAR 40 Internal
REPID CHAR 40 ABAP Program Current main program
RSTRT CHAR 1 Internal
RTITL CHAR 70 Print parameters Title of printing program
SAPRL CHAR 4 R/3 System Release status R/3 System
SCOLS INT4 10 Screens Number of columns
SFNAM CHAR 30 Obsolete
SFOFF INT4 10 Internal
SLSET CHAR 14 Selection screens Name of variant
SPONO NUMC 10 Printing Lists Spool number
SPONR NUMC 10 Obsolete
SROWS INT4 10 Screens Number of rows
STACO INT4 10 List processing First displayed column
STARO INT4 10 List processing Uppermost displayed row
STEPL INT4 10 Screens Index of current table row
SUBCS CHAR 1 Internal
SUBRC INT4 10 Return value Return value after ABAP statement
SUBTY RAW 1 Internal
SYSID CHAR 8 R/3 System Name of R/3 System
TABID CHAR 8 Internal
TABIX INT4 10 Internal Tables Current row index
TCODE CHAR 20 ABAP Program Current transaction code
TFDSN CHAR 8 Obsolete
TFILL INT4 10 Internal Tables Current number of rows
TIMLO TIMS 6 Date and time Local time of user
TITLE CHAR 70 Screens Text in header line
TLENG INT4 10 Internal Tables Row size
TLOPC INT4 10 Internal
TMAXL INT4 10 Obsolete
TNAME CHAR 30 Obsolete
TOCCU INT4 10 Obsolete
TPAGI INT4 10 Obsolete
TSTIS INT4 10 Internal
TTABC INT4 10 Obsolete
TTABI INT4 10 Obsolete
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 Text variable for headers
TVAR8 CHAR 20 Creating Lists Text variable for headers
TVAR9 CHAR 20 Creating Lists Text variable for headers
TZONE INT4 10 Date and time Time difference to Greenwich Mean Time
UCOMM CHAR 70 Screens Function code that triggered PAI
ULINE CHAR 255 Constants Horizontal line with length 255
UNAME CHAR 12 R/3 System Logon name of user
UZEIT TIMS 6 Date and time Current (application server) time
VLINE CHAR 1 Constants Vertical line
WAERS CUKY 5 Obsolete
WILLI INT4 10 Obsolete
WINCO INT4 10 Obsolete
WINDI INT4 10 Obsolete
WINRO INT4 10 Obsolete
WINSL CHAR 79 Obsolete
WINX1 INT4 10 Obsolete
WINX2 INT4 10 Obsolete
WINY1 INT4 10 Obsolete
WINY2 INT4 10 Obsolete
WTITL CHAR 1 Creating Lists Flag for standard page header
XCODE CHAR 70 Internal
XFORM CHAR 30 Internal
XPROG CHAR 40 Internal
ZONLO CHAR 6 Date and time Time zone of user

 

Thematic Overview

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
  • ·        Date and time information
  • ·        Information on the current ABAP program
  • ·        Background processing
  • ·        Batch input

ABAP programming

  • ·        Constants
  • ·        Character strings
  • ·        Loops
  • ·        Internal Tables
  • ·        Database accesses
  • ·        Return value

Screens

  • ·        Screens
  • ·        Selection screens
  • ·        Lists
  • ·        Messages

Internal system fields

Obsolete system fields

 

 

System Information

Information on the Current R/3 System

SY-DBSYS

Central database system, for example INFORMIX, ORACLE

SY-HOST

Application server, for example HS0333, PAWDF087

SY-OPSYS

Operating system of application server, for example HP-UX, SINIX

SY-SAPRL

Release status of R/3 System, for example 30D, 46A

SY-SYSID

Name of R/3 System, for example B20, I47

Information on the User Session

SY-LANGU

One-digit language key, for example D, E, F. Either logon language of user or set using the SET LOCALE LANGUAGE statement.

SY-MANDT

Client number the user logged on with, for example 000, 400.
For database accesses with Open SQL, SY-MANDT is used as the first key field of the WHERE clause.

SY-MODNO

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.

SY-UNAME

Logon name of user, for example KELLERH, BC400-01.

Date and Time Information

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.

SY-DATLO

Local date of user, for example 19981129, 19990628.

SY-DATUM

Current (application server) date, for example 19981130, 19990627.

SY-DAYST

During daylight saving time X, otherwise empty.

SY-FDAYW

Factory calendar weekday, Sunday 0 … Saturday 6.

SY-TIMLO

Local time of user, for example 154353, 225312.

SY-TZONE

Time difference to Greenwich Mean Time (UTC) in seconds, for example 3600, 10800.

SY-UZEIT

Current (application server) time, for example 164353, 215312.

SY-ZONLO

Time zone of user, for example CET, UTC.

Information on the Current ABAP Program

SY-CALLD

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.
  • ·        SY-CALLD is set to SPACE in a program called using LEAVE TO TRANSACTION, entering a transaction code on a screen, and processing batch input folders.
  • ·        With SUBMIT (without RETURN) SY-CALLD retains the previous value.

SY-CPROG

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.

SY-DBNAM

With executable programs this is the linked logical database.

SY-DYNGR

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.

SY-DYNNR

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.

SY-LDBPG

With executable programs, the database program of the linked logical database.

SY-REPID

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.

SY-TCODE

Name of current transaction code.

Background Processing

SY-BATCH

SY-BATCH is set to X in an ABAP program running in the background. Otherwise it is empty.

Batch Input

SY-BINPT

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.

 

 

ABAP Programming

Constants

SY-ABCDE

Contains the Alphabet. Can be used to access individual letters independently of the codepage by specifying offset.

SY-ULINE

Contains a horizontal line with length 255. Can be used when creating the list.

SY-VLINE

Contains a vertical line (|). Can be used when creating the list

Loops

SY-INDEX

SY-INDEX contains the number of loop passes in DO and WHILE loops, including the current loop pass.

Character Strings

SY-FDPOS

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.

Internal Tables

SY-TABIX

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.
  • ·        SEARCH <itab> FOR sets SY-TABIX to the index of the table row, in which the search string was found.

SY-TFILL

With the statements DESCRIBE TABLE, LOOP AT, and READ TABLE, SY-TFILL is filled with the row number of the addressed internal table.

SY-TLENG

With the statements DESCRIBE TABLE, LOOP AT, and READ TABLE, the system fills SY-TLENG with the row size of the addressed internal table.

Database Accesses

SY-DBCNT

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

SY-SUBRC

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.

 

 

Screens

Screens

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.

SY-CUCOL

Horizontal cursor position Counting starts at column 2

SY-CUROW

Vertical cursor position Counting starts at row 1

SY-DATAR

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.

SY-LOOPC

Number of rows currently displayed in a screen table (table control).

SY-PFKEY

GUI status of current screen. Can be set at PBO using SET PF-STATUS.

SY-SCOLS

Number of columns in current screen.

SY-SROWS

Number of rows in current screen.

SY-STEPL

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.

SY-TITLE

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.

SY-UCOMM

Function code that triggered the event PAI. Every user action that triggers PAI is assigned a unique function code, with one exception: Choosing Entertriggers 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.
  • ·        If the command field does not contain an entry and no function code is assigned to the ENTER key, it is empty and the content of SY-UCOMM is not affected.

Selection Screens

SY-SLSET

Variant used to fill the selection screen.

Creating Lists

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.

SY-COLNO

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.

SY-LINCT

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.

SY-LINNO

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.

SY-LINSZ

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.

SY-PAGNO

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.

SY-TVAR0 … SY-TVAR9

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.

SY-WTITL

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.

List Processing

At each interactive list event and for READ-LINE, the system automatically fills the following system fields:

SY-CPAGE

Page number of the first displayed page of the list from which the event was triggered. Counting starts at 1

SY-LILLI

Line from which the event was triggered Counting begins at 1 and includes the page header.

SY-LISEL

Contents of the line from which the event was triggered

SY-LISTI

Index of the list from which the event was triggered

SY-LSIND

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.

SY-LSTAT

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.

SY-STACO

Number of the first displayed column of the list from which the event was triggered. Counting starts at 1.

SY-STARO

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.

Printing Lists

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.

SY-CALLR

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.

SY-PRDSN

Contains the name of the spool file during printing.

SY-SPONO

Contains the name of the spool number during printing.

SY-MAROW, SY-MACOL

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.

Print Parameters

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.

Messages

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

SY-MSGID contains the message ID.

SY-MSGNO

SY-MSGNO contains the message number.

SY-MSGTY

SY-MSGTY contains the message type.

SY-MSGV1,…,SY-MSGV4

SY-MSGV1 to SY-MSGV4 contain the field contents that are used for the message’s placeholders.

Special Actions that Fill Message Fields

  • ·        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

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

SY-CFWAE

Undocumented

SY-CHWAE

Undocumented

SY-DEBUG

Undocumented

SY-DSNAM

Name of spool output file.

SY-ENTRY

Undocumented

SY-FFILE

Flat file (USING/GENERATING DATASET).

SY-FLENG

Length of a field.

SY-FODEC

Number of decimal places of a field.

SY-FOLEN

Output length of a field.

SY-FTYPE

Data type of a field.

SY-GROUP

Bundling

SY-INPUT

Undocumented

SY-LPASS

Undocumented

SY-NEWPA

Undocumented

SY-NRPAG

Undocumented

SY-ONCOM

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.

SY-PAUTH

Undocumented

SY-PLAYO

Undocumented

SY-PLAYP

Undocumented

SY-PNWPA

Undocumented

SY-PRI40

Undocumented

SY-PRINI

Undocumented

SY-PRLOG

Undocumented

SY-REPI2

Undocumented

SY-RSTRT

Undocumented

SY-SFOFF

Undocumented

SY-SUBCS

Call status of an executable program.

SY-SUBTY

Call type of an executable program.

SY-TABID

Undocumented

SY-TLOPC

Undocumented

SY-TSTIS

Undocumented

SY-XCODE

Extended function code Is filled, like SY-UCOMM, by user actions on lists. Before the length of SY-UCOMM was increased from 4 to 70 characters, SY-XCODE was used internally to evaluate lengthy entries in the command field of the list’s standard toolbar. Use SY-UCOMM in application programs.

SY-XFORM

SYSTEM-EXIT subroutine.

SY-XPROG

SYSTEM-EXIT program.

 

 

Obsolete System Fields

In the transition from R/2 to R/3, some system fields were carried over that are no longer filled. These system fields are obsolete and can no longer be used.

SY-APPLI

In R/2, ID for which SAP applications are installed. Not filled in R/3.

SY-BATZD

In R/2, ID for daily background scheduling. Not filled in R/3.

SY-BATZM

In R/2, ID for monthly background scheduling. Not filled in R/3.

SY-BATZO

In R/2, ID for single background scheduling. Not filled in R/3.

SY-BATZS

In R/2, ID for immediate background scheduling. Not filled in R/3.

SY-BATZW

In R/2, ID for weekly background scheduling. Not filled in R/3.

SY-BREP4

In R/2, root name of request report for background processing. Not filled in R/3.

SY-BSPLD

In R/2, ID for immediate spool output for background processing. Not filled in R/3.

SY-CCURS

In R/2, rate specification/result field from CURRENCY CONVERSION. Not filled in R/3.

SY-CCURT

In R/2, table rate from CURRENCY CONVERSION. Not filled in R/3.

SY-CDATE

In R/2, rate date from CURRENCY CONVERSION. Not filled in R/3.

SY-CTABL

In R/2, rate table from CURRENCY CONVERSION. Not filled in R/3.

SY-CTYPE

In R/2, rate type from CURRENCY CONVERSION. Not filled in R/3.

SY-DCSYS

Dialog system of R/2 System Not filled in R/3.

SY-FMKEY

Previously, current function code menu. Not filled in R/3.

SY-LOCDB

Local database, not implemented.

SY-LOCOP

Local database operation, not implemented.

SY-MACDB

Previously, name of file for matchcode access. Not filled in R/3.

SY-MARKY

Current line character for the MARK statement. However, the language element MARK will only be supported for a short time.

SY-PAGCT

In R/2, maximum number of pages per list. Not filled in R/3.

SY-PREFX

ABAP prefix for background jobs. Not filled in R/3.

SY-SFNAM

Undocumented

SY-SPONR

In R/2, you could process spool files using the TRANSFER statement, set by SY-SPONR. Not filled in R/3.

SY-TFDSN

Previously, name of external storage file for extracts. Not filled in R/3.

SY-TMAXL

Previously, maximum number of entries in an internal table. Not filled in R/3.

SY-TNAME

Previously, name of an internal table after an access. Not filled in R/3.

SY-TOCCU

With the statements DESCRIBE TABLE, LOOP AT, and READ TABLE, SY-TOCCU was filled with the value of the initial main memory requirements for the addressed internal table. No longer filled.

SY-TPAGI

Previously, ID whether an internal table is stored in the paging area. Not filled in R/3.

SY-TTABC

Previously, index of last read row in an internal table. Not filled in R/3.

SY-TTABI

Previously, offset of internal tables in roll area. Not filled in R/3.

SY-WAERS

Previously, company code currency after reading booking segment. Not filled in R/3.

SY-WILLI

In R/2, number of selected list row for detail list in window. Use SY-LILLI.

SY-WINCO

In R/2, cursor position for detail list in window. Use SY-CUCOL.

SY-WINDI

In R/2, index of list for detail list in window. Use SY-LSIND.

SY-WINRO

In R/2, cursor position for detail list in window. Use SY-CUROW.

SY-WINSL

In R/2, content of selected row for detail list in window. Use SY-LISEL.

SY-WINX1

In R/2, window coordinate for detail list in window. No correspondence in R/3.

SY-WINX2

In R/2, window coordinate for detail list in window. No correspondence in R/3.

SY-WINY1

In R/2, window coordinate for detail list in window. No correspondence in R/3.

SY-WINY2

In R/2, window coordinate for detail list in window. No correspondence in R/3.

 

Leave a Reply