Thursday 11 October 2012

dependencies between transport requests


This program is now available on code exchange: https://cw.sdn.sap.com/cw/groups/transport-request-sequencer

Download the nugget, import it into your system via ZSAPLINK, activate everything and start program ZCEX_TRDA_START (I didn't use code exchange dedicated namespace /CEX/, because it made things way too complicated to import into a customer system, see my comments at the end of this wiki page:http://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=153780645).

You will get the same selection screen as the one that appears via tcode SE03 / Find requests:
Image1.jpg
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 TRS functions:

2012-09-27_120819.jpg
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):
Image3.jpg
The first column ("Info") gives you the number of "first level" dependencies that were found, meaning if on one hand A needs B and on the other hand B needs C and D, you will get:
A - 1 (not 3!)
B - 2

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:
Image5.jpg

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:
Image4.jpg
That's where the "Merge" button comes into play: you can select two or more requests, and merge them...

That's it.
I guess this is a tool useful for those (like me) tired of return codes 8 because of missing objects during transport... so do not hesitate to participate to the project in the code exchange section. As far as I'm concerned, it is giving good results :-)
---------------------------------------
Added on the 09.28.2012:
---------------------------------------
As of version 2.0 of the nugget, you can now benefit from an ALV Tree view instead of List view, which makes it even more convenient to analyze the transport request sequence that was found, as every dependent TR is displayed as child node :
2012-10-01_104842.jpg

No comments:

Post a Comment