Few guidelines you want to follow whenever you need to copy a standard program to meet the needs.
Many times, we get a request from Clients to “enhance” the standard program. From business point of view this Enhance would be to add more functionality in the standard report. To translate that requirement in Technical terms, you may not find suitable enhancements and want to go for the Copy of the standard program – Copy the code into the Custom program and Add the additional logic to meet the new requirements
Before deciding to copy the standard program to a Custom version, you want to follow these checklist:
- Enhancements – Check if SAP has provided std User Exit, Customer Exit, BADI or Explicit Enhancements in the Standard program. If you find the hit, make sure you do all the research on making use of them.
- Implicit Enhancements – If you don’t find the explicit points or enhancements, see if you can implement the implicit enhancements. Majority of time, this should be able to meet the requirement.
- Use of Std FM in a Custom program – Check if the std program is designed in such a way that you would be able to call the unit – FM or Method – in your custom program. Add your custom logic after you get the necessary data from the FM. Many programs are not designed this way in Std SAP. To be able to have a flexibility the program needs to be designed using Model View Controller (MVC).
Maintenance of Copied Program
After you exhausted all the option above and now you want to create the Copy of the standard program. When you do so, you want to also know the future risks for doing so. The biggest drawback would be maintenance of the Copied version of the program.
You need to follow few guidelines in order to make future maintenance as smooth as possible:
- Changes added to the Copied version has to be highlighted properly
- Changes also needs to be documented in the Technical Specification document
- During Upgrade, if SAP delivers a newer version, you would need to analyze the standard program in order to determine if you would need to update your copied code as well. Figure out if the changes are technical – for example, replacing obsolete FM with newer method calls or is it a functionality change – e.g. a new column addition. If a new functionality is introduced, you would want to get together with business to decide if you would need to include those in your copied version or not
If you are keep on updating the System with a Support Pack or an Upgrade frequently, you would need to follow the last point all the time. Thus, increased maintenance!
Guideline to Ease the Maintenance
By the time, you would now be thinking what I can do to make things easier. The answer is – Generate the Version of the original Program. You must always release the task where you have copied program. This will provide you few benefits:
- You can utilize the version management tool to compare the changes you have implemented. It would clearly show you the Delta of changes.
- You would be able to know if the new changes coming in standard program is affecting your copied version of the program or not
Along with generating the version, You should also:
- Highlight that you have introduced a new logic by using the markers like BEGIN / END OF CHANGE. It would be helpful while debugging to know if the issue is coming from your code vs Std SAP code
- Wrap your code in a FM or Method and implement it outside of the copied version. This would enable you to copy the newer version of the program again and to plug your custom code rather than have to rewrite it again.
Do you follow any other guidelines when it comes to copying the program?