WITH CURRENT
SWITCHSTATES addition specifies which switch configuration is used
for the syntax check. The other
error_handling additions can be used to identify other
attributes of the first syntax error.
System Fields
sy-subrc Meaning
0The internal table itab contains a syntactically correct
ABAP program.
4The internal table itab does not contain a syntactically
correct ABAP program.
8A runtime error occurred in the syntax check.
If a runtime error occurs during the syntax check ( sy-subrc has
the value 8), a database rollback is executed in the usual
manner. As usual, the short dump of the runtime error can be found in
ABAP Dump Analysis .
If the internal addition ID
is specified with ERR , the value 6 can also occur for
sy-subrc .
Latest notes: It is not required to execute the SYNTAX-CHECK
statement directly before GENERATE
SUBROUTINE POOL or GENERATE REPORT
, because the syntax check is always performed when these statements
are executed.
ABAP_ADDITION_1 ... PROGRAM prog
ABAP_ADDITION_2 ... DIRECTORY ENTRY dir
What does it do? These additions are used to specify the
program attributes used for the
syntax check.
The PROGRAM addition is used to specify in prog the name
of an ABAP program whose program attributes are to be used for the
syntax check. prog must be a character-like data object, whose
content is not case-sensitive. If the specified program is not found,
the standard attributes specified below are used.
After the DIRECTORY ENTRY addition, a data object dir
must be specified, whose data type corresponds to the structure of
database table TRDIR from ABAP Dictionary. The required program
attributes can be specified in the components of this structure. Invalid
values are replaced implicitly by internally defined standard values.
In non- Unicode programs , at least
one of these two additions must be specified and this is also
recommended in Unicode programs. If neither PROGRAM nor
DIRECTORY ENTRY is specified, the system uses
executable program as the default
program type. General default values are then assigned to the the
remaining program attributes. If both additions PROGRAM and
DIRECTORY ENTRY are specified, the program attributes are determined
by the structure dir .
Latest notes: We recommend the use of addition PROGRAM , because
the components of structure dir and their valid values can be
interpreted within the system only. If addition DIRECTORY ENTRY
is nevertheless used in application programs, the content of structure
dir should be set by reading the appropriate entry from database
table TRDIR and by modifying only
individual components as required.
Important program attributes for the syntax check are, for example,
the program type and whether the program is a Unicode program.
Example ABAP Coding Syntax check for source code in itab . By reading
the attributes of the current program from the database TRDIR
into the structure dir , these can be used after DIRECTORY
ENTRY . When the dir-uccheck component is set, the first syntax
check is executed in the same way as for non-Unicode programs and the
second as for Unicode programs. The first syntax check does not find an
error in a non-Unicode system and detects the error when the program is
not Unicode-enabled. The second syntax check always identifies the error
when the BYTE or CHARACTER MODE addition is missing from
the DESCRIBE statement.
DATA: itab TYPE STANDARD TABLE OF string,
mess TYPE string,
lin TYPE i,
wrd TYPE string,
dir TYPE trdir.
APPEND 'PROGRAM test.' TO itab.
APPEND 'DATA dat TYPE d.' TO itab.
APPEND 'DATA len TYPE i.' TO itab.
APPEND 'DESCRIBE FIELD dat LENGTH len.' TO itab.
SELECT SINGLE *
FROM trdir
INTO dir
WHERE name = sy-repid.
dir-uccheck = ' '.
SYNTAX-CHECK FOR itab MESSAGE mess LINE lin WORD wrd
DIRECTORY ENTRY dir.
IF sy-subrc = 4.
MESSAGE mess TYPE 'I'.
ENDIF.
dir-uccheck = 'X'.
SYNTAX-CHECK FOR itab MESSAGE mess LINE lin WORD wrd
DIRECTORY ENTRY dir.
IF sy-subrc = 4.
MESSAGE mess TYPE 'I'.
ENDIF.
Example ABAP Coding See also Program
Generation .
ABAP_ADDITION_3 ... WITH CURRENT SWITCHSTATES
What does it do? This addition causes the syntax check to use the switch
configuration of the Switch Framework ,
in the state it had when the current transaction was called. Without the
addition, the switch configuration valid when the statement is executed
is used.
This addition causes the syntax check to run with the same switch
states from Switch Framework as were used when the statement
GENERATE SUBROUTINE POOL was
executed.
Without the addition, the syntax check is performed in the same way as
for every regular compilation of ABAP programs.
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved