ABAP - Keyword Documentation →  ABAP - Overview → 

ABAP Language Versions

Each ABAP program has the program attribute ABAP Language Version, which is defined internally by the version ID. The version of a program specifies which language elements and which repository objects can be used in the program and which syntax rules apply. The following versions are currently provided:

Language Version Meaning Version ID
Standard ABAP (Unicode) This version of ABAP is the universal basic version. It covers the entire language scope of ABAP that can be used in Unicode systems. The Unicode checks are performed in programs of this type. The documentation of this version describes all ABAP language elements.   X
ABAP for Key Users This version of ABAP is designed for secure implementations of enhancements as part of enhancement points by key users provided by SAP. The rules for Standard ABAP (Unicode) apply but only a very restricted set of language elements are supported and access to external repository objects is also restricted. Furthermore, the enhancements are implemented in methods and the stricter syntax rules for classes apply automatically. No obsolete language elements are allowed. The documentation for ABAP for Key Users is an appropriately restricted version of the full documentation.   2
Static ABAP with restricted object use In this version of ABAP, the rules for Standard ABAP (Unicode) apply, with restrictions on access to external repository objects. Dynamically specified data and statements for dynamic creation of programs are forbidden here to make sure that static checks can be carried out. The corresponding language elements are hidden in the documentation for static ABAP with restricted object use.   3
Standard ABAP with restricted object use In this version of ABAP, the rules for Standard ABAP (Unicode) apply, with restrictions on access to external repository objects. Dynamic language elements are not forbidden in this version.   4
Obsolete ABAP (Non-Unicode) This version of ABAP is obsolete and is no longer supported in the current release. The version ID of a program of this type is initial. No Unicode checks are performed in programs of this type.   -

The version ID of a program is generally transparent for developers. From a technical perspective, the version ID is in the column UCCHECK of the database table TRDIR for program attributes and is usually set by the associated tools. The statements INSERT REPORT and SYNTAX-CHECK used to edit programs either set the version implicitly or set it explicitly using the additions VERSION and DIRECTORY ENTRY.

Notes

Example

The program DEMO_ABAP_VERSIONS makes it possible to check ABAP source code using the syntax rules of the different ABAP language versions.