Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Before importing Request How could i know the Missing objects.

former_member196331
Active Contributor
0 Likes
8,527

Hi,

I need a small clarification.

I need to move one Transport Request from DEV to Quality.

I moved but it is Unable to Import into the Quality Server , Becasue Error message is Rc == 8,Actually this was created By Some body,

If i checked Carefully,

In program they declare the Structure like .


Data:begin it_table,

        include structure ztable

Data:end of it_table.


But he is forgotten to Create the Tr for this Ztable. Now how could check before importing into the server.

Any fields are tabels or Zobjects are missing. Should i depend on Those who created the Transport Request.

Need valuable suggestions.

1 ACCEPTED SOLUTION
Read only

Sandra_Rossi
Active Contributor
0 Likes
4,796

It's a topic as old as ABAP. I'm not aware of a standard tool, you need to either organize you well, or develop a tool yourself, or try existing tools:

23 REPLIES 23
Read only

Sandra_Rossi
Active Contributor
0 Likes
4,797

It's a topic as old as ABAP. I'm not aware of a standard tool, you need to either organize you well, or develop a tool yourself, or try existing tools:

Read only

0 Likes
4,796

Ok i will check it.

Read only

Clemenss
Active Contributor
0 Likes
4,796

Hi,

a very simple method, nowadays widely followed in many SAP development environments:

1 create or change anything, create a transport request when asked to do.

2 create a transport of copies (SE80, Transport organizer, right-click on any existing request, Create, Choose T Transport of copies, name it, OK)

3 Change/Edit the transport request just created.

4 Click Include Objects (7th icon from left on request toolbar).

5 Choose Object list from original request (F4) available (Request and/or Task)

6 Enter your original request/task number

7 In Properties tab: Enter Name of QA system as target

8 Release (Truck icon in status Bar)

9 Acknowledge Warning: "Not all objects in the request could be locked." Release anyway.

10 Import to QA and see what's missing and what has to be done further

Repeat steps 1 to 10 as often as you want or need modifying your original unreleased transport.

11 When your changes are approved and tested by business in QA, release original transport and bring  to production THE SAME DAY.

Going this way, any transport conflicts are practically excluded, short feedback cycles are enabled.

Best regards,

Clemens

Read only

0 Likes
4,796

So you are asking me to create  one more task and Pick particular objects from the original task. Am i correct.

Read only

0 Likes
4,796

You could also identify, release and transport the already existing transport request (if missing objects were not created in a local, no transport, package) if not possible due to some objects not yet ready for transport, consider a transport of copies request.

You could also considering importing both requests together, so at end of import, every request will display a nice green status.

Also if a table/structure was missing, you should also check for missing data element, domain, search helps, etc.

Regards,

Raymond

Read only

0 Likes
4,796

Suppose Table was created In Local. then .How could i identify.

Read only

Former Member
0 Likes
4,796

So that's the problem - I was going to say if the ztable was not present how was the code activated ?  If the code was not activated you can't release the transport.

I would suggest using a transport of copies first to see how it would react in the QA system.  If there are no errors release the actual transport and then transport that.

If there are errors since the real transport has not been released you can keep modifying the real transport until a transport of copies works without errors.  Then release the real one and transport it all the way through as needed.

Rich

Read only

0 Likes
4,796

I understood What did you Say. But I don't want to See Red color icon  RC = 8, Even if i use the method Transport copies.

Read only

Clemenss
Active Contributor
0 Likes
4,796

Exactly. Create transport of copies. Take all objects of original - objects remain locked in original transport.

That's it.

Regards Clemens.

Read only

0 Likes
4,796

One more small information. I never did it. But i read it.

What is the meaning of transport copies is

Suppose Request 1 is having

object 1

object 2

object 3.

if you want to move only object 2 By using the transport copies, We can create one more New request and we can include the object 2.

But the no of objects of Request 1 is

Object 1

object  3.

New request is having like

object 2.

Am i correct.

In my original scenario. Tr1 is having

Fields

smartform

