Ivan Mans discusses some transport functionalities of the SAP Transport Management System and transport management solutions offered by third-party software developers.
Key Concept
Transporting configuration and development changes through an ERP landscape is done almost daily via the enhanced SAP Change and Transport System (CTS). Part of CTS is SAP’s Transport Management System (TMS), the backbone for all SAP transports. There are two versions of CTS, CTS and CTS+. The plus version also supports non-ABAP technologies.
Transport management is a vital task that is frequently underestimated. Through my work experience, I have encountered a range of client environments. All these environments have similar requirements with regard to transport management, but each one has a very different approach toward transportation challenges. I also have been involved in a project at an organization that tracks its transports and import sequences using Microsoft Excel sheets. This data is centrally maintained and fed through a continuous flow of email from developers and consultants. This project was an example of inefficiency and risk of human error.
I guide you through what the SAP standard system has to offer to facilitate transport management. Everyone who has ever worked within an SAP environment is probably familiar with the SAP Change and Transport System (CTS). Figure 1 shows the standard SAP Transport Management System (TMS), which is part of CTS+. You start it by executing transaction code STMS. For this article I used an internal SAP landscape in which AED is my development box and AEQ is my acceptance environment. I then zoom in on the functionality a third-party add-on tool can provide for transport management.

Figure 1
Standard SAP TMS
Working for a software vendor myself and having a transport management solution in the portfolio, you may wonder if I hold a biased or prejudged position to come to a final conclusion. However, deciding on whether to use SAP’s TMS versus a third-party add-on is definitely not an easy choice. Your decision making may take different twists depending on a number of parameters.
This comparison of third-party tool capabilities with the standard SAP offering allows you to make your own conclusion in deciding what tools best fit your organization.
Out of the SAP Box
CTS+ is a core SAP NetWeaver technology for which you need an ABAP and Java stack. Environments only running ABAP use CTS, not CTS+. The backbone for handling imports using CTS is the SAP TMS, which most users know through its transaction code as STMS.
Figure 1 shows the SAP TMS on an internal development box, the SAP standard transport tool that shields the user from the complexity of the tp import command line command.
Next to the base components, which are included within each SAP NetWeaver platform, SAP has invested a lot of effort into SAP Solution Manager. This SAP toolbox includes a wide range of components, such as a system inventory, upgrade planning, technical and business process monitoring, system health reporting, and SAP Change Request Management (ChaRM).
ChaRM is the standard SAP tool for change and transport management. The transportation component of ChaRM is not a technology on its own, but it is built on top of TMS functionality. TMS can be used without ChaRM although ChaRM (and the same applies for other transport management add-ons) internally relies on TMS functionality and can therefore not operate without the TMS kernel.
Straight from the Shelf
Since a fully equipped transport manager such as ChaRM is not readily installed within each SAP NetWeaver installation, you need to centrally install and configure Solution Manager or a third-party add-on package. No doubt a few readers have already used a homegrown tool for managing transports. I myself have seen various types of these tools, ranging from Visual Basic for Applications (VBA)-powered Excel sheets to reports and programs developed within SAP using ABAP. These custom-built tools are often tailored to perfection covering very specific customer or project requirements. Total cost of ownership may become a major hurdle considering the continuous evolution of the SAP suite and the way projects are being executed.
For these reasons there are a number of add-on tools on the market that not only fill in the gaps but also move transport management a major step forward, reducing both manual handling efforts and the risk of erroneous imports. Tools readily available off the shelf can be configured to support practically every landscape and deployment scenario. Certain SAP service providers use non-SAP-standard transport add-ons offering transport management as a service.
Next, I describe the following requirements and compare SAP and third-party tools for each: quality assurance, approval workflow, sequencing, and downgrade protection.
Transport Approvals and Quality Assurance (QA)
A first step toward securing your transport management and ensuring audit compliance is an approval procedure. Not a single import into an acceptance or production environment should be triggered unless someone reviews the request and signs off on it. To provide true value an approval workflow should be fast and effective. Otherwise, approvals quickly become an administrative burden. Approvals can be collected through a manual check and sign procedure using a workflow engine. Approvals, however, can also be automated using predefined checks and rules.
The Value of a Transport Approval Workflow
Approving a transport on any particular level requires more than just selecting a check box. However, what does one define as quality assurance (QA) or gatekeeping?
- Code QA: Both SAP and the add-on market offer tools to enhance the quality of, for example, ABAP coding. Pre-defined check rules are typically executed before a transport request is released and therefore before transport management is relevant. Having the results of such partially automated QA tools integrated within the transport approval flow brings a value-add to justify specific, often technical, approval levels.
- Process adherence, some examples: Your organization may have a hard requirement to have specifications and unit test results documented prior to allowing a promotion into the acceptance environment. There may be a change management tool in place that is not part of the SAP portfolio. SAP transports, however, can be imported only after the corresponding ticket or change request is officially approved for deployment. Using Excel lists or ChaRM in combination with a non-SAP-based change management tool may pose a challenge to properly integrate change management with your transport management process.
- Segregation of duties, with clear separation between technical and business approvals
- Legal and industry-specific requirements (such as the Sarbanes-Oxley act, the German Banking Act, or the regulations from the US Food and Drug Administration)
- Transport QA: Before a transport is fully approved, which would make it eligible for import, you need to ensure the import can be executed safely. For example, are there versions or relational dependencies in between transport requests that need to be respected, is the object list complete, and will the import run through safely without affecting the target environment?
TMS QA: The CoreSAP Standard Capability
The standard SAP system offers TMS QA, accessible via transaction code STMS_QA (Figure 2). By defining a system as a QA system, you can activate a QA procedure. To do so check the Delivery After Confirmation check box and click the Procedure button. In the pop-up screen you then mark the check box to activate the selected approval steps and confirm by clicking the green arrow icon.

