Fixing error with ToC in Retrofit Auto-Import for ABAP changes
-Updated on 01 Nov 2013 to include a report to create retrofit data.
I had problems during Retrofit regarding the assignment of Transport of copies in the first week of ChaRM 7.1 SP8 Golive last month. I saw people with the same error in the Discussions Forum, so here I show how we fixed this error and my understanding about how the functionality works. As a developer, I like to go deep into how things work. It’s a good to way to learn. I don’t want to spend too much time with similar errors, so it’s always good to have an idea of what is behind the scenes. Sometimes the error messages are not clear enough, they do not show you immediately the reason for the error. In this case, the message can confuse the user and unless he/she knows the complete process, it may be difficult to start searching. The reason for the error is simple and easy to fix.
The symptom is that: when you decide to retrofit the changes in ChaRM 7.1, you receive an error message “No transports of copies assigned to request for retrofit”.
For more detailed information about Enhanced Retroft and the different types (Auto-import, SCWB ad BC Sets) please refer to document http://scn.sap.com/docs/DOC-41654 and to blog http://scn.sap.com/people/hannes.kerber/blog/2013/07/06/retrofit-how-to-perform-retrofit-from-an-end-user-perspective. If all steps (ALL) are followed by you and/or your Basis team, you probably won’t have any error.
I will focus on the specific error related to Transport of Copies during Automatic Import.
I assume you implemented SAP Note Note 1468044 – Retrofit extensions – for managed systems in your managed systems.
When a transport request is released and the objects can be auto-imported, a transport of copies (ToC) is created and released (exported). This is done remotely in the development system of the maintenance landscape by function module TMW_CREATE_TRANSPORT_OF_COPIES. This function module must exist in your managed systems.
In order to create and export the ToC, it’s necessary that the target of the transport of copies is known by the development system where it’s being created, which means that if you have dual landscape and your development systems are in different domains, you need a link between the domains. If not, you will see that the ToCs are created in the development system of the maintenance landscape, but not released. Function module TMW_CREATE_TRANSPORT_OF_COPIES will be able to create the ToC, but the export part will fail. When this function module fails during the release of the transport request, you will see a warning in the application log for “Release Transport Request”:
“Internal error 8 occurred creating the retrofit data in TMW_CREATE_TRANSPORT_OF_COPIES”.
This is the first symptom that something was wrong. Or the function moduled failed, or it was not found in your managed system. Below you can see the application log in the Change UI:
If this creation and export succeed, an entry is created in table /tmwflow/tocasng. This ToC will be used by the Auto-Import functionality and will be imported into the Retrofit system (the post-processing system of your logical component).
If you have the same error and/or warning, check your development system in the maintenance landcape. If you find the ToCs created by user SMTM<SID>, where <SID> is your SolMan system, but not exported (still modifiable), enter a target (target is probably there already) and try to save.
If you have an error message “Target system XXX is unknown in the current transport configuration“, you miss a link between the different domains or, if they are in the same domain, something is wrong that one system is not “seeing” the other. If the ToC can’t be exported, it will not be added to table /tmwflow/tocasng. You will not find those modifiable ToCs in this table.
Example of ToCs:
Modifiable ( It was created but not released because we missed the domain link in the first try )
Released by the system (in this case, everything worked fine and the standard programs could create and export)
Table /tmwflow/tocasng:
When the auto-import is finished, this table will be similar to that:
In order to create Retrofit Data for a transport request when something went wrong during the release, run standard report RETRO_SERVICE_CREATE_RFIT_DATA and pass as parameters:
– Task List (Maintenance Cycle)
– Source System/Client
– Retrofit System/Client
– Original Transport request that must be copied.
This Rachel, always with useful tips and willing to share.
Thanks for making our lives easier.
Juan
Thanks Rachel
I am particularly interested in the "auto-import" function you talk about here: "If this creation and export succeed, an entry is created in table /tmwflow/tocasng. This ToC will be used by the Auto-Import functionality and will be imported into the Retrofit system (the post-processing system of your logical component)"
I am looking for an auto-import function, but instead of to another DEV system, I want to have the TOC auto imported to QA, once the tasks have been released. (We also have a pre-Prod system in place between QA and PROD.)
Do you know if this is possible?
Regards
Rob
You can change the system or client manually, where you want to import this, but ideally TOC will be imported only to the retrofit system or client, as it has been designed in that manner.
I hope it answers your questions or correct me if you have got other views !!
--Anand
Hi Raquel,
As mentioned in your blog, TOCs will not be exported automatically if the link between different domains doesn't exist.
"In order to create and export the ToC, it's necessary that the target of the transport of copies is known by the development system where it's being created, which means that if you have dual landscape and your development systems are in different domains, you need a link between the domains."
But, in my case both the development systems belong to same domain. Still the TOCs are not getting exported automatically.
Can you please suggest me what else we can check to resolve this issue.
Regards,
Anjali.
Adding to above...
The export of transports is getting failed with "Message no. TK756-
Error when changing the object directory entry R3TR TRAN ZFI_RPT198_POIR"
However when we are release it manually it is getting release without any issues.
Please suggest.
Following the steps, I ran the report to create retrofit data. Now we have two retrofit ToC for the same source transport: (1) we have the original ToC, in which the objects are locked; (2) we have the new ToC, in which the objects are not locked. Both ToC are modifiable and have the correct target system/client.
What should be done with these two retrofit ToC? Should we manually unlock the objects in the original ToC using SE03? Should we delete one of them?
Thanks,
Shawn
Hi Shawn:
The scenario you describe with ToCs is very similar to the one that can be reproduced by having more than one ToCs of the same transport, when a normal change is between In Development and To be Tested. When the [import] buffer of the project is moved to QA, ChaRM takes care of cleaning up the import queue. The operator does not have to delete any excess of ToCs.
ToCs are just "harmless" copies of a transport. Nothing gets locked by them, hence you do not need to do anything via SE03.
When you complete the retrofit the import queue will be totally cleaned from the original and the duplicate.
Regards,
Juan
Thanks for your post Raquel.
In my case, below exception is raised:
"Missing target system for SP System -> System Administration" | Message no. PI003
I've confirmed with the basis and they said root/target systems are maintained correctly.
Can you shed some light on why it would raise this EXCEPTION?
Thanks!