cancel
Showing results for 
Search instead for 
Did you mean: 

Including Objects in Request from Other System

Former Member
0 Kudos

I've got an interesting question. This will be hard to explain but here goes: You know how you can u201CInclude Objects in Requestu201D? E.g. create a new request from an old one and copy the keys from the old one to the new one. That way when you release the new request it gets the current version of all the objects.

Well I want to do that except in different systems. For example I have request SBXK900123 in system SBX with some objects in it. I want to create a request in DEV with the same object list. So then I can release the request from DEV to QAS & PRD. I don't want to transport from SBX and I want the versions of the objects in DEV, not SBX.

I tried adding SBXK900123 to DEVu2019s import buffer without actually importing it. It gets added to the buffer but in SE09 Transport Organizer in DEV the system doesnu2019t see SBXK900123. So I canu2019t include the objects in SBXK900123 in a new request in DEV. If I actually import SBXK900123 into DEV then the Transport Organizer sees it but of course I donu2019t want to import from SBX to DEV.

Any thoughts?

Accepted Solutions (1)

Accepted Solutions (1)

romanweise
Active Contributor
0 Kudos

Hello David,

if you addet the transport request to the import queue of you dev system you should be able to access it. Transports from import queue are not displayed in the tree of SE09 but you should be able to display it when starting SE09 -> Button "Display" -> entering the name of the transport request. This is working fine in my system.

If this works you can also access the transport when adding objects from one transport request to another (the button with the cargo box and the arrow).

If this is not working you might not have added the transport correctly to the import queue.

Kind Regards

Roman

Former Member
0 Kudos

Thanks Gentlemen, I appreciate your help.

Hereu2019s some clarification. This is just a one-time thing, however copy and paste will be difficult because there might be hundreds of tables with thousands of entries. Since they are primarily config entries I would have to drill into each view/table to display all the keys. The ABAP approach might have promise but since I am not an ABAPu2019er, and getting ABAP help is difficult at my company, Iu2019m still looking.

Roman, yes that is exactly what I am doing however the request isnu2019t available from the display button in SE09. Are you sure you didnu2019t also import the request? Thatu2019s the only way I can make it available; Iu2019ve tried Add to buffer and forwarding to system client. It is in the import queue but in SE09 I still get the message:

Request/task SBXK900035 does not exist

Message no. TR806

Diagnosis

Request/task SBXK900035 cannot be edited because it does not exist in this SAP system.

System Response

The function is terminated.

Procedure

Repeat the function with an existing request or task.

If you didnu2019t import the request, how did you add it to the buffer to make it available in SE09? Well, thank you all.

David

Former Member
0 Kudos

Hi David,

The ABAP approach might have promise but since I am not an ABAPu2019er, and getting ABAP help is difficult at my company, Iu2019m still looking.

That's why I listed RFC modules, i.e. function modules that can be executed remotely. Thus you have the option of using for example the SAP Java Connector (JCo) or Perl with the nice modules from [Piers Harding|http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/u/8630] [original link is broken] [original link is broken];, see e.g. [here|http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/6519] [original link is broken] [original link is broken] [original link is broken];.

Cheers, harald

p.s.: If nobody comes up with a solution I might take a stab at creating a small program for this. However, don't have the time right now and my list of RFC modules seems incomplete, because you also need to add table entries (which doesn't seem to be handled by transport create modules I've checked).

Former Member
0 Kudos

Well, thanks for trying guys. I'll see if I can get a developer to write something but I haven't been able to find a more standard way.

Former Member
0 Kudos

Hi David,

you don't need a developer, you can create a piece list based on your existing transport of SBXK900035:

1) tcode SE01 -> switch to piece list tabe -> create, note peice list is repository object. you'd record your changes into another workbench trapsort.

2) open the created piece list -> click the button "include objects... (ctrl+F11), select the request SBXK900035, and includes all objects of request to the peice list.

3) release the transport you created in 1) and then transport it into your targe system DEV

4) you can create new transport in DEV and then include the objects from the piece list into your new transport.

Cheers,

Denny

Former Member
0 Kudos

Genius!!! It's such an elegant solution. I wish I had figured it out; I was looking at piece lists but just couldn't quite get there. Problem solved and points awarded. Thank you.

David

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi David,

So I guess you're asking the question, because you want to do that regularly and have larger object lists in the transports?! Otherwise the old-fashioned copy&paste approach might be an option (especially if you do that on request level instead of selecting object lists).

If you want to automate that and nobody comes up with a good way you could try writing a small program utilizing the following RFC function modules:

<ol>

<li>TR_READ_COMM or TR_OBJECTS_OF_REQ_AN_TASKS_RFC for reading the transport details (I like the latter, because you can instruct SAP to automatically condense the contents)</li>

<li>Create a new transport request via function TR_EXT_CREATE_REQUEST</li>

<li>Add the objects to your transport request via TR_EXT_INSERT_IN_REQUEST</li>

</ol>

Haven't tested it (apart from reading transports), but it should be pretty straightforward to get this to work. But maybe somebody else points out some standard functionality that does exactly what you want...

Cheers, harald