Figure 2
Standard transport QA tool embedded within TMS
A QA procedure enables you to configure a number of approval levels (request owner, department, or system administrator). These levels ensure transports are moved into a system-specific QA worklist. Unless approvals are granted, an SAP system does not allow a transport to be imported into the target system.
Whereas TMS QA is very basic, ChaRM’s transportation component is equipped with a centralized workflow-based approval mechanism that integrates with the SAP change management component.
Approvals Using a Third-Party Add-On
Setting up an approval workflow within, for example, Transport Center only requires a few clicks. The number of approval levels is configurable. Approval levels are, by default, obligatory. For example, Figure 3 shows the approval level type as Normal Approval level. However, the approval level can be made optional in some scenarios, such as random quality checks. Within Transport Center you can therefore define an exclusion rule to set an approval level as conditionally inactive. This way, you can skip your ABAP delivery lead from reviewing a configuration transport.
To go to Figure 3, use transaction code /ABEX/TRACE, which is only available when the TRACE add-on tool is installed. When it is installed you can follow menu path Customizing > Hierarchical. To create or activate a new approval level, you select a project and corresponding target system. Then you create a new or change an existing approval level.

Figure 3
Approval level setup within the SAP add-on called Transport Center
Company- and project-specific requirements can be integrated within the approval flow. Figure 4 shows an example of an integrated web service call that contacts a non-SAP change management tool. In this example the call checks for the status of the referenced request for change. Many organizations actually do not use ChaRM for their change management processes. In that case it is very important to have flexible integration between the transport and change management tools.
In Figure 4 you can see a pending approval within Transport Center. The transport refers to a change request documented with number 224804, for which the documentation is stored in a non-SAP change management tool. The organization in question has a rule to not transport changes until business approval is granted within the external change management tool. While approving, Transport Center triggers a web service, implemented within a Business Add-In (BAdI) offered by the SAP add-on. In real time it verifies the approval status of the referenced change request number. In this example the referenced Remote Function Call (RFC) number was not yet approved by the business, which prevents the transport from being approved.

