In my first main topic, I will talk about the SAP enhancement framework and switches. My first blog will give you a high level appreciation of what the framework is, and subsequent blogs will provide the details and insights.
My concentration is to bridge between the functional folks and technical folks. Often, as functional consultants, we do not know the in-depth capabilities of what SAP Netweaver and ABAP could offer and vice versa. I will attempt not to dwell into code writing (which hopefully, you have your technical resource to rely on) and the very technical aspects of this topic (if you are interested in the technical details, you can always read from SDN) but give a good functional overview of what this framework could offer, so that we can offer better solutions to our customers/users and hopefully bridge the gap with our technical ABAPers (though we cannot assume all our ABAPers know this as well).
As SAP consultant (in the various SAP modules), we are constantly asked by our users or customers to enhance the SAP standard functionalities. Equiped with the know-how to configure via IMG and the exits provided (Business AddIns (BADIs), Business Transaction Events (BTEs), user exits and customer exits) and working closely with our technical ABAP colleagues, we tried our very best to achieve the desired requirements.
However, not every customizing / configuration is able to achieve the expected requirements without having to resort to
modifications. Very often, we have to pick up the courage to tell our dear users or customers that it cannot be achieved within resorting to modifications (whatever it means ..). Users or customers are frustrated because they could not comprehend why SAP cannot be "tweaked" or tailored to their requirements, in most cases, we have to agree that they are not asking unreasonably.
Not all users or customers are savvy about the consequences of modifications and the implications of maintaining it down the road. As time goes by, we all resign to the fate that SAP is rigid and live within the perception.
Why is modifications "bad" ?
There are 2 ways to perform modification :
- Modify on the standard code (development object) itself. This will require you to obtain the access key.
- Copy the standard piece of development object to the customer namespace, and name the object with prefix Z or Y. With a customer copy version, you are free to modify the codes to your heart's content.
When SAP releases a note to fix bugs or introduce new features in an upgrade or support package, your modification will be inevitably over-written. Either approach, you have to sync. the codes newly introduced into your modifications, which takes tremendous effort to track and re-test.
What's new and great ?
With SAP NW 7.0 and onwards, SAP provides a new framework (compliment and not a replacement to the old enhancement approach) which enables you to enhance SAP business function (application logic), user interface (we are talking about Web Dynpro ABAP) and switches (your enhancements can be made reversible).
The 3 "pilars" provide a new evolution to enhance SAP code and user interface, without modification.
The enhancement framework for the user interface applies to Web Dynpro ABAP and not Web Dynpro Java (this is one of the key advantage of ABAP vs Java - another lot of discussion).
How does it apply to me ?
Whether you are a functional or technical consultant, whether you are supporting HCM or FI etc, the lessons and techniques (within your arsenal) is applicable to you. With a strong understanding of the framework, it will definitely benefit you in providing your users or customers with a feasible and better solution especially when you have run out of options from the old enhancement techniques.
What to expect next ?
In the next and subsequent 4 - 5 blogs, I will share with you the various "new" enhancement techniques, namely :
- Enhancing business logic / application logic via :
- Implicit and explicit enhancement
- Pre-exit, over-write exit and post-exit (applic
able for global class methods)
- Enhancing user interface
- Concept of switches and how-tos
- Modification best practices
- Best practices and things to watch out