Christopher B. Browne's Home Page

7. Some technical stuff...

The following bits of information have proved useful to me.

If they are useful to you, that's nice.

The effects may vary from site to site based on what version of the R/3 kernel you may be running, as well as based on the version of whatever database, as well as based on your site's functional and Basis configurations.

If you're not sure whether doing any of these things may break security requirements, take you to the wrong transaction, or delete or corrupt data, then you should probably not use this information, or use an R/3 system...

7.1. R/3 Platforms

7.2. Reinitialize R/3

7.3. Useful ABAPS

7.3.1. Fiddling with Internal Tables

Here's a utility showing how one fiddles with an internal table in a dynamic fashion...

    form test.
      typ(1) type c,
      n type i.
    field-symbols: <f>.
         assign component sy-index of structure itab to <f>.
         if sy-subrc <> 0. exit. endif.
         write <f>.

7.4. Payroll Programs

7.5. Schemas

A little "rule language" for representing pay calculation rules as used in programs RPCALC*. The US Payroll calculation program is RPCALCU0.

The U000 scheme is used to estimate payroll calculations; it is run repeatedly on a group of employees until no exceptions are found.

7.6. Payroll Run: RPCALC*0

One can characterize the calculations for scheme U000 as doing the following:

Once the data is correct, use scheme U500 to create an FI export to be used to account for the payroll activity in the G/L.

There are three "input files" used to calculate payroll:

RPCALC*0 is used to turn these into a new PCL2 record containing current period payroll data; the Pnnnn data is archived for future reference...

While working, the following internal tables are used:

7.7. Useful Function Modules

7.8. Interactive Reporting - useful elements of SY

7.9. Finding User-Exits

Transaction SMOD can list R/3 user exits; use the second screen to specify a range, from 11111111 to zzzzzzzz.

Most user exits are function modules containing EXIT_.

7.10. Useful Tables

7.10.1. Transport Tables

  • T000 - Contains a list of all clients in the systems

  • TRBAT - contains staging information on return codes from various steps in the import process.

    If a transport "goes bad," a system can get snarled up, and it will be necessary to purge the entries in this table, kill the relevant TP processes, and restart.

  • TADIR - contains info on the ownership of objects.

    If objects were modified in system HD2, and development has moved to HD1, then it may be necessary to run the following SQL update in order to move ownership to HD1...

    select count(*) from sapr3.tadir where SRCSYSTEM='HD2';

Contact me at