Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
nicolas_busson
Active Contributor

Preliminary note: a transport request dependency check will soon be included in SAP standard! See announcement here (in one of the last comments) :
https://ideaplace.brightidea.com/ct/ct_a_view_idea.bix?idea_id={8F263B5D-1FAB-4942-BB73-AB8404180F68...

In earlier publications I explained I was developing a transport request dependency analyzer (also known as TRS: transport request sequencer). It's a program that helps me find the correct release order of my transport requests to avoid errors during import into target systems. See:

Part  I: How-to store dependencies between transport requests

Part II: On my way to resolve transport request dependencies

I used to publish versions of this program on code exchange... but as it is now closed, you'll find the file you need to install it attached to this blog post (don't forget to remove the extension ".txt" at the end of the file: I had to add it because SCN doesn't allow to upload ".zip" files). Select the file you need depending on the import method you choose (transport request vs SAPlink), and the version of your system :

- cofile&data_TRDA_NW702_5.50.zip : contains one transport request relevant for NW702 upward

- cofile&data_TRDA_NW700_5.41.zip : contains one transport request relevant for versions older than NW702

- NUGG_TRDA_NW700_5.4.nugg : nugget file for NW702 upward

Also, if you choose to import the program via transport request, you can check that everything works fine thanks to the ABAP Unit test class that is included. All you have to do is to:

- Start tcode SE38 and execute program SAPRSEUT: this is a standard program that will update some table indexes that are necessary for TRDA to function correctly (more information available here: Note 18023 - Jobs EU_INIT, EU_REORG, EU_PUT).

- Start tcode SAUNIT_CLIENT_SETUP and make sure limit of risk level is set to HIGH.

- Now start tcode SE80, select class ZCL_TRDA_SEQUENCER, right click on test >> Unit test. This will create a few transport requests in your system (hence the risk level HIGH) and try to find the dependencies between them.

If no error is thrown, TRDA is ready to go!

Now, to use TRDA, start program ZCEX_TRDA_START : you will get the same selection screen as the one that appears via tcode SE03 / Find requests:

Default values should be OK 99% of the time. Execute to get a list of transport requests matching the criteria of the selection screen, and access TRDA functions:

Here you may select one or more lines, and start the dependency analysis by clicking on "Sequence" button. The system will check every object of the corresponding requests, and try to find referenced objects belonging to other transport requests that are still unreleased. Important to know:

  1. Only 'Z' objects are decomposed, because it would take too much time to check every SAP standard object... so in case you implemented an OSS note for example, no dependency will be found.
  2. Only unreleased transport requests are analyzed because we assume released TR were (or will be) successfully imported into target systems.

When the dependency check is complete, the system displays the computed sequence (first rows need to be released/imported first):

You can click on the "Explain" button to display a popup which gives you more information about the dependencies that were actually found. In the example above, transport request 900036 was listed as a predecessor of 900038 because the later includes object ZCEX_TRS_DEPENDENCY_LOG_T, which references structure ZCEX_TRS_DEPENDENCY_LOG... and this structure is included in TR 900036:

It may also happen that a "circular" dependency is found... if A needs B which needs A. In that case, you will see "CIRC" in the info column:

That's where the "Merge" button comes into play: you can select two or more requests, and merge them...

I guess this is a tool useful for those (like me) tired of return codes 8 because of missing objects during transport... And for more information, see the latest news here: STMS: facing errors when importing transport requests? It's your fault!

49 Comments