What is it?
TRDA stands for “Transport Requests Dependencies Analyzer”. It’s a simple tool that has been developed on SAP Netweaver trial edition to help finding the correct release order of transport requests. The engine is based on SAP standard “Where-Used-List” functionality, but the other way around: instead of trying to find where an object is being used, TRDA will scan every elements included in your transport requests, check which objects they are referencing, and make sure the latter are included in transport requests to be released beforehand. Hence the ultimate goal of this program is to avoid errors during import from a development system to a quality system. You can also find relevant information in earlier blog posts:
Can I use TRDA to avoid RC8 into my production system?
In a perfect world: YES! In this world you would run TRDA in your development system before releasing every transport request, then release them in the sequence computed by TRDA… and follow exactly the same sequence when importing your requests to production.
Unfortunately: for many reasons you cannot always import your transport requests in the same order into your production system as into your quality system. But in this case, you should not try to run TRDA in your development system to determine the right sequence for your production system: run TRDA into your quality system instead, you’ll get better results because only the last version of your objects/programs/elements/you name it, will be analyzed.
Where can I download the latest versions?
Everything about this program used to be stored on SAP Code Exchange… but now that this website has been shutdown, I decided to store the installation files on my own website. Check TRDA – Release notes for direct links.
What is the difference between the NW700 and NW702 versions?
I started to develop the first versions of TRDA on SAP Netweaver 7.02 Developer edition… but received a few emails from people that couldn’t install it on their own system because of compatibility issues with older versions. So I decided to backport everything to SAP NetWeaver 7.0 Trial version. To achieve this, I had to copy two standard classes from 702, adapt a few statements (for example every “&&” character was replaced by “CONCATENATE”), etc. So if your system is recent enough, take the NW702 version. Otherwise, you can go for the NW700.
What is the difference between the TR and the NUGG versions?
The only difference between TRDA released via transport request and TRDA released via SAPlink nugget, is that there are no abap unit tests included in the SAPlink nugget in order to simplify the installation procedure. Hence, the last release will always be provided via transport request first, and then I’ll create a nugget file out of it once the new version is considered stable.
How can I install it?
First of all, as TRDA is built on top of SAP “where-used-list” functionality, following OSS notes should be read carefully because if the navigation index is not up to date some dependencies won’t be found:
Also following OSS notes should be implemented in your system otherwise some objects (like table types for example) won’t be analyzed correctly:
If you choose to import TRDA via SAPlink, follow this guide: TRDA – How to install it via SAPlink.
If you choose to import TRDA via transport request: download the corresponding zip file on your computer. Unzip it: you’ll see two different files inside:
- One is beginning with letter K: move it to the usr/trans/cofiles directory of your SAP system.
- One is beginning with letter R: move it to the usr/trans/data directory of your SAP system.
Then login to the corresponding SAP system and start tcode STMS: display your transport request queue and select menu Extra >> Other requests >> Add. Select the transport request number that you just moved to your cofiles & data directories, and validate. Click “Add” if a confirmation popup is displayed. Then import the request like you would do for any other transport request: click the button with a little bus on it.
How do I make sure that it works fine?
If you installed TRDA via SAPlink, you’ll have to test it with a few transport requests of your own, providing that you know what resulting sequence is expected. But if you installed TRDA via transport request, you can simply execute an abap unit test that will create a few transport requests for you, and try to find every dependencies between them. But first:
- Start tcode SAUNIT_CLIENT_SETUP and make sure your can execute abap unit test with a risk level set to dangerous.
- Then execute program SAPRSEUT (see this document to understand why).
- Then start tcode SE03 and “change object directory entries” for all objects belonging to package ZCEX_TRDA_AU_OBJ, in order to set your current system ID as original system (instead of “NSP”). This is necessary because the objects belonging to this package will be used to create “sample” transport requests in your system… and this won’t be possible if your system is not considered the original one.
- Now start tcode SE80 and right click on class ZCL_TRDA_SEQUENCER: choose Test >> Unit test.
Once the abap unit test is started a few transport requests will be created in your system (feel free to delete them afterwards via tcode SE01), and TRDA will try to find many dependencies between them. All dependencies that TRDA should find are stored in a customizing view cluster (ZTRDA_TFW_CUST_VC). If everything is ok, a success message will be displayed in the bottom left corner of your screen. In case some errors are displayed, send me a message and I’ll try to help.
I see many options when starting ZCEX_TRDA_START_MAIN: what are they for?
Namespace is used to limit the objects analyzed by TRDA to those belonging to the corresponding namespace(s) only.
Include released TR is used to analyze both released and non released transport requests. Indeed you need to understand how TRDA is finding transport requests dependencies to understand what this parameter is for:
- Step 1: TRDA is running through all objects belonging to one request (ex.: TRXXX2)
- Step 2: for each object found in step 1 (ex.: table type TT_LINE1) it will try to determine all referenced objects
- Step 3: for each referenced objects found in step 2 (ex.: structure LINE1), it will look for transport requests including those referenced objects
- Step 4: go back to step 1 using transport request(s) found in step 3 (ex.: TRXXX1).
So if Include released TR is not set, and TRXXX1 is released, TRDA will not go back to step 1 after step 4. It will simply ignore TRXXX1 and continue analyzing objects from non-released transport requests only (which has a significant impact on performance as it is more likely that very few requests will be decomposed).
Max number of TR is used to limit the number of times TRDA goes back to step 1. If this number is exceeded, a warning will be displayed.
Date min is relevant only if Include released TR is set to “True”. in this case, released transport requests older than Date min will be ignored.
The 3 last columns of the computed sequence are empty: why?
Those columns are meant to give the status of the corresponding transport request in the TMS queue. But for icons to be displayed in TRDA results, each column needs to be mapped to a system ID in table ZCEX_TRDA_TRGSYS. See TRDA – Release notes of version 4.4 for more details.
What checkpoint group can I use to debug the program?
Start tcode SAAB and select checkpoint group ZCEX_TRDA: a few breakpoints and log-points have been included in the most important spots.