Figure 4
TRACE: Integrate transport management checks with your (non-SAP) change management tools
When your system is configured to trigger an immediate import after the last approval is received, you have to ensure the transport does not damage the receiving box (e.g., a transport with missing objects causing short dumps or a program that would be wrongly downgraded). To minimize the risk for erroneous imports, the system can be configured to allow imports only for transport requests that have been recently verified. Figure 5 shows that a transport approval cannot be granted because dump prediction results are too old to be fully reliable. I cover the scope of such automated checks later, when I talk about downgrade protection and dump prediction.

Figure 5
Ensure only verified transports are approved before import
Sequencing
Transport sequences are of utmost importance when dealing with version or referential dependencies. The use of an incorrect import sequence typically results in version mismatches, which may result in syntax errors and short dumps.
In very specific cases version mismatches may go unnoticed and catch you by surprise. I have witnessed several incidents. For example, a rather basic and accidental program downgrade triggered the sending of thousands of incorrect invoices to customers. Another rather painful occurrence of a sequence error was encountered during a monthly productive release window. A manual handling error caused an old SPAU (the transaction code used to adjust modified repository objects during an upgrade or Support Package implementation) transport to be included into the production cutover list, destroying all objects that received new versions since the last upgrade. The shortest way to an operational system was a full system restore.
When dealing with a large number of transport requests (for a release cycle or project), you may face complex version and logical interdependencies. Having a reliable and proven import sequence is therefore crucial to guarantee a successful cutover.
The SAP Flavor
Within the core of a standard SAP system, there is a way to define import sequences by defining dependencies between various transport requests. This functionality, however, is optional and rather well hidden. I would not be surprised if even a seasoned developer or consultant is unaware of this functionality. From within the transport organizer execute transaction code SE09 or SE10 and follow menu path Open the requests overview of the transport organizer > Goto > Dependency Information (Figure 6).
Within the following screens you could maintain dependency information, which would be a very tedious task when working with many transport requests simultaneously. You open the dependency information screen (Figure 6) for a specific transport. From within this screen you can maintain interdependencies such as successors and predecessors in between multiple transport requests.

Figure 6
The dependency information screen with no dependencies entered so far for request AEDK900547
Insert a new dependency by clicking the add entry icon (the icon with the + sign) in Figure 6. In the pop-up screen that appears (Figure 7) you document the type of dependency (such as successor or predecessor). For example, you can add transport AEDK900549 as a successor to AEDK900547 and document the reason as Functional dependency, which should be respected. You save a dependency by clicking the green check mark shown in Figure 7.

Figure 7
Create a new transport dependency
ChaRM, on the other hand, tries to decouple the technical complexity of transport sequences using an entirely different methodology of transport management, mainly based on the use of transport of copies requests and release cycles.
SAP did, within the latest versions of Solution Manager, introduce an option to manually assign and decouple transport requests. The secure handling of emergency transports or the switch of release cycles for specific objects is not a straightforward task.
The Add-On Functionality
Many third-party tools built around transport management originated from customer developments to overcome the issue of sequence definition and sequence adherence. In Figure 8 you can, for example, see that the access to the sequence tool within Transport Center is logically positioned within the Transport tab. The Import Sequence button opens the pop-up screen shown in Figure 9. Note you would only have access to this screen screen using transaction /ABEX/TRACE when the Transport Center add-on is installed.

Figure 8
Transport tab enables direct access to the sequence editor
For this same reason most add-on tools are often better equipped compared with SAP standard tools for deriving and defining import sequences, both manually and automatically.
Within the sequence editor shown in Figure 9, you can derive the sequence used for the acceptance import (which was typically also tested thoroughly). For example, you can enter the system ID for reading the reference import timings into the highlighted field and click the Sort by reference import button. The sequence editor re-sorts your transports by taking the actual import timings from the entered reference system ID. After you click the Save button, the production import is executed using the same import sequence.