driverprogram.

But Ztable is missing.

By using Transport copies

New tr2 is creating using Transport copies

Now Tr2 is having  objects like

Fields

smartform

driverprogram.

But still ztabel is missing.

Need small clarification please

Read only

pranay570708
Active Contributor
0 Likes
4,796

Even i have a question here, what if i missed some objects to include in TR. And i released that request to import in Quality. During transport it throws RC error.

What are the ways to copy objects from one system to another.

    1. I don't want to create a new TR for missing objects.

     2. Don't want to make released TR as modifiable to include missing objects and re-release it again.

Suggestions??

Read only

0 Likes
4,796

Here is a nice post by on the topic, with further links to two related blogs.

You will always need another transport if you get RC = 8 due to missing objects in the target, either to add the missing objects, or to remove the dependencies.

Lucky you, if you're working with ToC from the start. If you can't stand the red lights in the STMS overview, then you can import all related ToCs together again, this should make them green (or at least yellow), because first the import is done for all requests in correct sequence, and then the activation.

Thomas

Read only

0 Likes
4,796

You don't need to import all the related ToC's.....

You fix the errors in the first ToC by adding the relevant objects to the ORIGINAL transport,  and create a ToC of the original again.  Then import that.  Once the current ToC imports cleanly you then import the real transport.

The reason for this is that ToC's can only be transported to QA,  they cannot go to production,  and you then only have one transport (the original) to deal with.

Rich

Read only

0 Likes
4,796

That's the correct approach, however I was specifically referring to turning the red status of already imported ToCs in the QA queue into a green or yellow, should this be desired, as I understood from somewhere above.

Thomas

Read only

0 Likes
4,796

Ok,  I see your point,  however that seems just to be box-ticking (or in this case light-colour-turning) for box-tickings sake.

As far as I'm concerned (as I suppose you are too),  it'll be the status of the final transport that then goes into production where a red status should be avoided.

Rich

Read only

0 Likes
4,796

What about the problem of local objects? They are not in any transport request, so it can be easy to get a RC 8 in the target system. Is it possible to forbide the assignment to local packages, or is there something else to prevent these issues?

Read only

0 Likes
4,796

Absolutely. Box-ticking, I'll have to remember that term. Some customers don't care about red lights in their queues, as long as the end result is fine, and some don't want to see any of these sitting there long-term, doesn't look so nice, I guess.

Thomas

Read only

0 Likes
4,796

Hmm, maybe assigning S_DEVELOP excluding local package names like $TMP and T*, or programming own checks at release with the CTS_REQUEST_CHECK BADI ? I know you have the code ready for dependency walking and remote existence checks

Not sure what the ABAP package concept / package interfaces can offer in this respect, I have not seen much of this in actual use in customer developments, beyond sheer grouping and maybe a little hierarchy.

In the end, developer's due diligence cannot be replaced...

Thomas

Read only

0 Likes
4,796

Thanks. Using the authorizations is probably the easiest way. Unfortunately, I couldn't develop the tool further (ABAP program to simulate transports -> http://wiki.scn.sap.com/wiki/display/ABAP/ABAP+program+to+simulate+transports ), and it's still in its original alpha version. I was more interested by the concept of transport of copies, which exists everywhere (i.e. all projects/clients), and is a robust/not bugged concept 😉

Read only

Former Member
0 Likes
4,796

To find the missing objects, why don't you just do a "Simulate Release" of the task, or tasks, in the transport request?  This will tell you what objects are problematic.

If there are no problems, you will get the following message:

Release of request/task DEVK937482 simulated

We are on 740, support pack 7.

Bruce

Read only

0 Likes
4,796

But to do a "Simulate Release" of the task, first we have to release that request, right??

And if we have to release TR prior simulation, then what's the benefit.

Read only

0 Likes
4,796

Simulation is just for simulating the export (for instance there would be an error if there's an inactive object), not the import into another system (what we're talking about).

Read only

0 Likes
4,796

No, you do not have to release the transport in order to do the simulate.