
When importing several transport requests simultaneously, tp processes each import step collectively for all transport requests to be imported. The required steps for each request are listed in the transport buffer file. The contents of the transport buffer file are organized as a table in which each column represents an import step. The numbers in the columns indicate either whether the import step is necessary, or the number of objects in the request that require the specific step.
When you import all transport requests listed in the figure "tp Processing Sequence", together, the first import step DDIC is processed for transport requests where it is required (DEVK900827, DEVK900840 and DEVK900865), then the ACTIV step is processed (for the same transport requests), then the MAIN I step for all transport requests, and so on.
The tp import all command, therefore, does not process all steps for one transport request before moving on to the steps for the next transport request. For example, if you detect an error in a program that has already been exported, you will need to correct the program and release the corresponding transport request for the correction. Import all requests then will import the transport requests of the whole transport buffer in the correct sequence and the faulty program will be overwritten. Because the generation step is the last step and is performed only once for all programs in the trnsport requests, the faulty program does not affect your production system. Only the correct version of the program will be generated.

There are four major steps when importing transport requests (see the figure "Steps During Import"):
- Importing dictionary objects
- Handling of dictionary objects
- Importing "everything else"
- Handling of "everything else"
These steps in the import process are, in detail:
- DDIC: ABAP Dictionary import
- In an import with R3trans, all ABAP Dictionary structural data is imported inactively, thus enabling you to perform this import step in an SAP system that is not yet in downtime.
- Log file: <source SID>H9<number>.<target SID>
- Transport tool: R3trans
- ACTIV: ABAP Dictionary activation
- Runtime descriptions (nametabs) are generated. This is the beginning of the downtime.
- Log file: <source SID>A9<number>.<target SID>
- Transport tool: Job RDDMASGL (starting report RDDMASGL)
- ACTIV: ABAP Dictionary distribution
- After activation and running logical checks for the new dictionary structures, the distribution program decides what actions are required to adopt the object on database level.
- Log file: DS<date>.<target SID>
- Transport tool: Job RDDIS0L (starting report RDDGENBB with variant DIST)
- ACTIV: Structure conversion
- If necessary, changes are made to table structures.
- Log file: N<date>.<target SID>
- Transport tool: Job RDDGEN0L (starting report RDDGENBB with variant CONV)
- ACTIV: Move nametabs
- The new ABAP runtime objects are put into the active runtime environment, database structures are adjusted, if necessary.
- Log file: P<date>.<target SID>
- Transport tool: Job RDDMNTAB (starting report RDDMNTAB)
- MAIN I: Main import
- All other objects and data are imported.
- Log file: <source SID>I9<number>.<target SID>
- Transport tool: Job R3trans
- VERS: Versioning
- Versions of repository objects are only created if tp parameter VERS_AT_IMP is active.
- Log file: <source SID>V9<number>.<target SID>
- Transport tool: Job RDDVERS* (starting reports RDDVERS*)
- XPRA: Execution of Reports after import and of "After Import Methods"
- XPRAs are programs that are started during import in the target system. The XPRA object has the same name as the program.
- Log file: <source SID>R9<number>.<target SID>
- Transport tool: Job RDDEXECL (starting report RDDEXECL)
- GENERA: Generation of ABAP programs
- During this step, the ABAP programs are generated.
- Log file: <source SID>G9<number>.<target SID>
- Transport tool: Job RDDDIC3L (starting report RDDDIC3L)
Note
It is also possible to import non-ABAP objects using the enhanced Change and Transport System (enhanced CTS, formerly known as CTS+). In this case, an additional deployment step for importing the objects into the non-ABAP system takes place after the main import. The corresponding log file is <source SID>T9<number>.<target SID>, the transport tool is job RDDEPLOY.
When transporting SAP HANA content with the help of SAP HANA Transport for ABAP (HTA), the additional job RDDHANAD for SAP HANA deployment is triggered. This job creates the log file <source SID>C9<number>.<target SID>.

