Upgrading to SAP HANA in itself is a relatively straightforward process, because SAP has already prepared all its own code for HANA. I won’t go into details about why you should upgrade, because the benefits are covered elsewhere. All I can say is that you definitely would want to upgrade. HANA’s take on big data opens up entirely new ways to run your business.
But before you’re ready to get to that point, where you can actually do the upgrade, you need to vet your own custom code and do the same as SAP did. Getting it ready for HANA. Because HANA isn’t a SQL database, you need to clean up the code in all places, where SQL statements are concerned.
The main issues you need to look for are:
- No SQL statements and DB hints
- No Implicit Sorting
- Pool and Cluster tables are transformed
When SAP fixed the code in its own modules, they added inspections to SAP Code Inspector that finds all the programs with issues. Each is listed nicely and you can see what the problem is. What SAP Code Inspector doesn’t do for you is to estimate the effort needed to fix the issues, filter our unused code and finally lets you manage the fixing process going forward.
Each SAP system will have hundreds of thousands of lines of code, and most will have in the tens of thousands of issues. Each issue needs to be fixed manually. I know some will tell you they can do it automatically, but my 15+ years as an ABAP programmer taught me differently.
I had no clue as to how to manage 30,000 issues
When I was tasked with cleaning up code for a SAP user, we ran the code inspection, we had SAP estimate the efforts and ended up with a nice spreadsheet with 30,000 rows. Each row was one issue. As a project manager, how do I manage this? How do I allocate team member to tasks? How do I figure out, if they’ve done the work? How do I know, when we’ll be ready? I don’t. I can’t.
So, we set out to develop a solution that would help others facing the same issue.
SAP Code Inspector is a good starting point, since it will find all the issues. We decided to base our tool on SAP Code Inspector to deliver the inspections and then our tool would do the hard work of estimating, filtering and keeping track. In order to get rid of unused objects, we added either UPL if the SAP user has that installed — or we simply filter for runtime usage.
The result was Gekkobrain — A cloud tool to clean up your custom code
As a project manager tasked with getting the custom code HANA ready, the first thing you will learn is that it’s a much bigger task than expected. As mentioned, I had to get 30,000 issues fixed. Half of which were in unused programs, which still left me with around 15,000 issues to fix. Each issue was about 25 minutes, leaving me with a project of 750 days.
Again, I am one of the founders of Gekkobrain, so you have to take that into consideration, when reading about, how I managed the project. If nothing else, the key learning, you can take away here is that getting your custom code HANA ready, is a big task. Major. And hopefully the way we have structured Gekkobrain, will give you some ideas on how you can structure the upgrade process, even if you decide to use other tools.
Back to the subject. We developed Gekkobrain, which does the following:
- Inspections are generated with SAP Code Inspector and transmitted to Gekkobrain
- Gekkobrain, our cloud tool, imports the inspections and
- Calculates efforts for the issues
- Shows how much ABAP can be fixed automatically
- Filters the issues for runtime, UPL and impact
- Sorts the issues by object
- Gekkobrain now allows the project manager to assign team members to the issues
Above is a screen dump from the Gekkobrain dashboard. It’s from an actual ECC system. The issues are listed based on the SAP priority:
Priority 1 Issues
Issues that must be fixed, or the system might not work after HANA upgrade
Priority 2 Issues
Issues that are not mandatory but are highly recommended to be adapted to improve runtime performance
Priority 3 Issues
Issues that are not mandatory but it is recommended to be adapted for performance reason
The next thing that Gekkobrain does is that it allows us to see all issues. Either issue by issue or grouped by object. This means that we can assign team members to certain types or issues, to objects or freely as we prefer.
Gekkobrain keeps monitoring
After the automatic fixing was completed (in a few hours) my team started fixing code, which meant I ran into a few new problems.
- I needed to know, how they were progressing.
- Someone introduced new code during the preparation phase. I needed to get that under control too.
We mulled this over for some time, and finally came up with a solution that actually takes care of both problems in one go. Gekkobrain monitors the custom code in SAP. By running daily Code Inspections, Gekkobrain can simply keep track of which issues have been fixed, which are still open — and it will find new unassigned issues. This takes care of the problem of progress. As a project manager, I can see a burndown chart on the very frontpage of Gekkobrain that shows me, when I can expect to be HANA ready.
Above you can see the burndown chart for the project mentioned above,
I also receive a notification of new problematic code. Assuming some developer somewhere commits new code with for example SQL statements, it will show up on my list, so I can immediately assign a team member to fix it.
With Gekkobrain — or the principles we will with Gekkobrain — you have a much better chance of getting your SAP systems HANA Ready in time. So before you commit to a date for a HANA upgrade, do yourself a favor and check the following:
- How many issues do we have?
- Which issues do we need to fix after automatic cleanup?
- How long does it take to fix the issues?
- How do I manage the team?
- How do I keep track of progress?
- How do I keep track of new code?
These are the essential questions to ask yourself before you commit to a HANA ready date and before you start fixing the code.
Want to dramatically improve the performance from your SAP systems? Book a free demo today to help optimize your ABAP code.