Wednesday, 14 August 2019

Multiple Shades of ABAP!!!

Yes, you heard it right shades or different versions of ABAP. With changing deployment options and the way, we can enhance business solutions in addition to the classical extensibility, leads to different versions of ABAP currently.

So, we will be discussing these different versions of ABAP in this blog and see different constrains in versions of ABAP language. Let’s start …

Versions of ABAP language


ABAP VERSION Meaning  Version ID 
Standard ABAP (Unicode) This is the universal version of ABAP which has all ABAP elements in scope in a UNICODE system. Unicode checks are performed in programs of this type. X
ABAP for Key Users   This version is designed for key users to do the enhancement implementations in secure manner. The rules of standard ABAP apply but very restricted set of ABAP language elements are allowed with restriction on access to external repository objects. It is used in web editor inside In-App extensibility tools(custom fields and logic, custom business object etc.)  2
Static ABAP with restricted object use  In this version, rules of Standard ABAP(Unicode) apply, with restriction on access to external repository objects. Dynamic data declaration and dynamic program creation is not allowed . 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
ABAP for SAP Cloud Platform  This version is designed for development in SAP Cloud platform with restricted set of ABAP language elements. 5
Obsolete ABAP (Non-Unicode)  This version is obsolete and is no longer supported. Version ID is blank in this case  -

Every ABAP program has an attribute “ABAP Language version” and by default “Standard ABAP (Unicode)” is selected on the program creation dialog box. But if we check the value help, we can see and can select from all the available versions as shown below.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides, SAP ABAP Online Exam

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides, SAP ABAP Online Exam

So, now when you know the different ABAP version and know that there are different constraints with versions other than Standard ABAP (Unicode) version, you must be curious to know what all language element we can use with all these different versions and how we can find all these details… right?? So, let’s see how we can find that.

SAP has provided standard report “ABAP_DOCU_VERSION_WHITELIST” to list all language elements, which are allowed, based on language version. For e.g. to check the available elements list for “ABAP for key users”. Select language version 2 on selection screen and execute and we have the list of whitelisted objects for version 2 as shown below.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides, SAP ABAP Online Exam

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides, SAP ABAP Online Exam

Alternatively, you can check the CDS view “ARS_APIS_RELEASED_FOR_C1” to get the same list.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides, SAP ABAP Online Exam

Similarly, you can see the whitelisted objects for other versions using report “ABAP_DOCU_VERSION_WHITELIST”.

For “ABAP for SCP” you can alternatively use CDS view “ARS_APIS_RELEASED_FOR_C1_SCP”

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides, SAP ABAP Online Exam

As we can see below, only 33 whitelisted object type are available in “ABAP on SCP” version as of now and we must see increase in this number with future releases.

Object Type  Object Name  State
DOMA ABAP_BOOLEAN  RELEASED
DOMA  XSDANY  RELEASED 
DOMA  XSDBOOLEAN   RELEASED 
DOMA  XSDCURRCODE  RELEASED 
DOMA  XSDDATETIME_LOCAL   RELEASED 
DOMA  XSDDATETIME_LOCAL_DT  RELEASED 
DOMA  XSDDATETIME_LONG_Z   RELEASED 
DOMA  XSDDATETIME_OFFSET   RELEASED 
DOMA  XSDDATETIME_Z   RELEASED 
DOMA  XSDDATE_D RELEASED 
DOMA  XSDLANGUAGE  RELEASED 
DOMA  XSDQNAME  RELEASED 
DOMA  XSDTIME_T   RELEASED 
DOMA  XSDUNITCODE  RELEASED 
DOMA  XSDUUID_BASE32   RELEASED 
DOMA  XSDUUID_BASE64  RELEASED 
DOMA  XSDUUID_CHAR  RELEASED 
DOMA  XSDUUID_RAW  RELEASED 
DTEL ABAP_BOOLEAN RELEASED 
DTEL  FARR_ALLOCABLE_AMT  RELEASED 
DTEL  FARR_CHANGE_TYPE  RELEASED 
DTEL  FARR_TRANSACTION_PRICE  RELEASED 
INTF IF_FARR_CHANGE_TYPE_DETN  RELEASED 
TABL FARR_S_CHG_TYPE_RESULT_BADI RELEASED 
TABL  FARR_S_CONTR_CHG_TYPE_BADI  RELEASED 
TABL  FARR_S_NEW_POB_CT_DET_BADI  RELEASED 
TABL  FARR_S_OLD_POB_CT_DET_BADI  RELEASED 
TABL  FARR_S_PRICE_ALLOC_CONTR_BADI  RELEASED
TTYP   FARR_TH_CHG_TYPE_RESULT_BADI RELEASED 
TTYP   FARR_TH_NEW_POB_CT_DET_BADI  RELEASED 
TTYP   FARR_TH_OLD_POB_CT_DET_BADI  RELEASED 
TTYP   FARR_TT_PRICE_ALLOC_POB_BADI  RELEASED 
TTYP   FARR_TT_PRICE_ALLOC_RSLT_BADI  RELEASED 

Okay, with this we have seen how to find out the whitelisted objects list for different ABAP versions.

Another important standard program that SAP has provided is “DEMO_ABAP_VERSIONS”. This program can be used to do the code syntax check for different ABAP versions.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides, SAP ABAP Online Exam

And on checking the source code you will see if the syntax is allowed in the selected language version or now. For e.g. in ABAP for key users, direct select from transparent tables is not permitted, so if we try to do the same, we will get the syntax error message as shown below.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides, SAP ABAP Online Exam

But, if we check the same with “Standard ABAP version”, we get no error as all ABAP language elements are allowed there.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Guides, SAP ABAP Online Exam

Another way to do the syntax check for your custom code readiness for cloud is by using ATC check variant “SAP_CP_READINESS_REMOTE”. 

1 comment:

  1. Very good blog for SAP which I have seen and it's absolutely great stuff on SAP Topics. Thanks for such a cool article about SAP topics. Very good explanation on SAP concepts we do SAP Training in Chennai for all SAP Modules.
    Regards,
    SAP Training Institutes in Chennai | Best SAP Training in Chennai

    ReplyDelete