Figure 9
Single transport sequence editor
Conflicting sequences (when two manually defined sequence definitions again have interdependencies) trigger a sequence merge function. Figure 10 is an example.

Figure 10
Semi-automated sequence merge
Mass Imports and Cutovers Using a Third-Party Product
For a classical example for a mass sequenced import, let’s look at a rather common system refresh. In this example, you refresh your acceptance environment from a production instance to prepare the landscape for the next release cycle.
In Figure 11 you see three different objects having version differences comparing the acceptance against the production environment.

Figure 11
Start scenario
Object 1 already exists in production although production has received some new versions. Object 2 is not yet productive and object 3 has a newer version, although one version should never be promoted to production because the transport contains an erroneous test object.
A system copy wipes out the entire acceptance box, after which you have to re-import those transports that went into acceptance since the previous system refresh, a so-called delta list.
Figure 12 shows an acceptance box after the refresh from production. The versions are reset to the versions that are also active in production. The delta list shows the differences between the old and new state of the acceptance box. Transports that have never moved to production, but that were imported into the earlier version of the acceptance box are shown on the delta list.

Figure 12
Status of acceptance box after a refresh from production, along with a delta list showing the differences between the old and new acceptance box
Using standard SAP tools you have to extract the import history of the acceptance box before overwriting it with a fresh production copy. The exclusion of erroneous or unwanted transports is an error-prone, time-consuming task.
Generating the very same sequenced transport list using a transport manager, however, works as follows: At first you need to extract an actual transport status between your acceptance and production boxes. The transport tracking tool delivered via Transport Center shown in Figure 13 allows a comparison on transport statuses comparing up to five systems in parallel.

Figure 13
System comparison tool
In my example you compare all transports imported into AED after 1 January 2014 (e.g., the date of your previous system refresh) against the import status in AEQ. The final list is sorted on AED import time. Transports highlighted in the output list generated by the tracking report (shown in Figure 14) are actually missing in AEQ. The screen shown in Figure 14 appears after you click the execute icon in Figure 13.

Figure 14
The results of a system comparison
Starting with the very first transport imported into AED, but missing in AEQ (i.e., the first identified delta), you can generate a delta import list using two clicks. This action also provides you with an estimated run time for the overall import duration. After AED is refreshed from AEQ, you trigger a mass import using the delta import list, and your system is fully refreshed with an up-to-date transport status.
You can extract the delta transport list also during or after the system copy. Typically, add-on tools do not only rely on the SAP import history, but are equipped with their own transport tracking mechanisms.
Critical Transport Objects and Special Handling Rules
Specific transports may not flow through the landscape since their contents could corrupt or overwrite data on the target system. Examples I encountered during my project experience range from retail store settings to specific FI configurations that should never be transported. You may also have transports that require special attention before they can be approved.
SAP Standard Security: Critical Objects
Standard TMS also allows handling of security-critical transport objects using transaction code STMS and following menu path Extras > Critical transport objects.
Figure 15 shows an example of a configuration entry for which you document the table definition and table content for table TMSTCRI (security-critical transport objects) as critical. Entries shown in Figure 15 are no longer transportable, as they have been added as security critical.

Figure 15
Document critical transport objects in standard SAP
Exclude Transport Requests from Further Deployment Using a Third-Party Add-On
The exclusion of a complete transport from further deployment when, for example, you are creating a mass import list, runs fully automated within Transport Center without the risk of human error. You may want to document transport requests as redundant (Figure 16) and irrelevant from further deployment in case the transport content contains erroneous objects or configuration. With TRACE installed you can access redundant transports using menu path /ABEX/TRACE > Customizing > Dump Prediction > Redundant Requests.

