Anthony Cecchini is the President of Information Technology Partners (ITP), an SAP consulting company headquartered in Pennsylvania. ITP offers comprehensive planning, resource allocation, implementation, upgrade, and training assistance to companies. Anthony has over 17 years of experience in SAP R/3 business process analysis and SAP systems integration. His areas of expertise include SAP NetWeaver integration; ALE development; RFC, BAPI, IDoc, Dialog, and Web Dynpro development; and customized Workflow development. You can reach him at email@example.com.
Modifications vs. Enhancement Framework
OK, in Part 2 of this blog, let’s take a deeper look at the limits of modifications to help gain an understanding of the advantages of using enhancements in the New Enhancement Framework.
Lets first get clear on what a MODIFICATION is…..
A modification means a change in SAP source code; that is, you add to, delete, or replace the source code delivered by SAP. Obviously, this leads to some drawbacks when you upgrade or patch your SAP system. In an upgrade, all SAP programs are replaced by new versions, whether they have changed or not. What does this mean for your modifications? Even if the SAP-supplied source code of the program is the same as it was before the upgrade, your modifications are effectively removed from the program after the upgrade.
SAP offers some support to help you reinsert your modifications after an upgrade. For instance, there is the modification adjustment transaction SPAU that supports many, but not all, types of objects. This transaction will show you a list of the parts of source code that have changed with the upgrade, and enables you to reinsert your custom code. How easy it is to reinsert your modification depends on whether the object you had modified has changed during the upgrade.
For those of you reading this that are not familiar with the upgrade process, let me illustrate with an example. Lets say you modified a method return_agent in a program me_assign_agents. What happens when you upgrade? Well, first the version of the program me_assign_agents is replaced with a new version from the upgrade. SAP does not concern itself at this point on whether not you modified a method in the program, it just does a complete replace. See below diagram.
In contrast to enhancements in the Enhancement Framework, modifications are physically part of the object they modify. This means that every single modification gets lost in an upgrade and needs to be re-inserted even in cases where the underlying SAP object has not changed at all! The ease in which you are able to re-insert your modification depends on whether the method containing your modifications was changed.
– If the method return_agent was changed in the upgrade, the SAP system cannot know, on its own, the position of your modification in the new version of this method. So you have to insert it again, semi-automatically. That is, you have to tell the Modification Assistant where to reinsert the modification.
– If the method return_agent is the same after the upgrade, the situation is easier to handle. In this case, you can just click on a button in transaction SPAU and your modification is automatically inserted into the new version of the program.
While you can adjust many modifications automatically or semi-automatically, there are some situations where you will have to reinsert modifications manually. In many cases, transaction SPAU can serve as a guide of which modifications you even have to consider and is a useful tool to reinsert them, but you still may have to go into the modified programs to locate the insertion point yourself.
Main Limitations of not using the Enhancement Framework
Let’s now take a look at the main limitations of using modifications instead of the Enhancement Framework:
– In general, you have to adjust all modifications after an upgrade. Otherwise your modifications would be gone after the upgrade. That means every modification causes work during an upgrade, even if the modified object is not changed in the next release.
– You have to adjust some modifications manually. The more complex the modifications get, the more difficult it is to manage or even keep the modifications.
– You cannot arrange modifications independently. Modifications can’t be grouped, nested, or organized with a structure of their own. In transaction SPAU, all modifications are shown at the same level. This is because modifications are not objects of their own — modifications are always part of the object they modify. Enhancements in the New Enhancement Framework, are discrete repository objects.
– You cannot attach documentation to modifications. Of course, you can document your modifications directly in the source code, but documentation attached to the source code itself would be ideal.
– There is no easy way to track modification developers. If you want to patch some part of a modification, it is always useful to know the original developer. However, it is often difficult to keep track of the different developers of modifications. Transaction SPAU offers only limited multiple user support. Starting with SAP Web Application Server (AS) 6.10, all developers who modify an object are logged, but it’s not possible to distill from the log data who modified which part of the object.
To summarize, the capability to modify SAP programs to meet your needs offers you significant flexibility, but it always generates additional work during an upgrade, even with the support of transaction SPAU. It is not possible to merge or keep modifications from different developments of the same object, nor is it possible to group and document modifications in the system.
In the next part of this Blog series, I will walk us through the main advantages of the New Enhancement Framework. To read part 1 of this series on the Enhancement Framework, use the following link. The New Enhancement Framework – Part 1.