R3trans is a transport tool at operating system level used to transport data between SAP systems. R3trans is usually called by other programs such as tp, the transport control program.
For transports between SAP systems, to access the database, tp indirectly calls R3trans by causing UNIX to issue a fork(), Windows to issue a CreateProcess(), and AS/400 to issue a spawn(). During export, R3trans stores the object data extracted from the database in data files in the transport subdirectory data. The format of these data files, R3trans format, is independent of the platform. During import, R3trans reuses these data files.
Direct use of R3trans is not supported but may be required in exceptional cases. In case of transports, R3trans should always be used via tp.
Note
Import steps differ for the different object types. Further activities may be required in addition to R3trans activities. tp ensures that all export and import steps, including R3trans activities, are completed successfully.
R3trans writes data using a standard transport format. Thus you can export data with an old R3trans version and import data with a new version of R3trans. You can also transport between different databases or operating systems.
Note
Although exports and imports are independent of the R3trans version, the database platform, or the operating system, SAP does not support using tp or R3trans for transports between different SAP system releases. See also SAP Note 1090842 – Composite SAP Note: Cross-release transports.

The first step of an import process is the tp call, triggered by starting an import through TMS or by a tp import command at operating system level.
During the whole import process, tp reads the transport buffer file that includes all the necessary steps for the specific request.
If you trigger a tp import all, tp has to ensure that only all transport requests are imported that are stored in the transport buffer at the beginning of the import process. This is done by executing command tp setstopmark each time a tp import all process is started. After the steps of the import process are completed, the command tp delstopmark is performed automatically, and a tp cleanbuffer deletes the transport requests from the transport buffer.
After all involved tools have finished their work, tp exits to operating system level and writes a return code to the appropriate log file for the activity. For example, tp import commands are recorded in the ULOG file.
Note
The command tp import can be restarted. If an error occurs during import, after you eliminate the error condition and restart tp, tp finds the correct point to restart.
By default, tp aborts if one import phase receives a return code larger than 8. The transport profile parameter STOPONERROR defines what return code value should cause tp to abort.

tp reads the transport buffer file that includes all the necessary steps for the specific transport request(s) and calls R3trans at operating system level.
For each import step, tp passes information from the transport buffer file to R3trans. R3trans reads the corresponding data files in the transport subdirectory data and connects directly to the database to perform inserts or updates to the included objects. After R3trans finishes performing inserts or updates, it passes an exit code (return code) to tp.
For each transport action, R3trans writes a log file in transport subdirectory tmp. After R3trans has completed its work, tp moves these log files to the transport subdirectory log.
During the import process, R3trans is executed by the import steps ABAP dictionary import (for the import of ABAP dictionary definitions) and main import (for the import of other repository objects and table contents).

In addition to the steps performed by R3trans, tp triggers the so-called import dispatcher. The import dispatcher is a background job with the name RDDIMPDP in the SAP system, which performs steps in the import process. It is a job and program in the SAP system, that controls post import activities, such as table structure activation and conversion, program generation and versioning
tp and RDDIMPDP communicate via table TRBAT. For every transport request, tp writes an entry in table TRBAT. The import function currently being performed for the request is represented by a character.
In the example below, there are three transport requests waiting for activation of DDIC objects (Function = J) in the table TRBAT.
Request | Function | Return Code | Timestamp |
---|---|---|---|
DEVK904711 | J | 9999 | 00000001 |
DEVK904714 | J | 9999 | 00000002 |
DEVK904718 | J | 9999 | 00000003 |
HEADER | J | B | 20221112181000 |
tp inserts a header entry to request RDDIMPDP to start processing. Some activities that are independent of transport requests, such as distribution and structure conversion, only have a header entry in table TRBAT. Return code 9999 indicates that the step is waiting to be performed. For the header entry, tp inserts a B (for "begin") as return code.
To trigger the job RDDIMPDP in the SAP System, tp uses the operating system level tool sapevt.

