While
SAP is transitioning into a cloud, an ABAP programing language is transitioning
itself into towards the cloud as well. A multiple versions of this programming language
are popping up. Every version is a restricted in some way while compared to standard
ABAP – a Unicode version that was introduced in Basis
Release 6.10 (also known as WAS 6.10). Restrictions
can be based on merit of what enhancements can be made, what part of it are
whitelisted (allowed), how repository objects are used, what rules are followed
and so on.
As
of Q4 2022 there are following subsets (or variants) of ABAP:
1/ Standard ABAP (Unicode) – Introduced in SAP Basis
Release 6.10 when the standard SAP ABAP programs were converted to Unicode enabled
ones. Unicode compatible ABAP programs fall under stricter syntax rules and provide
a clearer programming style. That means that ABAP language constructs that are
questionable and prone to error are prohibited. On top of the Unicode enabling there
were changes done in areas of ABAP objects, internal tables, Open SQL, and
update, ABAP Compiler, ABAP runtime and ABAP tools. This version covers entire
ABAP language scope. This is called universal basic version of the ABAP.
2/ "ABAP for Cloud
Development" or
"ABAP for SAP BTP ABAP environment (formerly SAP Cloud Platform) and SAP
S/4HANA Cloud" - Restricted language scope and restricted access to
released APIs for developments in the SAP BTP ABAP Environment and for customer
developments in the ABAP Platform Cloud. Standard ABAP (Unicode) rules apply here
as well but only a very restricted set of language elements are supported and
access to external repository objects is also restricted. Furthermore, the
developments are implemented in methods and the stricter syntax rules for
classes apply automatically. No obsolete language elements are allowed.
3/ ABAP for key users - 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. Similarly, to ABAP for Cloud Development,
the enhancements are implemented in methods and the stricter syntax rules for
classes apply automatically. No obsolete language elements are allowed too. Available
to key users to implement extensions using the SAP Fiori extensibility apps
Custom Fields and Logic and Custom Business Objects. Key users can use this
ABAP variant to implement business logic extensions using a Web-based editor in
the SAP Fiori environment.
4/ Static ABAP with
limited object use (obsolete)
– has a restricted use of repository objects, where all language elements of
Standard ABAP (Unicode) except dynamic language elements are allowed.
5/ Standard ABAP with
limited object use (obsolete)
– has a restricted use of repository objects, where all language elements of
Standard ABAP (Unicode) are allowed.
6/ Non-Unicode ABAP (obsolete) – ABAP language as it was
defined in SAP release 4.6. Here the Unicode checks are ignored. A program with
this language version doesn’t run in Unicode SAP systems. As all currently SAP
NetWeaver releases (6.10+) are supporting the Unicode this ABAP version is obsolete.
There is a
DDIC domain ABAPVRS that hold values
of all the ABAP language versions.
ABAP language
versions as seen in classic SAP HANA Studio (eclipse based) IDE:
ABAP language
versions as seen in classic SE80 t-code:
To find out what syntax is compatible with what ABAP language version you can use ABAP program DEMO_ABAP_VERSIONS.
Additionally
program ABAP_DOCU_VERSION_WHITELIST is
available to provide a list of the repository objects that are allowed for the
restricted ABAP language versions.
More information:
No comments:
Post a Comment