cancel
Showing results for 
Search instead for 
Did you mean: 

What is the criteria for the ordering of transports?

former_member84834
Active Participant
0 Kudos

What criteria does the SAP system use to determine the ordering for applying transports?

For example: Assume I have three transports (A, B, & C) that make different modifications to the same report. Further assume the transports are create in alphabetic order. If I highlight all three transport and import them together how will they be applied? Is there a mechanism in SAP to sort out the order in which they should be applied to ensure that transport A is applied, then B and finally C?

Now let's expand that to be 1,523 transports. Assume I highlight 1523 transports and import them together -What criteria will SAP use to order them?

Accepted Solutions (0)

Answers (4)

Answers (4)

former_member84834
Active Participant
0 Kudos

Yes Matt, my typing skills are sorely lacking and this is a comlicated issue so my attempts at describing the proper scenarios are confusing. Let me attempt to clarify.

The transports are released in alphabetic order. The order in which they are applied using the MASS TRANSPORT is B>C>A

Again, there is another typo in my pervious note - what I'm seeing is that Object1 (not Object2) is an older version. I see the version of Object1 that is associated with transport A as the active object. I thought I would see that the version associated with tranport B would be the active version for Object1. I thought the transports would be applied in the order they were released. A>B>C, but they were not.

Hi Timothy,

Your example is not quite clear to me yet.

I think the out-of-sequence ordering of transport is affected by the objects within each transport. Transport A has one object (Object1) - Transport B has two objects (Object1 and Object2) and a third Transport C contains Object2 and was released after transport B and C.

You say Transport C was release after transport B and C. I think you have a typo here. What is the order that all of the transports were released?

What I'm seeing is that Object2 is applied out-of-sequence.

Again, I'm not clear, here. What is the sequence that they were imported and what version of Object2 are you referring to?

Best Regards,

Matt

Former Member
0 Kudos

Hi Timothy,

From what you are describing, that is what I would expect, too. Understanding exactly what has happened would probably take more analysis than could be provided in a Forum. That is, I could probably figure it out and tell you what happened if I were able to examine your system, logs, timestamps, settings, etc., but that is much too complex for just a Forum.

Best Regards,

Matt

former_member84834
Active Participant
0 Kudos

Thank you for the feedback it substantiates my thoughts before I imported 1500+ transports. I thought they would be applied based upon the time the transport was released - Unfortunately, for me this is not always the case.

As an example:

I have had seen issues where two transports modified the same program, were released 6 months apart, and yet the older version of a program is the current version. The transport that has a more recent release date is applied prior to the elder transport.

As a caveat to this issue let me say that the transport that was created first (Transport A) and Transport B do not contain the same number of objects, but both contain a version of a modified program (Object2).

I think the out-of-sequence ordering of transport is affected by the objects within each transport. Transport A has one object (Object1) - Transport B has two objects (Object1 and Object2) and a third Transport C contains Object2 and was released after transport B and C.

How do you think the transports will be applied?

TransportA TransportB TransportC

-


-


-


Object1

Object1

Object 2

Object2

-


-


-


What I'm seeing is that Object2 is applied out-of-sequence.

Former Member
0 Kudos

Hi Timothy,

Your example is not quite clear to me yet.

>I think the out-of-sequence ordering of transport is affected by the objects within each transport. Transport A has one object (Object1) - Transport B has two objects (Object1 and Object2) and a third Transport C contains Object2 and was released after transport B and C.

You say Transport C was release after transport B and C. I think you have a typo here. What is the order that all of the transports were released?

>What I'm seeing is that Object2 is applied out-of-sequence.

Again, I'm not clear, here. What is the sequence that they were imported and what version of Object2 are you referring to?

Best Regards,

Matt

Former Member
0 Kudos

Hi Tim,

