- Home
-
HANA & S/4HANA
-
Automated Codefixes
-
Release 1.1
Gekkobrain Automated Codefixes - Release 1.1
Release Note
Background
The Gekkobrain ABAP Code Fixer is a tool you can use to import generated code fixes related to either HANA Readiness or Code Optimizations. The code fixes are generated by Gekkobrain based on a Remote Object Set.
In order to use the ABAP Code Fixer, you need to import the Gekkobrain transport containing the source code for the Code Fixer.
Importing the sourcecode
First step is to import the transport located in the transport folder of the zip file into the Development system where you want to import the Code Fixes.
After a successful import – you will have the following elements available in your system (all kept in the /GEKKOBR/ namespace):
- Transaction /GEKKOBR/UPLOAD_FILE to import the fix file from Gekkobrain (zip file)
- Transaction /GEKKOBR/CODEFIX to start fixing ABAP Code
- Tables containing the fixes and the related status
How to upload the fixes
Gekkobrain will generate the Code Fixes in a zip file. The zip file will be in the ‘File transfer’ area in the Gekkobrain Cloud (Go to the selected system/project and choose ‘Upload Data’, and scroll to the file transfer section, select the Code Fix file and download it.
Next step is to upload the zip file to your SAP Development system where the fixes should be implemented.
When you upload the fixes, then the data are stored in the Code Fix tables (no source code is fixed yet) – in the following steps you will then be able select individual/multiple fixes from the tables for Automatic Code fixing.
In order to upload the Code Fixes:
- Start transaction /GEKKOBR/UPLOAD_FILE
- Locate the zip file and the upload will start
The Gekkobrain Codefixer
Selecting the fixes to process
In order to see the ABAP Code Fixes available in your system – you need to start transaction /GEKKOBR/CODEFIX.
Requirements to use this transaction:
- You need a valid developer key and auth. to maintain ABAP programs
- A Workbench transport (which should be used when you implement all the Code Fixes selected)
- And it’s not allowed to have ‘Inactive objects’ in your object list
The transaction will display the fixes available. You can use the selection to filter the Fixes you want to work with:

- Object Status: Filter based on the status for the objects being processed (ABAP Include)
- Choose range 00 – 99 to see all fixes
- Object: Filter on the include name
- Package: Filter on the development class
- Fix Category: Filter on the type of fix available in the system
- Responsible: Filter on a user allocated to an object
- Check Class: Filter on SCI Test Class
- HANA Priority: Filter on the HANA priority of the fixes
- Transport Req: The transport which will be used for the fixed objects
- Adjust in open TR’s: If this option is marked – then if an object is already locked in another transport, then this transport is used for the fixed object.
- Allow syntax errors after fix: Use this option only to import fixes to source code that cannot be activated (e.g for S/4 HANA code fixes where no refactoring of the code should be done prior to importing the fixes)
The Code Fix Overview screen
After executing the transaction, the report will display the fixes available in the system:

The overview screen is divided into 4 areas:
- The list of fixes and the related status of the fix (top – left)
- The fix details of a selected fix (bottom – left)
- The current source code (top – right)
- The recommended code fix (bottom – right)
Selecting a fix – get the details
In order to see all relevant details of a fix – you need to do the following:
- Find the relevant fix in the list of fixes
- Press ‘Display Fixes’ in the menu
- The transaction will show the fix details below the list
- Mark the fix details and press ‘Display Source’
The transaction will show the current source code of the select object (include name) and the recommended code fix in the two editor windows on the right side of the screen.
How to fix the sourcecode
There are two ways you can choose to update the ABAP Source code:
- Individual processing
- Mass processing (Batch Job)
We always recommend to start with individual processing of smaller sets, to verify and review the generated fixes, before you switch to mass processing mode.
Individual processing
You can decide just to process individual fixes for selected objects if needed.
- Find the relevant fix in the list of fixes
- Press ‘Display Fixes’ in the menu
- The transaction will show the fix details below the list
- Mark the fix details and press ‘Display Source’
- Press ‘Update Source’ if you want to use the Code fix proposal
- The object will be changed and activated
Be aware you can only change the object with the Code fix proposal if:
- The source code has not been changed after the Remote Object Set was extracted
- The object is not locked by another user
- The object does not contain syntax errors before it’s being processed
- The object does not contain syntax errors after it’s being fixed
Mass processing
If you want to mass process the code fixes, the changes will take place in a batch job. Do not schedule parallel jobs for the mass processing, you should ONLY have one job running.
- Find and mark all the relevant fixes in the list of fixes you want to process
- Press ‘Update Fixes in Batch’ in the menu
- The transaction will schedule and run the batch job automatically
- Press ‘Refresh’ to see the progress of the batch job
- The objects will be changed and activated one at a time
Be aware you can only change an object with the Code fix proposal if:
- The source code has not been changed after the Remote Object Set was extracted
- The object is not locked by another user
- The object does not contain syntax errors before it’s being processed
- The object does not contain syntax errors after it’s being fixed
Fix Types
The Code fixer generates multiple kinds of fix types, which can be implemented in different ways:
- Manual Fix: The Code fixer has generated a fix, but it’s highly unlikely that the fix should be implemented and if it’s needed the source code change should be done manually.
- Semiautomatic Fix: The Code fixer has generated a fix, but a developer needs to verify it before it can be implemented.
- Automatic Fix: The fix can be implemented without any issue (also possible to implement using the batch job option).
Special processing functions
The Code Fixer tool has some additional functions available – to help you in the processing of fixes:
- ‘Reset Owner system’: In some cases, you could have ABAP objects in your development system with a wrong owner system. If you implement fixes to these objects it will result in a repair. This function can set the owner system of the selected object to the same as the current development system.
- ‘Reset fix status’: If you by mistake has implemented a fix you can use this function to reset the fix. But BE AWARE – you will need to recover the previous version of the source code, which was fixed and this needs to be done manually. Furthermore, if you have other fixes which relates to the same source code, they should be reset as well in order to have consistency. Important: You should be very careful when you use this function.
- ‘Not Relevant’: If you find fixes you don’t want to implement, you can set the status to not relevant.
Fix Status Description
The fix status describes the state for each of the Code Fixes available in your system. This list describes the background for each status code:
- 00 Object ready to be fixed: Fix which has not been processed yet.
- 05 Syntax error applying the fix - no changes made: After the Code Fix was implemented it was not possible to syntax check the code without any errors. The fix should be implemented manually.
- 06 Syntax error before fix - no changes made: The source code was check before any Code Fix was added, and the source code contains error. The fix should be implemented manually.
- 07 Activation error applying the fix: After the Code Fix was implemented it was not possible to syntax check the code without any errors. The fix should be implemented manually.
- 08 HASH key error for this fix - no changes made: The source code has been changed after the Remote Object Set was generated. There is a risk that the changes made could lead to syntax errors. You can implement the fix but verify the Code Fix proposal before you decide to implement the Code Fix. If you have a high number of fixes with HASH key error, the solution would be to create a new Remote Object Set and regenerate the fixes.
- 09 Not possible to Save fix (check locking): The source code is locked by another user and cannot be updated. When the object is no longer locked the fix can be implemented.
- 11 Include has multiple mains - manual activation: The include which was fixed cannot be activated because it has multiple main-includes. Please activate it manually.
- 12 Object locked in another transport: The include is part of another transport and therefore you cannot implement the code fix. Use the option ‘Adjust in open TR’s’ when all the other fixes have been implemented.
- 15 Object is being fixed in batch: The fix is being fixed in a running batch job. Please wait for the job to complete.
- 30 Source code could not be read: The fix refers to an include where the source code not be read. Please implement the fix manually.
- 31 Source code is locked: The source code is locked by another user and cannot be updated. When the object is no longer locked the fix can be implemented.
- 90 Object is fixed: The fix was implemented without any issues – and the source code was activated successfully
- 99 Not Relevant: The fix was marked as not relevant for implementation (the fix can be implemented if the status of the fix is changed using ‘Reset fix’.
The Application log & batch jobs
All processing, both when upload the fixes and when you implement them, will be tracked in both the application log and batch job log.
Use the object ‘/GEKKOBR/’ in transaction SLG1 if you want to track the update of the source code and fixes.
Batch jobs for mass processing with generate job names called: “GEKKOBRAIN_CODEFIXER”. The state of the batch processing can be found in the spool.