During SAP upgrade projects, adjusting customer's developments is often a huge activity, because a lot of programs and applications that worked correctly in the previous release, might contain syntax errors after the upgrade. The most common reasons for these errors are:
The only way to solve this situation is to adjust customer's developments, to the new release of ABAP Workbench.
In order to support these activities, SAP provides 3 powerful standard tools which allow multiple types of checks including large sets of ABAP programs scans:
In this blog I will not focus on how to solve syntax errors which is already widely discusses within the community, I will instead concentrate on another common pain point during upgrade as well as, with a lower impact, the enhancement packages: obsolete function module replacement.
This is what the SAP Mentor rich.heilman answered in a thread published in the ABAP general SCN Forum few months ago:
<< Basically, it means that the function will not be used in further developments at SAP, and should be avoided in customer programs as well. Why? Because we reserve the right to remove it at some point in time. :smile: Usually, when something is labeled as obsolete, there is a better FM or class/method which does something similar...>>
Replacing an obsolete function module is not a simple task and it's time consuming.
So taking this in mind, if the customer didn't ask for the replacement, we might ignore warning messages if the following conditions are met:
Thus the approach to be followed in this case could be: no replacement and wait for the testing results!
But what if your commitment is to replace obsolete objects?
The first thing to do is to identify which function modules are obsolete: table RODIR provides exactly this information in the general attributes (obsolete flag) of each function module.
Then it is necessary to identify alternatives for the obsolete ones, and here starts the long, hard and dirty job of the upgrade man.
In general it is not an easy task, there are several ways to do this and I summarized the most common and successful in the following checklist.
It is quite common that the obsolete function module is doing nothing else then calling the new one, so, the first thing to do is to check if, in the new release, the source code of the obsolete function module has been changed, and if so have a look at the code, a surprise might be there, waiting for you.
Check the documentation of the obsolete function module, sometimes SAP suggests alternatives functions there.
If the obsolete function module is a BAPI method you can search for an alternative among the API methods of the related business object. The standard report BAPIMONI is very helpful for this kind of checks.
I found in the OSS a powerful friend for this kind of task, a quick search could be very helpful, it is important to specify:
Release notes are grouped by application component which can be derived from the development class of the obsolete function module, there it is often possible to find details about obsolete objects replacement.
Perform a quick search using the SAP Documentation Trex Search: specify a substring of the name of the obsolete function into the search field, then narrow the results using the info-class = FUNCTION
In the new release, perform a "where used list" of the DDIC structures used in the interface parameters of the obsolete function module. The replacement method often uses the same interface structures.
Compare the where used lists of the function module between the old and the new release in order to find what SAP has used to replace the obsolete one.
Search for an alternative function module AND / OR Class Method is not so easy. I use the repository info system, by entering in the selection parameters various patterns such as similar words or substrings of the obsolete function module name
Create your own custom method with the same logic taken from the obsolete function module; this should be done only if the obsolete function module does not use obsolete logics (access to old tables, function modules)
If an alternative method cannot be found and the obsolete function module continues to work strongly and SAP continues to use it, you can sleep peacefully and ignore the warning message of the syntax check
This is a question that cannot be answered easily for two reasons:
During normal development activities keep in mind two useful tips in order to avoid last minute adjustments:
If you are requesting an obsolete function module thesystem immediately warns you that the function module is obsolete.
SAP Marketplace provides tons of useful information under the Upgrade quick link such as the Release Notes, the Product Availability Matrix and the SAP Solution Browser but unfortunately, as developers, what we really need is missing.
I'm still dreaming about the idea of an official SAP document which collects the list of obsolete function modules in a single point making life of developers easier. But dreams do not come true by themselves so starting from the SDN wiki pages List of Obsolete Function Modules in ECC 6.0 and Replacement of Obsolete Function Modules for ECC 6, I collected all the information related to obsolete function modules and their possible alternative methods in the table of the following WIKI page:
Obsolete Function Module replacement MATRIX for ECC 6.0
For sure the table is incomplete and might contain some errors, but I think that with the support of the whole SDN community it could be possible to create a reference document that could really simplify the life of developers. Let's work together to complete it!
SAP obsolete functions (1) - POPUP_TO_CONFIRM
Special thanks
I would like to thank my colleague @Techedge Sergio Cipolla for his support.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
2 | |
2 | |
2 | |
2 | |
1 | |
1 |