Figure 16
Document a transport as being redundant
Excluding or blocking a transport request using standard TMS is always prone to error since there is no immediate option to mark a transport as redundant. Even when a transport is removed from the STMS import queue, it can always be added manually again, as long as the data and co-files exist on an operation system level.
There is, however, one option that not many people may be aware of for physically deleting an already released transport request using a standard SAP system. SAP report RDDIT076 allows you to select and modify a single transport. After a transport request is selected, you can double-click the main transport request. An Expert Mode pop-up screen is shown in which you can edit certain parameters (Figure 17). This way, you can change the status from R (released) to D, which stands for modifiable. After clicking the save icon, you can delete the transport using your standard transport workbench.

Figure 17
Change a transport request after it has been released
Special Handling Rules Using a Third-Party Add-On
As you can see in Figure 18, Transport Center offers similar special handling options on an object (type) level as the SAP system (Figure 15) with even more flexibility:
- Full support of wildcards
- The ability to provide descriptive text explaining the reason for the special handling, which is visible to the user at the time of approval and transportation
- The capability of defining an action to prevent objects from being moved at all, and triggering additional approval levels

Figure 18
Document critical transports objects, which may need special handling
Downgrade Protection
Respecting import sequences (covered earlier) is crucial for running a stable SAP environment. When an older version of a workbench or configuration transport overwrites a newer version, it is referred to as a downgrade. For example, a newer version could overtake an older version when being moved to production. Such an overtake scenario is a potential risk because the version that was skipped may create an unwanted downgrade when it is moved to production later. It would then overwrite a newer version.
The SAP Functionality
When you execute standard transaction code SE03, global customizing settings, you can activate object checks at the time of transport release (Figure 19). These dependency checks turn out to be rather basic, and most administrators do not take the effort to activate the functionality.

Figure 19
Activate standard checks at the time of transport release
ChaRM further matured SAP’s capabilities by introducing downgrade protection. Downgrade protection enables a number of checks that should prevent your transports from being imported using an incorrect import sequence as it identifies transport dependencies at various stages during the TR life cycle.
Whenever an object is changed within a managed system, it is recorded within the central Solution Manager instance. At the time of transport release, this information is accessed to check for a potential conflict or dependencies in between transports. At the time of import, the system once more checks for missing prerequisites and warns for possible overtake scenarios.
The Add-On Functionality
Long before SAP introduced downgrade protection, add-on components covered similar checks, often more secure and thorough.
There are third-party tools available that identify interdependencies between multiple workbench and configuration transports at the time of transport release, approval, and import. I discuss some of these types of dependencies in the next few sections.
Direct Version Dependencies in Case of Versionable Objects
Whenever a prerequisite is missing in the target environment you risk creating an overtake scenario. Whenever a newer version is already active in the target environment, you risk running into a downgrade situation. Figure 20 shows a customer program having n-versions. You should, for example, be warned when you try to transport version 2 and version 1 is not yet imported.

Figure 20
Direct version dependencies
Not all object types in an SAP system have version management enabled. In such cases the checking algorithm verifies the export timing to suggest the correct import sequence.
Referential Dependencies
In addition to version dependencies, you also have referential dependencies. Whenever a program such as the one shown in Figure 21 uses a table, the transport is only successful when the correct version of the table and all used data elements are available. A data element only generates correctly if the contained domain is also available. Referential dependencies can be identified up to three levels deep.

Figure 21
Referential dependencies
Contents Analysis
Contents analysis is executed for transports containing table entries. Two people, for example, working on a different project and unaware of each other, might modify the same pricing scheme. A content check raises a dependency warning whenever one of the two requests an import, also suggesting the creation of an import sequence to avoid future sequence issues.
Known Issues and Customer-Specific Objects Needing Special Attention
Third-party tools send warnings about pitfalls. For example, when you try to transport an index for a very large table, the import process may be stalled for a while (the time needed to generate the database index). To avoid these classical issues, a special handling list suggests that you decouple the database index adjustment from the ABAP Dictionary (DDIC) transport.
Each SAP client or landscape has its specific set of objects needing special attention. You can therefore configure your own list of objects that can never be transported, objects that need special approval, or objects that can only be transported during a release cycle.
Data Model Dependencies
Figure 22 shows an example that is probably familiar to most developers. Whenever you transport a functional module, you need to ensure the main program of the function group is up to date. Whenever you transport a method you need to ensure its class attributes are included within the transport or are already within the target system.

