Syntactically incompatible change of existing functionality
If ABAP programmers run ATC ABAP Test Cockpit for possible errors for code quality and security, after migration to S/4 HANA Syntactically incompatible change of existing functionality errors can be observed under S/4HANA: Search for usages of simplified objects. This means simplifications done by SAP on S/4HANA platform can cause backward compatibility problems due to change of existing functions, etc. In this SAP HANA ATC tutorial, I tried to explain a few errors and their solutions related with this issue from my experience recently.
Here is a screenshot from the latest ATC ABAP Test Cockpit check results on a SAP S4HANA system.
S/4HANA: Search for usages of simplified objects
Syntactically incompatible change of existing functionality (... ..., see ...)
This ATC check message has Priority 1 level and cannot be hidden using a pragma or pseudo-comment.
VBTYP SD Document Category
If ABAP developer checks the ATC error in detail, will be able to see such a similar hint that is exposing where the problem exists.
Syntactically incompatible change of existing functionality
(DTEL VBTYP, see Note(s): 0002198647)
When I click on the "Object Name", I can directly jump to the syntactically incompatible line of code.
As the ABAP ATC static code check error points to SAP Note 2198647, the cause reason is Field length extension of field VBTYP (SD document category).
To be more precise, for SD document category in ABAP tables SAP was using data element VBTYP which is 1 character long string. With S/4HANA SD document category field VBTYP in VBAK and VBRK tables is defined by using the ABAP data element VBTYPL which is 4 characters long string.
So, ABAP programmers developing on S/4 HANA should define sales document category variables in VBTYPL (SD Document Category (Long)) during custom ABAP code development.
Here is how VBAK table VBTYP field is changed on S/4HANA
KALVG Document Procedure (for determining pricing procedure)
In TVKV "Pricing Procedures: Transaction" ABAP table, "Document procedure (for determining pricing procedure)" KALVG field length is increased from 1 character to 2 characters with S/4 HANA.
Following error is related with this change on KALVG field length.
Syntactically incompatible change of existing functionality
(DTEL KALVG, see Note(s): 0002220005)
(DTEL KALKS, see Note(s): 0002220005)
KALKS field (KALKS data element) is defined in KALKS domain which has also now a string length of 2 on S4HANA, increased from 1 character to two characters.
ABAP programmers can find SAP Note 2220005 here.
VBAKUK Sales Document Header and Status Data
With S/4 HANA some tables like VBUK where status and administrative data for sales document headers are stored is no more used.
As ABAP VBAKUK view (Sales Document Header and Status Data) is dependent on VBUK table, the definition of the VBAKUK is altered.
What is more for ABAP programmers, we don't need to read VBAKUK any more, instead ABAP developers can read the same status data directly from VBAK table.
For backward compabilitity, ABAP view VBAKUK is also created on S/4 HANA but instead as I said VBAK table should be referenced for sales documents status data.
Syntactically incompatible change of existing functionality
(VIEW VBAKUK, see Note(s): 0002198647)
As seen in following screenshow, VBAKUK view is only formed of VBAK table fields. So there is no need for programmers to read data from VBAKUK view instead of reading directly from ABAP VBAK table
For example, the ATC check error was thrown by referencing following AMDP code where the FROM table VBAKUK can be replaced with VBAK