Skip to Content

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!

To report this post you need to login first.

44 Comments

You must be Logged on to comment or reply to a post.

  1. 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

    (0) 
    1. Nicolas Busson 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.

      (0) 
  2. Shai Sinai

    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.

    (0) 
    1. Nicolas Busson 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.

      (0) 
      1. Shai Sinai

        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.

        (0) 
        1. Nicolas Busson 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.

          (0) 
  3. Shai Sinai

    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?

    (0) 
    1. Nicolas Busson 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,

      (0) 
  4. Chris Brinkworth

    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

    (0) 
    1. Nicolas Busson 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,

      (0) 
      1. Chris Brinkworth

        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

        (0) 
        1. Nicolas Busson 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,

          (0) 
    2. Shai Sinai

      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

      (0) 
      1. Nicolas Busson 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,

        (0) 
    1. Nicolas Busson 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.

      (0) 
    2. Nicolas Busson 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.

      (0) 
    1. Nicolas Busson 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.

      (0) 
    1. Nicolas Busson 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.

      (0) 
      1. Adrian Samper

        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!!

        (0) 
        1. Nicolas Busson 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.

          (0) 
  5. Dinesh Kumar B

    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.

    (0) 
  6. 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    

    (0) 
    1. Nicolas Busson 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.

      (0) 
  7. Ankita Chhabra

    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

    (0) 
  8. David Sun

    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”

    (0) 
  9. 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é

    (0) 
    1. Nicolas Busson 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

      (0) 
  10. Priti Trivedi

    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

    (0) 
    1. Nicolas Busson 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.

      (0) 
      1. Priti Trivedi

        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

        (0) 
  11. Hirofumi Iwamoto

    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)

    (0) 

Leave a Reply