Figure 22
Data model dependencies
Dump Prediction Example
The example in Figure 23 shows a dump prediction error with a transport containing a data element having a previous version (AEDK900291) not yet moved into the target box. The dump prediction pop-up screen is shown whenever Transport Center identifies a dependency, which may be at transport release, transport approval, or the time of the import.
By skipping the transport listed as dependent, you create an overtake scenario that may later result in an accidental downgrade when someone imports AEDK900291 into AED.

Figure 23
Dump prediction example
When you try to approve or import, the transport cannot be physically imported unless an import sequence with the conflicting transport is created or someone signs off on the error messages. Figure 24 shows how an ad-hoc import sequence can be created. The sequence editor is available by clicking the sequence icon, available within most screens of Transport Center.
By selecting the transport AEDK900374 and clicking the Insert Before button you can enter the missing transport number, AEDK900291, as a prerequisite. Click the Save button to save the import sequences. Once the sequence is committed, dump prediction would rerun and the red light shown in Figure 23 would automatically turn into a green led icon.

Figure 24
Define an ad-hoc import sequence
In certain scenarios you may need to bypass specific versions or ignore known warning messages. Transport Center therefore allows you to overrule or sign dump prediction errors and warnings (Figure 25), although details are recorded in the transport log. To complete this task, click the red traffic light in the column Signed (Figure 23). In the pop-up screen that appears, you can document reasons for ignoring the error or warning message. Click the Sign button to record and store your approval for the Transport Center to ignore the warning.

Figure 25
Example for signing a dump prediction message
Implementation Requirements
A typical ChaRM implementation requires extensive SAP configuration experience. Transport management using ChaRM, however, is only a small component of an entire change management suite. The backbone to ChaRM is SAP Solution Manager, which is the standard platform for Application Lifecycle Management. For SAP users Solution Manager might be cost-free on the license front. Running a Solution Manager environment on its own requires hardware and administration efforts, such as for running upgrades.
A typical third-party solution for software logistics is installed and configured in a fraction of that time on any existing SAP instance.
Not Just for High Volatile Environments
Running an SAP environment, which undergoes continuous changes without the presence of tight processes and a proven transport manager, is like driving uninsured through a metropolis without the presence of a navigation instrument. No doubt you will arrive at your destination, but chances are high that you did not use the most optimal route or that you simply arrived late after running into several dead-end, one-way, or narrow streets. Then there is still the question of whether you want to walk (TP-Import), bike (STMS), drive the bus (ChaRM), or use a car. The choice of cars may again range from a Volkswagen to a custom-built Rolls-Royce.
One thing I would like to stress: Do not drive uninsured. Accidents do happen, and even for non-critical environments, the costs for resolving issues quickly overshoot efforts and budgets needed for securing your software logistics.
Ivan Mans
Ivan Mans, a core technical SAP expert, co-founded ABAP-Experts. His first steps into the SAP arena were made more than 16 years ago. Since then Ivan worked as a certified independent consultant all across Europe, supporting and driving SAP projects across various industries. Today Ivan is managing director and chief technical architect at ABAP-Experts.com. Ivan’s home country is Belgium, where he lives in Antwerp, together with his wife and two dogs. In the scarce time Ivan is not working on SAP his main hobbies are travelling, enjoying good food and drinks, and British sports cars.
Ivan will be presenting at the upcoming SAPinsider GRC 2018 conference October 16-18 in Prague. For information on the event, click here.
You may contact the author at Ivan.Mans@ABAP-Experts.com.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.