Using the Single Transport strategy in a three-system landscape leads to the following issues and risks:
- Transport requests are imported in an individual sequence
- Risk of forgotten transports
- Risk of version downgrades by transport sequence violations
These risks are discussed in more detail in the following sections.
Note
SAP recommends that you use the Import Project or Import ALL strategy.
Transport request TR1 contains a report, ZREPORT, which calls the function module, ZMODULE which has also been created in transport request TR1. This transport request is released in the development system (step 1 in the figure above). Then transport request TR2 changes the report ZREPORT but leaves the function module ZMODULE untouched. TR2 is then released as well (step 2).
In QAS, TR1 and TR2 are imported one after the other (steps 3,4) and then tested together. The test is OK.
However, when now only TR2 is imported into PRD (step 5), the generation of ZREPORT fails, because TR1 was forgotten and function module ZMODULE therefore does not exist in PRD and cannot be called.
If then TR1 (without TR2) is also imported into PRD (step 6), the test in PRD fails again because now the old version of ZREPORT (version of TR1) has overwritten the newer version (version of TR2).
The following figure explains some reasons for these inconsistencies in a more general way:
The development system DEV contains all developments (both open developments and developments that have been recorded in released transport requests). The quality assurance system QAS contains transports that have already been imported into PRD, and also transports that have not been imported yet into PRD (labelled as "transports in transition" in the figure above) .Therefore, all three systems are on different software levels.
Caution
These different software levels in a three-system-landscape cause risks. One big risk is that programs that have been tested successfully in QAS might fail in PRD.
Objects that have been changed in a project that is currently in transition (either in open transport requests or in already released transport requests) cannot be maintained anymore during bug-fixing.
As soon as a change to a repository object is performed in the development system, this repository object is locked in the transport request (see the left part of the figure above). The lock is deleted when the transport request is released from the development system.
You can compare the object versions in DEV and PRD before starting a maintenance task. If the versions are different, then you have to temporarily switch back an old object version from the version history in the development system. This object version is corrected and transported to production. In the next step, the correction is made again with the latest object version.
Note
This procedure is not possible for BW objects, because they do not have a version history.
The procedure to maintain two different versions of one object via versions, and to transport these versions through the system landscape is error-prone. Alternatively, the developer can search for objects in transition with transaction SREPO which – however – requires an RFC destination between the SAP system that you want to compare the production system with and the production system itself.
The right part of the figure above shows the reasons for cross reference errors. Here the transport request for object 2 has already been released in the development system and therefore the lock has already been deleted – object 2 belongs to a transport in transition.
In this example, object 1 was not changed by the project. But object 1 uses object 2, and – as stated above – object 2 was changed (from version 1 to version 2).
Initially, object 1 worked, but now object 1 has to be corrected. The new version of object 1 still works with the new version of object 2, but the new version of object 1 does not work with the old version of object 2 and this is only detected in PRD.
The system landscape topology, which can be used to detect cross-reference inconsistencies is a pre-production system. It is the (optional) SAP system for the final integration test once the scope of the release has been fixed (release test). This fourth – pre-production – system is brought between the QAS and the PRD. If this pre-production system has the current software and configuration state of production, a cross-reference error can already be detected during tests in pre-production.
Note
You can also use the report /SDF/CMO_TR_CHECK to check for cross system issues before transporting into the production environment.
Assume an SAP ECC system landscape on an old release serving one or several countries. The major development cycle and the rollout are complete. Ongoing changes are limited to Support Packages, operating and database patches. SAP configuration changes are required to support minor business requirements.
In this case, a three-system-landscape might be sufficient: The maintenance transports are bundled into packages, so that they can be tested together.
This scenario works well if the number of urgent corrections is low. Non-urgent corrections should be released later so that QAS stays close to PRD for the test of urgent corrections.
In this scenario, all changes are created in the development system DEV (maybe after prototyping in the sandbox system SBX).
The QAS system is used as a testing environment for integration testing and data conversion testing. This system partially contains the changes from the new release that currently is in development. The QAS system is the environment for the final integration test (once the scope of the release has been fixed – release test), regression test and technical system test. It should represent the status in the PRD systems in the following way:
Infrastructure: the setup of the QAS system should mimic PRD as closely as possible and it should be a full copy of the production system. This is the prerequisite for realistic volume tests.
Transports: The QAS system must not be "corrupted" with new release functionality or new maintenance packages until the appropriate time (ideally as close to go-live as possible).
Data: The QAS system should be regularly refreshed from PRD, if possible.
This landscape is the best practice landscape for solutions with production support and development projects of a minimum scope (even in parallel releases).
Recommendations to make best use of this landscape:
Strict change management for production support and project development, and/or same development team for both types of changes.
A strong change control should be in place (strict control of what changes move when into QAS, refresh of QAS, …).
Note
Larger maintenance projects (Support Packages, upgrades) have to have a separate project development environment (see the section dealing with the dual track landscape later in this lesson). This is also recommended for very large functional projects.