When RDDIMPDP is started, it checks the table TRBAT to find out if there is an action to be performed for the transport requests such as mass activation, distribution, or table conversion. It sets the header entry to R (for run), and starts the appropriate RDD* program as a background task, reschedules itself, and exits.
Note
For example, RDDMASGL is for mass activation, RDDEXECL for execution of reports and "after import methods" after import, and RDDVERSL for versioning. Each RDD* job receives a job number that is recorded in table TRJOB. The jobs report their current status back to TRJOB.
The activated program (in this example, the mass activator for dictionary objects) sets the status of the first entry in TRBAT to active (return code 8888):
Request | Function | Return Code | Timestamp |
---|---|---|---|
DEVK904711 | J | 8888 | 00000001 |
DEVK904714 | J | 9999 | 00000002 |
DEVK904718 | J | 9999 | 00000003 |
HEADER | J | R | 20221112181005 |
Each of the required background tasks receives a job number generated by background processing. This job number and the step ID are inserted into table TRJOB by the RDD* jobs.

The background tasks write their return codes in table TRBAT and delete the corresponding entry in table TRJOB. Return codes of 12 or less indicate that the step is finished. In TRBAT, the column TIMESTAMP contains the finishing time. When all the necessary actions are performed for all transport requests, the header entry is set to F (for "finished") by the RDD* jobs.
Request | Function | Return Code | Timestamp |
---|---|---|---|
DEVK904711 | J | 4 | 20221112181039 |
DEVK904714 | J | 0 | 20221112181041 |
DEVK904718 | J | 0 | 20221112181045 |
HEADER | J | F | 20221112181045 |
All the background jobs log the performed steps either in the database or in transport subdirectory tmp.
tp monitors the entries in table TRBAT and table TRJOB. When the header entry in table TRBAT is set to F and table TRJOB is empty, tp copies the logs of the completed steps from directory tmp to directory log and deletes the corresponding entries in table TRBAT.
If problems are detected by tp when monitoring the TRBAT and TRJOB tables, tp re-triggers RDDIMPDP through sapevt. RDDIMPDP then automatically recognizes if a previous step is still active or was aborted by checking the TRJOB and TRBAT tables. If a step was aborted, RDDIMPDP restarts this step.
tp uses the tables TRBAT and TRJOB to communicate with the various ABAP programs started by the background jobs. Note that there must be at least two background work processes configured in the SAP system.
When imports are performed, tp triggers the import dispatcher RDDIMPDP by sending the event SAP_TRIGGER_RDDIMPDP with the help of the tool sapevt. In client 000, user DDIC must schedule the job RDDIMPDP with event-based scheduling.
For AS ABAP based systems of SAP Business Suite, RDDIMPDP can be scheduled by running the ABAP program RDDNEWPP in client 000 with a user that has the CTS administration authorization S_CTS_ADMIN.
Hint
Executing RDDNEWPP in clients different from 000 schedules job RDDIMPDP_CLIENT_<###>. Job RDDIMPDP_CLIENT_<###> (which has been scheduled automatically after a local or remote client copy with transaction SCCL
or SCC9
) is not needed anymore, however. See SAP Note 2687484 – About job RDDIMPDP_CLIENT_nnn.
Note
SAP Note 3035580 – Job RDDIMPDP running as DDIC ships a new report (RDDNEWPP2) which enhances its predecessor (RDDNEWPP) with the option to explicitly specify the user chosen for the scheduled executions of the background job RDDIMPDP. In addition, see SAP Note 3217799 – Use a different user for the job RDDIMPDP in S/4HANA - SJOBREPO.
Due to the Job Repository and the profile parameter rdisp/job_repo_activate_time, for SAP S/4HANA Server systems, it is not necessary to run report RDDNEWPP in client 000, but it might take some time until the job is scheduled again.
Note
You can also import non-ABAP objects using the enhanced Change and Transport System (enhanced CTS, formerly known as CTS+). In this case, table TRBATS is used. TRBATS works like TRBAT, but TRBATS includes the SID of the non-ABAP system in its primary key. So it is possible to trigger imports in multiple systems. The AS ABAP based SAP system on which tp is called is used as communication system for the non-ABAP system.
More Information
For more information, see the online documentation for SAP S/4HANA (Product Assistance), area Enterprise Technology → ABAP Platform → Administrating the ABAP Platform → Administration Concepts and Tools → Solution Life Cycle Management → Software Logistics → Change and Transport System → Transport Tools (BC-CTS-TLS) → Transport Control Program tp → How tp Works → Communication Between tp and ABAP.