In my earlier 3 blogs (Part 1 – 3), I have written on the potentials of the enhancement framework which allows you to enhance both the business /application logic and the user interface (Web Dynpro ABAP). Taking a step further, isn't it nice if you can make the change turned on or off at your will ? Let me introduce you to the concept of Switches. Imagine you are enhancing your XSS applications such as Travel Request/Claims or the many Web dynpro ABAP applications delivered with LSO, E-Recruiting, ECM etc. Yes, the switch concept can be applied to these enhancements as well.
Whenever you do your enhancement, you will be prompted to provide the enhancement implementation (or container) to contain your enhancements which are then assigned to a package. Next, a package can be assigned to a switch via the transaction SFW1 as shown below.
Note that other development objects such as dialog /dynpro UI elements, area menu notes, maintenance view, IMG nodes etc. can be assigned to a switch directly as well.
A switch is then assigned to a business function via transaction SFW2 as shown below. A business function can be made reversible by ensuring the following attributes are set i.e. Delivery Release = "Enterprise Business Function" and activate the checkbox "Reversible". Make sure you then assign the switch you created above to the business function.
The business function can then be turned on (or off, if it is on) via transaction SFW5 as shown below.
Note that as of SAP NetWeaver 7.0 and 7.0.1, all SAP delivered business functions (which is associated to the enhancement packages, EHP1-4) are not reversible. If you implement your own enhancements and switches, you, as a developer, can decide whether it makes sense to provide the feature to reverse an active switch, especially if the enhancements involve data dictionary changes. With clear analysis and decision in place, you can then configure your business function attributes accordingly.
The concepts of switches are certainly not new. It is used by SAP extensively in their roll-out of enhancement packages and industry solutions. You can have a peace of mind that you are using an indeed proven, mature and powerful tool to control whether a change should be active in a particular system and moment, and especially useful for troubleshooting when you may want to turn off your enhancements to compare it against the standard, to isolate whether a problem is caused by your new enhancements or is inherent in the SAP standard.