Copyright 2022 - BV TallVision IT

Worried about parties stealing code ? Do you want to ensure no-one can touch, run or even see it ? Do you want to show the customer a demo on their own system, without leaving it there all exposed ? Lock your coding with the code locker. And re-instate when you needed, in under 2 seconds. 

Effectively what the code-locker does is strip all coding from the methods and replace it with a message "Coding locked".

The report or include will still have it's structure and it will still compile and start, but it will not perform any functionality for which method coding was involved. So when a user starts the report that was locked, a message will inform the user that the coding was disabled. The Abap coding from the methods is safely stored on the SAP database, after being scrambled with a password. So it's there, but it can't be used or even viewed. 

Selection screen and example lock placement

The selection screen can hold up to 20 abap sources in a single run. Each source will be stored/scrambled with the (same) password, where are retrieving (or adding) the sources can be done on individual basis. 

The icon on the right indicates whether a source is currently locked. On larger projects, the source codes that are to be locked are typically stored in their own variant. In the example report ZWIMTEST has an include ZWIMTEST_INCLUDE which will both be scrambled. If you want to find out which reports have been locked - simply use F4. 

When the report is started, a popup requesting a password will be shown:

This popup will appear on locking as well as unlocking requests. When locking coding, an extra popup "Reenter your passcode" is requested, so a simple typing error does not resolve in lost coding. After running the report, the lock-icons will show the sources are locked and the actual source code of the reports will have changed. The header of the (locked) source code will look like this:

And a bit further down in the example coding, where METHODs are (were) implemented:

Needles to say - this is software for the development system only, as the impact on transport and correction matters are way too serious. Lock coding only if it was never transported. 

.

The actual coding is not locked, it's stripped off it's coding logic for methods only. If a developer would continue working with the source code, there is nothing to stop him/her. Good to know that the rebuild of the source code will turn the logic that is found in (known) methods into commented out coding, and it will leave new methods alone. So feel free to unlock coding that has been changed (but also feel free to get a copy of your coding before an unlock attempt). 

The aim for this tooling is never to destroy coding, only lock it away safely. And put it back in place - of course. Do make sure you test this mechanism on a test report, just to make sure it also works on your system. How ? Copy the report to a $TMP version and lock it with the code locker. Then unlock and run transaction SE39 to compare the original version with the copied version. No unexplained differences should be there. The actual encryption is quite simple: each character is replaced by another character, but be aware that each method has it's own character-translation-table, so it is truly hard work to decrypt a report by hand. 

This freely downloadable report can not be used on standard SAP reports, inactive reports or reports that are being edited or any reports on a productive system. As it shouldn't.