Skip to Content
Author's profile photo Nicolas Busson

How-to check dependencies between transport requests

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:

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 TRDA functions:

/wp-content/uploads/2012/09/2012_09_27_120819_141244.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

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:

/wp-content/uploads/2012/09/2012_10_01_104842_142123.jpg

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!

Assigned Tags

      49 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Thomas Zloch
      Thomas Zloch

      Thank you for posting your blog series on this topic, it looks very interesting, I will have a closer look when time allows.

       

      The name "sequencer" did lead me in the wrong direction though, I initially thought you built some sort of "overtake check", making sure that newer versions of objects are not imported before older versions, whereas your check is about dependencies to other bespoke objects before release.

       

      Thomas

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hello Thomas,

      Thanks for your feedback. I agree that the name "sequencer" could be misleading... so I tried to find another title for this blog: "transport request dependency analyzer". I hope it will give a better feeling of what this tool is about.

      Cheers,

      Nicolas.

      Author's profile photo Sayed Shehabaz
      Sayed Shehabaz

      i cannot file anywhere can u please shasre the latest release.

      Author's profile photo Former Member
      Former Member

      One important remark:

      Import the nugg file into package ZCEX_TRDA.

      Otherwise, later import of the separate CR (version 4.2) may lead to serious errors.

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hi Shai,

       

      Thanks for mentioning this point. Indeed I decided not to use SAPLINK for new versions of the transport request denpendencies analyzer, as I was facing some issues with the tool... Sorry about that. So in the near future I plan to remove SAPLINK nuggets from the available releases to avoid any inconvenience.

       

      Regards,

      Nicolas.

      Author's profile photo Former Member
      Former Member

      Hi Nicolas,

      Just out of curiosity, what were the SAPLink issues you had to face with?

       

      P.S.

      I would use this opportunity to thank you for sharing this interesting and useful tool.

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      You're welcome!

       

      Issues faced with SAPLink:

      1) No stable released with "Package" plugin... hence I had to change the signature of a bunch of methods manually to transport ZCEX_TRDA development class (but still I faced some issues as most objects were created as LOCAL objects).

      2) No plugin for Breakpoint group.

      3) No plugin for user parameters.

      4) Impossible to import objects from a dedicated namespace (namely /CEX/) into a customer system

      Etc.

       

      Hence I realized that using transport cofile&data files would be the easiest way to go...

      Cheers,

      Nicolas.

      Author's profile photo Former Member
      Former Member

      Hi,

      I've been playing a little with your tool.

      I saw that when the dependent object has no CR in versions (method ZCL_TRDA_SEQUENCER->GET_TRS_REQUEST_ID), you use the author instead.

      This might be little confusing.

      What is the purpose of it?

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hi Shai,

       

      That's to handle the case where you create one object, but delete it manually from the corresponding TR afterwards. In this case I think no TR will be shown in versions, but still this object might show up in the dependency log and I didn't find it user friendly to have an empty TR number... at least the user who created this object will give you a clue who you need to ask for clarifications.

       

      Also, it's useful to address dependencies with SAP standard objects for which you have no TR in versions.

       

      Anyway, if you limit the dependency analysis to Modifable requests (which is the primary purpose of the tool), and you do not mess up with your TR, I believe you should always see identification numbers, no authors.

      Regards,

      Author's profile photo Former Member
      Former Member

      Hi Nicolas,

       

      So in my current organization, the majority of transport issues are due to improper sequencing across systems.

      For instance:

      1) transport A goes from DEV to QA

      2) transport B is created and is dependent on transport A

      3) transport B goes from DEV to QA

      4) transport B goes to PROD before transport A and fails

       

      To deal with this, I can see a nice expansion to the tool wherein existence-checks for each related transport are made to each system in the landscape (via RFC, select-options on the selscr for destinations) and reported back to the ALV with a column per system, nice red X and green checkmark icons, something like that.

       

      Do you think this is a feasible addition?

       

      One issue that comes to mind immediately is the one that we just dealt with where including released transports for a particular transport resulted in page file overflows.

       

      To mitigate this, perhaps an option can be included to load objects/sub-objects for related released transports that aren't in PROD (i.e. transports that can pose the risk of import failure). As well, perhaps a ceiling on the number of transports, a check on the page file utilization (dynamic but getting fancy), or a date range for release dates (less preferred since you could have old transports lingering out there theoretically).

       

      Let me know what you think.

       

      Thanks,

      Chris

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hi Chris,

       

      Regarding your first comment, for sure that's something feasible... but I won't develop it myself because I believe there should be no difference in the TR sequence between QA and PROD. If you change the sequence it should be at your own risk: I'm convinced that no tool will be bullet proof enough to assure that everything will work as intended in the target system 100% of the time.

       

      That's the beauty of code exchange: you can download a program that suits 80% of your needs, and add the missing 20% yourself

       

      And regarding your second point (memory shortage), did you try to start an analysis on all transport requests after the OSS note I sent you was implemented? Because if you're still facing the same issue, then I can add a check to limit the number of TR that are being analyzed... but adding an option to include objects that aren't in prod could be error prone. Imagine that you create a table ZMYTAB and transport it to prod. Then you add one new field to this table, and this field is used by a function module included in the request being analyzed: although ZMYTAB is already in PROD, you need to transport its modification beforehand...

       

      Cheers,

      Author's profile photo Former Member
      Former Member

      Thanks, I'm going to look into this soon.

       

      We had a series of OSS notes to apply after a kernel upgrade so that I could use SU3 again to set the parameter without dumping. I've set the parameter and re-tested, the page file overflows are still happening.

       

      The bulk of the memory is tied up downstream of FM REPOSITORY_ENVIRONMENT_ALL. I've taken a look at the EXPORT memory is never re-imported in

      the life of the session so I'm currently experimenting with freeing each new memory ID after every FM call. I'll let you know how it goes.

       

      Chris

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hi Chris,

       

      Thanks for the feedback.

      And as a matter of fact, I think it is a good idea to be able to limit the number of transport requests to analyze. So I've just published version 4.3 of the program which will check user parameter ZCEX_TRDA_MAX_TR. If this parameter is not set, the program will stop processing after 100 TR analyzed. You can set this parameter to increase or decrease this limitation...

       

      And be aware that in case max number is reached, transport order release will be deactivated as we cannot be sure that all dependencies were found...

      Regards,

      Author's profile photo Former Member
      Former Member

      Hi Chris,

      For the matter of fact, these are some of the problems we also face with.

      Another point: As you have mentioned in later message, when analyzing all the CR (includes modifiable ones), CR which have been imported to the PROD system already should be out of scope.

       

      I was planning to enhance this functionality in our system next week: Adding an additional column of current/last SAP system to the report and also excluding PROD CR from the analysis (according to selection screen parameter).

      As we've already implemented a similar functionality in other tool, it shouldn't be too complicated.

      I would share my code changes as soon as I finish them.

       

      Regards,

      Shai

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hi Chris and Shai,

       

      I'm glad you want to help. Let's join TRDA project then, and continue this discussion on SAP code exchange workspace. If you definitely think this add-on would be useful, I'll help you implement it in a future release.

      Cheers,

      Author's profile photo Mariusz Mazurczak
      Mariusz Mazurczak

      Hi Everybody,

      Does anybody tried to use it with an ECC 7.0 ? Is any chance to do it?

      Regards

      Mariusz

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hi Mariusz,

       

      Indeed you'll have to make some adjustments to make it work on SAP Netweaver < 702.

      What you can do is the following: join the project and open a discussion thread with the issues you are facing. I'll do my best to help you fix them.

      Regards,

      Nicolas.

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hi Mariusz,

       

      Thanks for joining the project and opening a discussion. I've been working on it, but as you're not answering my messages, make sure you activated email notifications if you still want to proceed further =)

       

      Cheers,

      Nicolas.

      Author's profile photo Mike Kerrigan
      Mike Kerrigan

      I've many bespoke tools of this type over the years but yours looks to be one of the better ones.

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hi Mike,

      Thank you very much for the nice feedback. If you had the opportunity to install and test the transport request dependencies analyzer, I'd be very interested to know if you ever faced situations where this tool didn't compute the right sequence. If so, do not hesitate to open a discussion thread on code exchange.

      Also, be aware that I will release a version backported to older sap_basis level within a couple of days.

       

      Cheers,

      Nicolas.

      Author's profile photo Former Member
      Former Member

      Hi Nicolas - Thanks for sharing this code. I developed a similar tool for use on one of my previous projects which turned to be very useful.

       

      However, there is another way to manage SAP transports. If interested, see this article in SAP Experts, which I wrote some time ago:

       

      http://sapexperts.wispubs.com/IT/Articles/no-charm-you-can-still-easily-track-transports?id=EC8DC475632C46C3A7DD23AB06D1DE58

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hi Narendra,

       

      Sorry but I don't have access to the article you wrote: seems like I need to pay some fee... which is exactly what I didn't want to do when publishing my code on SAP Code Exchange. On the contrary, I want any people interested in this program to be able to download it, play with it, suggest improvements, etc.

      Author's profile photo Former Member
      Former Member

      Nice Tips.  Thanks!

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hi Steve,

       

      Thanks for the kind words.

      Cheers,

      Nick.

      Author's profile photo Former Member
      Former Member

      Hi Nicolas!!

       

      I've read your article and sounds very nice your tool, however, I can't download it.

      I'm facing A LOOOOOOOT of problems with the transports.

       

      Could you please tel me another option to download you tool?

       

      best regards!!

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hello Adrian,

      Sorry about that but indeed SAP Code Exchange is not very intuitive... And maybe I need to approve your membership request before you can download the files -- what I just did.

       

      So please try again to connect and send me a private message to tell me how it goes.

      Cheers

      Nicolas.

      Author's profile photo Former Member
      Former Member

      Hi Nicolas,

       

      Really a great work nicolas, i am willing to try it but when i click on the link for program it takes me to the Code exchange.but from then i am not able to proceed.i am able to see documents and release notes but could not make out more.Could you please help me out with steps to proceed from begining.Sorry for troubling.

       

      Your reply would be so helpful.

      Thanks,

      Dinesh.

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hello Dinesh,

      No problem. I'll be glad to help. I sent you a direct message on code Exchange.

      Cheers,

      Nicolas

      Author's profile photo Vishal Kesar
      Vishal Kesar

      Hi Nicolas,

       

      Your program sounds really helpful. However, the link doesn't work for me either. Can you please send me the link too..

       

      Thanks

      Vishal    

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hi Vishal,

      I'm sorry about that but indeed SAP decided to shut down SAP Code Exchange as of the 31th of August 2013... and I didn't have time to transfer everything on another platform like Github for example. So meanwhile I added the direct download links to my own website:

      http://www.nb-conseil.com/post/2013/05/02/SAP-transport-request-dependencies-analyzer-backported-to-Netweaver-7.0

       

      But be aware that I'm in the process of publishing a new version where you'll be able to filter transport requests by date, switch between a list / tree ALV layout, etc. Stay tuned!

       

      Cheers,

      Nicolas.

      Author's profile photo Former Member
      Former Member

      Dear Nicolas,

       

      Very good Article

       

      Thanks for sharing !!!

      Author's profile photo Former Member
      Former Member

      Hi Nicolas,

       

      This is so good to see you shared the transport sequencer and seriously it is needed to be implemented so as to move the transport requests appropriately without errors as you said it is not possible to find the dependencies of the objects to be transported.

       

      Thanks,

      Ankita

      Author's profile photo Former Member
      Former Member

      Hi Nicolas

          When I run ZSAPLINK to upload the NUGG file, I got the error messages said:"missing plugins checking point, user parameters, and MSAG"

      Author's profile photo Frinee Paredes
      Frinee Paredes

      Hello Nicolas,

       

      I've notice this post is from 2012. I've search for the standard solution SAP said would provide but I can't find anything. Do you know if is it already available?

       

      Thanks a lot!! Great post by the way!

      Frineé

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hello Frinée,

      SAP delivered the following functionality:

      Import Queue Web UI - Performing Import Checks - CTS Plug-In - SAP Library

       

      I think you need to install a component called "CTS-Plugin" into your Solution Manager to make it work: but as this is not a system I'm familiar with, I must admit I never gave it a try. Also: I've been using TRDA for some years now and it's giving very good results, so I can't remember last time I faced a CR8 when importing something to QA 🙂

       

      Cheers,

      Nick

      Author's profile photo Former Member
      Former Member

      Maybe it's a good chance to edit your "Preliminary note" in the original post?

      Author's profile photo Former Member
      Former Member

      Hi Nicolas, I have been facing some issues with the transport sequencing recently due to a huge project where same objects are being modified by multiple developers and thus creating a mess in production. I was searching for transport sequencer and came across your post. Reading all good feedback makes me very hopeful that this tool can help me. However I face issues downloading it. I can not get the data and cofiles for the attachment. Please help me get the files. Thanks and Best Regards, Priti

      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hi Priti,

      In fact it is not possible to attach zip files to SCN blog posts. So I renamed my files xxx.zip.txt. Also: when you upload files on SCN, the system will automatically compress it... and we end up with something like xxx.zip.txt.zip. So here is what you need to do:

      1) download xxx.zip.txt.zip on your laptop

      2) extract the file somewhere.

      3) rename the extracted file xxx.zip.txt to xxx.zip

      => if you now open xxx.zip you'll get what you're looking for.

      Best regards,

      Nicolas.

      Author's profile photo Former Member
      Former Member

      Hi Nicolas,

      Thanks. I was doing the same thing earlier. But found out that my laptop had issues with my rights.

      So i downloaded the file on another laptop with a user of admin rights and i was able to change the extension.

      Now i will test the transport sequencer, I am very hopeful. I will let you know if that worked for me.

      many thanks,

      Priti

      Author's profile photo Former Member
      Former Member

      Thanks for your useful document sharing.

       

      Regards.

      Author's profile photo Joseph Sciacca
      Joseph Sciacca

      Nicolas, I am unable to access your link for the file download.  Your website url does not resolve.  Can you provide me with another link?
      Thanks.

      Author's profile photo Former Member
      Former Member

      Hi Nicolas,
      I am unable to access your link for the file download.
      Can you please provide me with another link?
      Thanks.

      Author's profile photo Shruthi Tanka
      Shruthi Tanka

      Hi Nicolas,

      Can you please provide the link for the files.

      Thanks,
      Shruthi

      Author's profile photo Former Member
      Former Member

      Hi  Guys,
      Anybody can share with me the files using my personal email lblbab17@gmail.com?
      Nicolas seems very busy with other things.
      Thanks a lot in advance
      Lahcen 

      Author's profile photo Former Member
      Former Member

      Great Articles and excellent works.

      However the link missed and the another link on the comment seems also failed.

      It will be great appreciated if source code recovered.(github or anything..else will be great)

      Author's profile photo David Tsutsui
      David Tsutsui

      Dear Nicolas,

       

      Thank you for sharing your solution with these set of blogs.

      However I'm missing the attachments in it. Would it be possible to share the codes once again?

       

      Thank you in advanced.

      Author's profile photo Nicolas Busson
      Nicolas Busson

      Hello David and everybody,

      I'm sorry but there seems to be something broken on SCN since the last migration: I don't receive any notification on comments on my blog posts, and I can't even edit them... So all I can do is adding a new comment to let you know that SAP has finally published an oss note to provide the same kind of program as standard. See: https://launchpad.support.sap.com/#/notes/2475591

      Hope that helps.

      NIcolas.

      Author's profile photo Sylvain BRAS
      Sylvain BRAS

      Hello,

      Is it possible to have your program as well?

      kind regards

      Author's profile photo Nicolas Busson
      Nicolas Busson

      Hello Sylvain,

      You'll find everything you need if you install the following OSS note: https://launchpad.support.sap.com/#/notes/2475591

      Best regards