How to detect transport-related errors before they occur? – The Cross Reference Check
Do you import transport requests via STMS into a SAP system and you are sometimes surprised to spot an import error? Or you find out you missed a transport after importing another one? If this sounds familiar to you, then this blog post is for you!
Dependencies between transports can cause problems
Transports are often logically related to each other. A simple example for this is a SAP report that calls a function module in the same system. If you transport the report without the called function module to another SAP system, this could lead to a dump.
Missing transports can lead to different potential errors like dumps, version inconsistencies or import errors (STMS return code 8).
These errors can cause a lot of stress during a big production import when you only have limited time. Wouldn’t it be better if you have this information already before you start the import? Sure! Luckily, there is a report to help you to find potential errors before they occur.
How do you find potential errors?
Call report /SDF/CMO_TR_CHECK via SE38 or via transaction /SDF/TRCHECK. As this report is part of the ST-PI component, you can call this report from every AS ABAP system. However, the easiest way is normally to call it from SAP Solution Manager. That is because the required RFC connections normally already exist from Solution Manager as the central SAP system in your system landscape.
1 . Selection screen of Transport Request Check Report
In the selection screen you must fill a source and a target system. Imagine you want to import a transport from one system to another. The source system is the system where your transport currently is located. The target system is the system in which you want to import your transport request. So, if you transport from development system (DEV) to quality assurance system (QAS), DEV is source and QAS is your target. If you want to transport from quality (QAS) to production (PRD), QAS is your source and PRD is your target. Select the flag for the Cross Reference and run the report.
SAP recommends using the existing READ- and TMW-RFC connections. However, in case you have TRUSTED RFC connections and the right authorisations in the connected systems, this is even more convenient. Then you can directly jump from the result screen to the connected system.
2. The result screen
In the result screen the report detects the issue before an actual import. In the example above, the program Z_REPORT calls function module Z_FUNCTION. The report is in transport SM1K900001, the function module in transport SM1K900002. As the function module is not included in transport SM1K900001 and only in the source system (see status message “only in source”) this could lead to a dump in the target system when the report is called. Next to the missing object you even have a column that gives you the number of the missing transport request (SM1K900002).
Besides the presented case “Only in source”, the report can detect a lot of other cases showing potential errors throughout your system landscape. Technically for all objects in the selected transport requests, the referenced objects are identified by a where-used-analysis. If the referenced objects are not included in the transport requests, their versions between the source and target system are compared. You will receive often “other version” issues. This means that the checked development object uses another version of a development object in the source and the target system.
Another very useful information is “Locked in target system” if you make a cross-system transport. Then an object of the transport to be imported is already locked in the target, because a developer is currently working on this object.
3. Automated integration into SAP Solution Manager Change Request Management
Right now, you must run the report always by yourself. Even better would be if you can automate the checks. And you can!
With SAP Solution Manager 7.2 SP8 you can integrate this check into the change request management process. It is called cross-reference check. The transports are automatically checked during release and import of a transport request. And of course, you can still run manual checks.
3.1 Pop-Up during release of a transport
If you release a transport request and there is a potential issue, a pop-up comes up in an urgent correction. With the right authorizations you can ignore the conflict and continue or else you can cancel the pop-up and take a corrective action. If you ignore, this will be logged.
3.2 Transport-related checks assignment block
In the change document assignment block “Transport Related Checks” you can see the result of the cross-reference check.
3.3 Details screen
In both screens above you have the possibility to see the details. The details screen below looks like the result screen from the report /SDF/CMO_TR_CHECK.
The cross-reference check is a real help in transport management to avoid import errors and other transport-related errors. It should be used alongside with downgrade or overtaker checks. Whereas downgrade protection cares about two transports containing the same object, the cross reference is about two transports containing two different objects that are linked to each other.
You can easily start to figure out how it works by calling it in your system with report /SDF/CMO_TR_CHECK. In case you are using ChaRM, you can integrate it automatically into your change process. However, in some cases like cross system transports where ChaRM is not used, or to check a huge list of transports before a big Go-Live, you must call the report directly.