Code and table generation

In some cases you need to regenerate specific coding and tables. An SGEN is too extensive for your situation.

Regenerate programs

Use program TOUCHSRC:

Or worst case program TOUCHALL:

Regenerate tables

For table regeneration run program TOUCHTAB:

And TOUCHINC for includes in table structures:


Background OSS notes:

Best practice notes:

TRDIR and TADIR: tables behind programs and tables

TRDIR and TADIR are the tables behind programs and table data.

The below section is for experts only. Sometimes direct interception in TRDIR or TADIR is needed to solve nasty upgrade and support package issues. But if you don't know what you are doing: don't touch and raise message to SAP.

TADIR: development objects

TADIR contains the development objects list.

For example you want to know how many Z classes are created in your system, search in TADIR with SE11 and count the records:

Using TADIR with a search on DEVCLASS $TMP will give you a list with all programs in the $TMP (temp) space.

TADIR also has information about the original system. To change: follow the instructions in this blog.

TADIR does not contain a program editor lock. This is stored in table PROGDIR. See more in this blog.

Background notes on TADIR:

TRDIR: source code

TRDIR is a view on table REPOSRC. REPOSRC contains the actual ABAP source codes in RAWSTRING format. In some cases inconsistencies between TRDIR and TADIR might happen (mainly during upgrades). Direct interception on TADIR or TRDIR level might be needed, if you know what you are doing.

Transaction STDR can be used to check consistency:

Background notes on TRDIR:

Network performance tips & tricks

One of the most irritating and annoying things in the basis area is when the network gives issues. For whatever reason.

This blog will give hints and tips on how to recognize network issues and options to analyze them.

SAP notes on network performance

Main OSS note is: 1100926 – FAQ: Network performance.

Main SAP wiki on network performance can be found via this link.

Detailed analysis notes:

Specific issues with application to database server issues:

Check if database is the issue, or network:

Network issues on Azure:

LAN check

Check by ST06: start the LAN check by Ping:

Or directly via transaction OS01:

SAP GUI network issues

If the user is far away from the server, network issues can be cause of slow transactions for the end user.

SAP GUI slow connection can be set on creation of GUI entry, or by right clicking on the GUI entry and then selecting the network option:

FIORI and web developments

FIORI tiles and web developments might be slow with users further away from the server. If the application has many round trips built in the increase network latency will definitely kill the end user performance.

Read more in this blog on how you can simulate a distant user in Chrome to analyze the issue.

Clean ABAP code ATC variant

Clean ABAP is the ABAP variant of the clean code principles. All background on clean ABAP code can be read in this blog.

This blog will explain how to upload the ABAP coding for the Clean ABAP ATC variant in your system and activate it.

Load ABAP Git code

To load the ATC variant code for clean ABAP you first need to install the ABAP Git code. Follow the instructions in this blog to do so. Simplest is the offline variant.

Download the ABAP clean code package

Now go to the Github code pal site for ABAP clean code and download the package:

Select the button Code and choose the option Download ZIP.

Upload the package

Now start the ABAP git that you loaded in your first step. Choose the option New Offline:

Give the repository a name and select a package:

Then push the button Create Offline Repo.

Now select Import Zip:

Import the file you downloaded in step 2 from the code pal site.

Next step is the Pull zip:

You might get a screen with differences. Do not select anything there, only press Ok.

Then wait until all the Y objects are pulled into the system. This might take 5 to 10 minutes.

Activating the SCI checks

Now start transaction SCI. Select menu option Code Inspector, Management of, Tests. Select all the newly load Y checks for Clean ABAP code:

Important now: Save them!

Now you can create a global SCI variant:

Select all the Clean code ABAP checks and save the variant:

You might get weird issues upon saving for other items, like for example missing CL_CI_CATEGORY_TOP. In that case, go to transaction SE16 -> look for table SCITESTS -> and look for CL_CI_CATEGORY_TOP if there is no entry. Enter the table SCITESTS and click "Create Entry", add CL_CI_CATEGORY_TOP entry and save.

Test and usage

Take a program you want check. Then select menu option Program, Check, ABAP Test Cockpit with….:

Select the ZCLEAN_ABAP SCI check we created above. Run the checks.


Tip: click on the blue line to jump to the Clean Code site exactly explaining about the issue.

Clean ABAP Eclipse plug-in: ABAP cleaner

To speed up clean ABAP in practice, you can install the clean ABAP cleaner plug-in. Read this blog on how to do this.