For the S/4HANA migration one of the key areas that have a significant impact is the custom code and how it has to be managed so that the custom components are aligned to the S/4HANA data models and processes.
These are the questions that are posed more or less in any discussion involving S/4HANA migration
- What is the impact on the custom code
- How many objects have to be modified
- What about the impact on enhancements and modifications done in the system
- How big a change is adopting the custom code to S/4HANA
- There is no S/4HANA in the landscape but is there any other way to do the preliminary impact assessment
- What is the functionality that is there in the landscape that is not supported anymore
- How to get to the further details about what adjustments to make to the custom code
These are the SAP tools available that facilitate the identification of the custom code changes required as part of the S/4HANA journey. Some of them are
- The code inspector can be used to check the impact on security, syntax and performance etc.;
- Custom Code Migration Worklist
The latest tool which gives more insights into the custom code and is very easy to run is the Custom Code Migration Worklist (CCMW) along with the Simplification Database. They provide valuable insights into the impact of S/4HANA on custom code.
The Simplification Database contains all the Simplifications Items that refer to SAP objects that are simplified in an SAP product (for example, SAP S/4HANA) based on SAP NetWeaver 7.5.
Custom Code Migration Worklist
The Custom Code Migration Worklist displays all customer objects that refer to simplified SAP objects and it provides links to information about how to adopt these customer objects.
Both of them put together generate a result set like this.
This gives a good indication of the amount of changes required and the criticality of the changes. As part of the cost assessment this can provide valuable insights.
What are the Learnings
- If a NetWeaver 7.5 system is available it is very easy to generate the S/4HANA impact list.
- Usage and procedure list is required if the number of corrections required are more as UPL gives an indication about the components that are highly used vs components that are not used.
- The quality of the UPL result set depends on the coverage. E.g if the UPL is not run to cover the year end process so the relevant components might be identified as not used. This means that UPL data is important however the impact has to be assessed thoroughly so that the objects are not missed.
- The high number of objects does not necessarily mean lot of changes. In the above example there are over 2000 objects listed under “Material Field Length Extension”. However in the landscape which this was run does not use material number extensively. It just indicates that there are tables that are referred where the material number attribute is used.
- An industry add on in the list does not necessarily mean it is used; it can be that a piece of reusable code like FM or class is used from the module. Review the impact on add-ons with respect to the business functions used in the landscape
- The data can be sliced and diced as per the landscape and the migration planning to get meaningful insights. This exercise assists in identifying the hot spots so that they can be concentrated first before moving on to the less critical ones.
- This is purely a technical assessment. There has to be another round of functional assessment to be done to make sure the impact is understood fully so that the optimizations done are not purely technical. There might be potential business process optimisation steps. E.g in the assessment done in the current landscape where Classic GL is used along with average balance ledger, the impact analysis did not provide the level of detail that is expected. Reason might be that the “totals tables” structures are available in the system however the data available in the table is what really matters. So the functional assessment is very critical on top of the assessment that is delivered by SAP.
How to Set up
Ensure that the following data is available before you run the Custom Code Analyser:
- The where-used index has to be up to date in business suite system. If the Custom Code Analyser notifies you that it is not up to date, apply SAP Note 2234970
- If customer namespaces are used, add them to the selection. For further information, see the SAP Note 2185390
- To complete this analysis the evaluation system has to be NetWeaver7.5
Run the Custom Code Analyser in the SAP Business Suite system by executing the SYCM_DOWNLOAD_REPOSITORY_INFO report as a job. The Custom Code Analyser detects all references to SAP objects in the custom code. As soon as the job is finished, metadata for these references is stored in a ZIP file.
Note: Run this activity in systems that resemble production and not in production environment. If the where used list in the system is not updated, run the programs SAPRSEUB and SAPRSEUC. These programs run for few hours
Download the Analysis Result as a ZIP File by executing the SYCM_DOWNLOAD_REPOSITORY_INFO report. On the SYCM Custom Repository Download page, choose the Download ZIP file … button from the toolbar to trigger the download of the ZIP file.
Import the Custom Code Analysis Result into the Evaluation System by running the program SYCM_UPLOAD_REPOSITORY_INFO. The analysis result is uploaded to the Custom Code Worklist in the evaluation system.
Step 4: (Optional)
Enable and import Usage Data from a Production System UPL usage and procedure logging. The UPL gives a good indication of how much of custom code that is impacted is used in the system. This will allow the efforts to be spent on the most important objects. This is not a mandatory step as without this the complete analysis on the custom code can be obtained and then it can be broken down further to see what sort of impacts are there on the custom code
Step 5: (Optional)
In the Custom Code Migration Worklist, configure a Remote Function Call (RFC) connection to navigate to SAP objects and/or customer objects in the system where the Custom Code Analyser has been performed. This might be helpful if the corresponding objects do not exist in the local system.
Run the program SYCM_DISPLAY_SIMPLIFICATIONS in the evaluation system to see the results of the custom code analysis. This will give results outlining the objects that are impacted and the classification.
The worklist provides the following information:
- Processing Status: You can set a processing status (for example, Open, Completed, and so on) to define which customer object have already been or have not yet been adopted.
- Customer Object Type
- Customer Object Name
- Customer Subtype
- Customer Subname/SAP Object Subname: Name of the subobjects of the customer object used by the customer / provided by SAP
- Customer Package: Name of the ABAP package in the customer system where the relevant customer object is stored
- Dependency Category
The following categories are provided to define the:
- Reference: customer object that uses the SAP object
- Extension: customer object that extends the SAP object
- Modification: SAP object that is modified
· Application Component: Name of the application component to which the SAP object is assigned
- Simplification Category: Represents the category of the simplification item
The following categories are provided:
- Usage of functionality not supported anymore: Usages of this SAP object must be removed from the custom code.
- Usage of functionality not recommended anymore: SAP recommends removing usages of this SAP object from the custom code.
- Syntactically incompatible change: Custom code needs to be adapted as described in the related SAP Note.
- Semantically incompatible change: Custom code needs to be adapted to the new semantics as described in the related SAP Note.
- Change with performance impact: Usages of this SAP object might have impact on your custom code.
- SAP Note Number: Number of the SAP note that describes the changes to the functionality or business process of the SAP product to be converted
- SAP Note Title: Title of the referenced SAP note
· Executions: Displays the number of executions of the customer object in the production system.
- Processor: Name of the user who set the processing status for the corresponding customer object
- Comments: Additional information entered by the processor