## 4.2.9.5.5 Use Case 2: One Development and Correction Codeline in a 5-System Landscape
You can apply this setup if you have permanent/infinite development activities for large applications with many developers, where development cannot be paused to implement an urgent correction. Software component branches are provided remotely in a Git repository branch and checked out locally in such systems. In case of released APIs in the involved software components, API snapshots are generated locally after release decisions. Corrections need to run in parallel to development and on a released state. You need to separate testing from development to ensure the solutions also runs in a non-development system before being delivered to production.
<!-- image -->
## General considerations:
- Systems COR and QAS have the same software state as production system PRD, unless a new change is tested and released. This means transport requests are released in the DEV system only if development is completed and if it is planned to import the changes to the production system.
- Releases are planned and communicated to development in advance:
- Upon cut-off date, development is finished. All development that is released at this time must be tested and be of good quality. From then on, you have to fix defects in the COR system and maintain them in parallel in the DEV system.
- Upon release date, all defects must be fixed. If you make the decision during testing in the QAS system that a complete functionality is not delivered, developers must delete, revert, or disable the functionality in the COR system and release the corresponding transport requests. You cannot remove objects from the release branch, e.g. by deselecting transport requests. To revert objects to an older transported state, use the compare editor of the Eclipse History view. If the withdrawal of the functionality should be performed in the DEV system as well, it is considered as a correction and you have to perform double maintenance of corrections into the DEV system. The released software state from the COR system is imported into the production system(s) PRD.
- System COR is usually locked for development. First, this means developers cannot do changes by default and there are two approaches how to handle this:
|                | User Locking              | Read-Only + Write Developer Role                      |
|----------------|---------------------------|-------------------------------------------------------|
| How-to Details | Unlock user on demand     | Assign write role on demand                           |
| Pros           | No additional role needed | No generic read user needed                           |
|                |                           | No logon with different user for read ac- cess needed |
|                |                           | User-specific auditing                                |
|      | User Locking                                                | Read-Only + Write Developer Role   |
|------|-------------------------------------------------------------|------------------------------------|
| Cons | Generic read user needed if you want to provide read access | Additional role needed             |
Second, developers are also not allowed to create transport requests and tasks on their own, but it's the release manager who creates them for all developers. This separation is achieved by giving business catalog SAP\_A4C\_BC\_TRN\_MNG\_PC (Development - Transport Management) to the release manager instead of the developer role in correction system COR.
## For Go Live/Development after Go Live (Including Deferrable Corrections)
## Starting Situation for Go Live:
Recently created development system DEV and other already existing ABAP systems cannot be based on some branch yet, as the software component does not exist yet.
The Go Live process is characterized by creating different systems only when needed for the first time, however, you can provision the systems already beforehand. Additionally, the future solution's software component does not exist from the start. The resulting release branch is YYYY-01. Apart from this, the Go Live process does not differ from the release development processes.
## Starting Situation after Go Live:
- Development system DEV and test system TST are on the main branch
- Correction system COR, quality assurance system QAS, and production system PRD are on release branch YYYY-&lt;nn&gt;
- Software component relations are defined for dependencies between leading- and reuse software components in the YYYY-&lt;nn&gt; release
- In case of released APIs: In the development system DEV, test system TST, correction system COR and quality assurance system QAS, a check-relevant API snapshot named YYYY-&lt;nn&gt; was generated manually with all released APIs extracted
This process can also be used for deferrable corrections, which do not need to reach production before the next development release. These corrections are handled like normal development.
|   Step | System   | Role            | Task                                                                                                                                                                                         | Tool                           |
|--------|----------|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------|
|      0 | DEV      | Release Manager | At Go Live only: create a software component of type Development and, if required, a software component of type Business Configuration . Pull the software compo- nent(s) into the sys- tem. | Manage Software Components app |
| Step   | System   | Role                            | Task                                                                                                                                                                                                                                                                                                                        | Tool                                                                                         |
|--------|----------|---------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
| 1a     | DEV      | Developer                       | If required, create a customizing transport request and create tasks for the relevant business configuration expert(s) Develop a new func- tionality or a deferrable correction. All changes are collected in Work- bench transport re- quests. During Devel- opment ATC checks are running (Working with ATC During Devel- | Export Customizing Transports app ABAP Development Tools for Eclipse                         |
| 1b     | DEV      | Business Configura- tion Expert | Maintain business con- figuration. All changes are collected in cus- tomizing transport re- quests                                                                                                                                                                                                                          | Maintain Business Configurations app                                                         |
| 2      | DEV      | Quality Manager                 | Approve or reject ATC exemptions                                                                                                                                                                                                                                                                                            | ABAP Development Tools for Eclipse: ATC Exemptions                                           |
| 3      | DEV      | Release Manager                 | Once development is finished, release the transport request(s). During transport re- lease, ATC checks are running, see Work- ing with ATC During Transport Release. The changes are now in the main branch                                                                                                                 | ABAP Development Tools for Eclipse: Transport Organizer or Export Customizing Transports app |
| 4      | TST      | Release Manager                 | Pull the software com- ponent(s) into system                                                                                                                                                                                                                                                                                | Manage Software Components app                                                               |
|   Step | System           | Role            | Task                                                                                                                                                                                                                                  | Tool                                                                                                                                                                                     |
|--------|------------------|-----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|      5 | TST              | Tester          | Test the change and report the test result. During Testing ATC checks are running.                                                                                                                                                    | ABAP Development Tools for Eclipse and custom SAP Fiori apps as well as external test tools. Refer to Au- tomate the Software Lifecycle Management Process External documenta- tion tool |
|      6 | TST/DEV          | Release Manager | Before Cutoff: In case of Released APIs, Cre- ate and generate a new API snapshot YYYY- <nn+1> for the new re- lease. Set the new API snapshot as check-rel- evant so that it will be used as reference for API compatibility checks. | Manage API Snapshots app                                                                                                                                                                 |
|      7 | QAS or any other | Release Manager | Cutoff: at cutoff date, create a release branch YYYY-<nn+1> for each software com- ponent (at Go Live: YYYY-01) (release can- didate)                                                                                                 | Manage Software Components app                                                                                                                                                           |
| Step   | System   | Role                            | Task                                                                                                                                                                           | Tool                                                                                                                                                                                   |
|--------|----------|---------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 8      | QAS      | Release Manager                 | Check out the release branch YYYY-<nn+1> of each software com- ponent (at Go Live: YYYY-01) into system QAS                                                                    | Manage Software Components app                                                                                                                                                         |
| 9      | QAS      | Tester                          | Test the release can- didate and report the test result. During test- ing ATC checks are running.                                                                              | ABAP Development Tools for Eclipse with ADT and custom SAP Fiori apps as well as external test tools. Refer to Automate the Software Lifecycle Management Process. External documenta- |
| 10     | COR      | Release Manager                 | Check out the branch YYYY-<nn+1> of each software component (at Go Live: YYYY-01) into systemCOR                                                                               | Manage Software Components app                                                                                                                                                         |
| 11     | COR      | Release Manager                 | Enable the respective development users for development in system COR, depending on the process you decided for, either by unlocking or assigning a different role             | Maintain Business Users app                                                                                                                                                            |
|        |          |                                 | If required, create a customizing transport request and create tasks for the relevant business configuration expert(s)                                                         | Export Customizing Transports app                                                                                                                                                      |
| 12a    | COR      | Developer                       | Implement develop- ment-related correc- tions. During testing ATC checks are run- ning. and exemptions requested for false- positive findings (Re- questing ATC Exemp- tions). | ABAP Development Tools for Eclipse                                                                                                                                                     |
| 12b    | COR      | Business Configura- tion Expert | Implement corrections to business configura- tion content                                                                                                                      | Maintain Business Configurations app                                                                                                                                                   |
|   Step | System   | Role            | Task                                                                                                                                     | Tool                                                                                                                                                                                     |
|--------|----------|-----------------|------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|     13 | COR      | Quality Manager | Approve or reject ATC exemptions                                                                                                         | ABAP Development Tools for Eclipse: ATC Exemptions                                                                                                                                       |
|     14 | COR      | Release Manager | Release the develop- ment transport re- quest(s). During test- ing ATC checks are running. The changes are now in the release candidate. | ABAP Development Tools for Eclipse: Transport Organizer or Export Customizing Transports app                                                                                             |
|     15 | QAS      | Release Manager | Pull the software com- ponent(s) to get the correction into the al- ready checked out release branch YYYY- <nn+1> (@Go Live: YYYY-01)    | Manage Software Components app                                                                                                                                                           |
|     16 | QAS      | Tester          | Test the change and report the test result. During testing ATC checks are running.                                                       | ABAP Development Tools for Eclipse and custom SAP Fiori apps as well as external test tools. Refer to Au- tomate the Software Lifecycle Management Process External documenta- tion tool |
|     17 | QAS      | Release Manager | Release decision: the changes are success- fully tested and ap- proved                                                                   | External documenta- tion tool                                                                                                                                                            |
| Step   | System   | Role            | Task                                                                                                                                                                                                                                            | Tool                              |
|--------|----------|-----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------|
| 18     | QAS/COR  | Release Manager | In case of Released APIs: Generate the API snapshot YYYY- <nn+1> for the new release in the correc- tion code line. Set the new API snapshot as check-relevant so that it will be used as refer- ence for API compati- bility checks.  Caution | Manage API Snapshots app          |
| 19     | PRD      | Release Manager | Check out the release branch YYYY-<nn+1> of each software com- ponent (at GoLive: YYYY-01) into system PRD                                                                                                                                      | Manage Software Components app    |
| 20     | COR      | Release Manager | Disable the respective development users for development in system COR                                                                                                                                                                          | Maintain Business Users app       |
|        | DEV      |                 | If required, create a customizing transport request for the dou- ble maintenance of the correction, and create tasks for the relevant business configuration expert(s)                                                                          | Export Customizing Transports app |
| Step   | System   | Role                            | Task                                                                                                                                                                                                                                                                  | Tool                                                                                         |
|--------|----------|---------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
| 21a    | DEV      | Developer                       | Perform double main- tenance of your de- velopment-related cor- rections in the main branch. During Devel- opment ATC checks are running During testing ATC checks are running. and exemp- tions requested for false-positive findings (Requesting ATC Ex- emptions). | ABAP Development Tools for Eclipse                                                           |
| 21b    | DEV      | Business Configura- tion Expert | Perform double main- tenance of your busi- ness configuration cor- rections in the main branch.                                                                                                                                                                       | Maintain Business Configurations app                                                         |
| 21c    | DEV      | Quality Manager                 | Approve or reject ATC exemptions                                                                                                                                                                                                                                      | ABAP Development Tools for Eclipse: ATC Exemptions                                           |
| 21d    | DEV      | Release Manager                 | Release the transport request(s). During transport release ATC checks are running. The corrections are now implemented both in the main branch and in the current release branch.                                                                                     | ABAP Development Tools for Eclipse: Transport Organizer or Export Customizing Transports app |
| 22     | TST      | Release Manager                 | Pull the software com- ponent(s) to get the correction into the al- ready checked out main branch                                                                                                                                                                     | Manage Software Components app                                                               |
## Skipping a Release
If issues during the test phase of YYYY-&lt;nn+1&gt; cannot be fixed in a reasonable time frame until the next release date, you can skip that release, especially if you have a tight release schedule ('continuous delivery' model). In that case, you have to perform double maintenance for the unfinished corrections from YYYY-&lt;nn+1&gt; in the main branch of the development ABAP system, release them, and create the new release branch YYYY-&lt;nn+2&gt; derived from that main branch. That way, branch YYYY-&lt;nn+2&gt; contains finished new development as well as the unfinished corrections from branch YYYY-&lt;nn+1&gt;. Afterwards, you can bring system COR and QAS to branch YYYY-&lt;nn+2&gt; and continue with that.
##  Note
Branches cannot be deleted or marked as obsolete. Therefore, it's important to use other tools to inform consumers about not using branch YYYY-&lt;nn+1&gt;.
## Urgent Corrections
## The starting situation:
- Development system DEV and test system TST are on the main branch
- Correction system COR, quality assurance system QAS, and production system PRD are on release branch YYYY-&lt;nn&gt;
- In case of released APIs: In the development system DEV, test system TST, correction system COR and quality assurance system QAS a check-relevant API snapshot named YYYY-&lt;nn&gt; is generated with all released APIs extracted
This process is a subset of the previous development process and can be applied to corrections that are too urgent to release with the next development release.
| Step   | System   | Role            | Task                                                                                                                                                                                                   | Tool                               |
|--------|----------|-----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------|
| 1      | COR      | Release Manager | Enable the respective development users for development in system COR, depending on the process you decided for, either by unlocking or assigning a different role.                                    | Maintain Business Users app        |
| 2a     | COR      | Developer       | Create a Workbench transport request and implement the correc- tion. During Develop- ment ATC checks are running and exemp- tions requested for false-positive findings (Requesting ATC Ex- emptions). | ABAP Development Tools for Eclipse |
| Step   | System   | Role                            | Task                                                                                                                             | Tool                                                                                                                                                                     |
|--------|----------|---------------------------------|----------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 2b     | COR      | Business Configura- tion Expert | Maintain business con- figuration. All changes are collected in cus- tomizing transport re- quests                               | Maintain Business Configurations app                                                                                                                                     |
| 3      | COR      | Quality Manager                 | Approve or reject ATC exemptions                                                                                                 | ABAP Development Tools for Eclipse: ATC Exemptions                                                                                                                       |
| 4      | COR      | Release Manager                 | Release the transport request(s). During transport release ATC checks are running The changes are now in the release candi- date | ABAP Development Tools for Eclipse: Transport Organizer or Export Customizing Transports app                                                                             |
| 5      | QAS      | Release Manager                 | Pull the already checked out branch YYYY-<nn+1> of each software component into system QAS                                       | Manage Software Components app or external tool calling the pull service of communication sce- nario Test Integration (SAP_COM_0510)                                     |
| 6      | QAS      | Tester                          | Test the change and report the test result. During transport re- lease ATC checks are running.                                   | ABAP Development Tools for Eclipse and custom SAP Fiori apps as well as external test tools, see Automate the Software Lifecycle Management Process. External documenta- |
|        |          |                                 | If changes are re- quired, repeat steps 2-6                                                                                      |                                                                                                                                                                          |
| 7      | QAS      | Release Manager                 | As the correction was successfully tested be- fore it gets approved now.                                                         | External documenta- tion tool                                                                                                                                            |
| 8      | PRD      | Release Manager                 | Pull the already checked out release branch YYYY-<nn+1> of each software com- ponent into system PRD                             | Manage Software Components app                                                                                                                                           |
| Step   | System   | Role                            | Task                                                                                                                                                                                                                                   | Tool                                                                                         |
|--------|----------|---------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
| 9      | COR      | Release Manager                 | Disable the respective development users for development in system COR                                                                                                                                                                 | Maintain Business Users app                                                                  |
| 10     | DEV      | Release Manager                 | If required, create a customizing transport request for the dou- ble maintenance of the corrections, and create tasks for the relevant business configuration expert(s)                                                                | Export Customizing Transports                                                                |
| 11a    | DEV      | Developer                       | Perform double main- tenance of your de- velopment-related cor- rections in the main branch. During trans- port release ATC checks are running and exemptions re- quested for false-posi- tive findings (Request- ing ATC Exemptions). | ABAP Development Tools for Eclipse                                                           |
| 11b    | DEV      | Business Configura- tion Expert | Perform double main- tenance of your busi- ness configuration cor- rections in the main branch                                                                                                                                         | Maintain Business Configurations app                                                         |
| 11c    | DEV      | Quality Manager                 | Approve or reject ATC exemptions                                                                                                                                                                                                       | ABAP Development Tools for Eclipse: ATC Exemptions                                           |
| 11d    | DEV      | Release Manager                 | Release the transport request(s). During transport release ATC checks are running . The corrections are now implemented both in the main branch and in the current release branch.                                                     | ABAP Development Tools for Eclipse: Transport Organizer or Export Customizing Transports app |
| 12     | TST      | Release Manager                 | Pull the software com- ponent to get cor- rection into already checked out main branch                                                                                                                                                 | Manage Software Components app                                                               |