Wednesday, June 8, 2016

Enhancement Packs and the search for disruptions

Every now and then SAP releases an Enhancement Pack for your CRM system and besides enjoying all new enhancements you are faced with the challenge of finding possible disruptions. Tools exists for checking and adjusting modifications (transactions SE95, SPDD and SPAU) and for the WebUI enhancements (WCF_CC and WCF_RT_COMP). In addition you can use the Code Inspector (SCI) to scan all the custom developments for warnings and errors. And then? Is that all you can do before starting testing?

Well there is a more subtle change in SAP-coding that can impact your operation and it has to do with inheritance. Whenever a WebUI component is enhanced the system will create a Z-version which is linked to the SAP-version by means of inheritance. You are the owner of the Z-version but the SAP-tools mainly focus on modifications on SAP-versions of the coding. Knowing this linkage it's interesting to find out which related objects have been changed by the Enhancement Pack and what the actual changes are. Note that the actions described in this blog require one system with the installed Enhancement Pack and one system without.

Finding the suspects

To my knowledge there is no standard tooling available for analyzing the inheritance so I have created one. It is available here.

After providing a selection of classes (typically ZL* to get all WebUI enhancements) the output might be something like:

What it shows is the following:
  • Method CREATE_PARTNER is defined (indicated with level 0) in standard class CL_CRMCMP_B_BUPACREATE0_IMPL and has been redefined once in class ZL_CRMCMP_B_BUPACREATE0_IMPL
  • The last column shows when the implementation was changed (if blank, no information was found)
  • More interesting is method DO_HANDLE_EVENT defined in class CL_BSP_CONTROLLER2; within our selection there are 6 Z-classes which redefine this method eventually and in one case this method is even redefined 5 times by other classes beforehand
Thus a change in class CL_BSP_CONTROLLER2 can have major impact!

Analyzing the suspects

Luckily SAP provides an excellent tool for object comparison between systems, transaction SREPO *), which is able to generate an analysis like this:

Et voilĂ , we have pinpointed the exact change and we can pro-actively check for possible disruptions.

*) Check the end of my program for an easy way of transferring the output to the input of SREPO