It all depends on how a developer corrects or fix some issue with a program. If one of the request just patches one of the issue in a program and the next one which again give some more correction to it. Developer always gives the right sequence in which a transport should go in. In some of the cases the last created transport request may be having some data which may be missing in first and that one may be needed to be applied first so that the first created request can fix the issue completely. So always the sequence of data is given by the person who releases them and he is well aware of the sequence in which the issues will be fixed or enhancements can work.

Thanks & Regards

vivek

JPReyes
Active Contributor
0 Kudos

This is not about SAP criteria but development criteria... EXAMPLE: if you modify and object and create transport A and then modify the object further and create transport B... and you implement them is the incorrect order on the target system (meaning B and the A) basically you could be creating inconsistencies as B was an extention of A, by aplying B and then A youre overwriting code with the incorrect, incomplete data.

Hope that was clear....

Now if you don't know what those 1500 request are.. then you have an issue.

regards

Juan

Former Member
0 Kudos

In a mass import, the transports will be imported in the order that they were released into the queue.

The only way Juan's example could occur is if you import the transports individually.

>EXAMPLE: if you modify and object and create transport A and then modify the object further and create transport B

The queue would be correct since the only way to create transport B with the same object as transport A is if transport A was released (thus releasing the lock on the object). If these are imported together, the order will be A -> B as that is the order that they were released into the queue.

>and you implement them is the incorrect order on the target system (meaning B and the A)

The only way to do this would to manually transport B, then A, sequentially. Like I said above, if you highlight them together and transport them in parallel, the underlying sequential order would be A -> B.

This is an intentional feature of TMS. In fact, there are times you want to revert to a prior version of an object (bug in production, for example).

Best Regards,

Matt

JPReyes
Active Contributor
0 Kudos

What if you had a messy developer (I know quite a few) and release B before A...

Former Member
0 Kudos

Hi Juan,

>What if you had a messy developer (I know quite a few) and release B before A.

Please explain to me how this would be possible? A transport creates a lock on an object that is not released until the transport is released. So, to have the same object in transports A and B, A must be released before B.

Best Regards,

Matt

Former Member
0 Kudos

I agree with Juan, But the best solution you have at this point of time is MASS TRANSPORT.

Regards

Basis Dude

JPReyes
Active Contributor
0 Kudos

@Matt... That clear a few of my own doubts... Thanks.

If thats correct then a mass import will be the way to go.

regards

Juan

Matt_Fraser
Active Contributor
0 Kudos

The "messy developer" scenario is still possible, however. It's true that the system will generally prevent you from including (locking) the same object in two open transports simultaneously, but it could be that transport A has a function module or include (we'll call it funcA) that progB depends on. However, for reasons known only to the developer, instead of putting both funcA and progB into the same transport, he decides to create a new, separate transport for progB. Then, later, he releases transport B without error, since funcA exists in the DEV system, and then later realizes oh! he needs to release transport A too, except he does that second. He fails to tell his friendly basis administrator about this dependency, and so now when the basis admin imports the transports, whether as mass transport or individually in the order released, transport B goes first. And, it has an error on import, because the required include funcA doesn't yet exist in the target system.

The way to solve this scenario is to educate your developers, and hopefully have them put all their related work into a single transport if possible. I stress "related" here, though.

--Matt F

Former Member
0 Kudos

Hi Matt,

What is important, even in your scenario, is that the system is still enforcing a release consistency. As you stated, the system errors out during import since a required object is not yet in the target system. It does not produce an inconsistent system with improper versions.

Best Regards,

Matt

Matt_Fraser
Active Contributor
0 Kudos

Very true. It will be immediately obvious to the Basis admin (basis dude?) that something is wrong, and a very cursory glance at the logs will reveal the problem. Further investigation will then identify the missing transport, which ultimately leads to a lecture to said developer. Also, now that we know the proper transport order, we can import (singly) the prerequisite transport and then the failed transport and all will be well. Also, once this is done in QAS, they will show up in the QA Worklist and the PRD import queue in the correct order, which is a nice feature in the later releases that we didn't have in the early days.