Skip to content

Latest commit

 

History

History
873 lines (542 loc) · 15.7 KB

File metadata and controls

873 lines (542 loc) · 15.7 KB

Use Case 1: One Codeline in a 3-System Landscape

You can apply this setup if you have occasional development activities for larger applications where testing needs to run in parallel to development or should take place in a non-development system to ensure the solution also runs in a non-development system. In this setup, you either need to be able to pause development for a fix that has to be delivered before the next release or you have to deliver fixes as part of the next possible release.

This landscape consists of a development, quality assurance, and production system. 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 in the quality assurance system and dowloaded for use in the development system..

Starting situation for Go Live

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. Furthermore, the software component of a planned solution does not exist from the beginning. The resulting release branch is YYYY-01. Apart from this, the Go Live process does not differ from the release development processes afterwards.

Starting situation after Go Live

  • Development system DEV is based on the main branch

  • Quality Assurance system QAS and production system PRD are based on the latest release branch YYYY-<nn>. In case of a first release after the Go Live, YYYY-<nn> is YYYY-01

  • Software component relations are defined for dependencies between leading- and reuse software components in the YYYY-<nn> release

  • In case of released APIs: In the quality assurance system QAS, a check-relevant API snapshot named YYYY-<nn> was generated manually with all released APIs extracted as per the current release. Furthermore, the generated snapshot was downloaded from system QAS and uploaded to development system DEV. Finally the API snapshot was set to check-relevant in system DEV.

System QAS has always the same software state as the PRD system, unless a new change is tested and released. This means, transport requests are released in development ABAP systems only if development is completed and it is planned to import the changes to the production system.

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 regular development.

Step

System

Role

Task

Tool

0

DEV

Release Manager

At Go Live only: Create the software component and clone it initially

Manage Software Components app

If required, create a customizing transport request and tasks for the relevant business configuration expert(s).

Export Customizing Transports app

1a

DEV

Developer

Develop new functionality or a deferrable correction. All changes are collected in workbench transport requests. During development ATC checks are running and exemptions requested for false-positive findings (Requesting ATC Exemptions). Make sure to maintain new dependencies between software components in software component relations (Editing Software Component Relations).

ABAP Development Tools for Eclipse

1b

DEV

Business Configuration Expert

Maintain business configuration. All changes are collected in customizing transport requests

Maintain Business Configurations app

2

DEV

Quality Manager

Approve or reject ATC exemptions

ABAP development tools for Eclipse: ATC Exemptions

3

DEV

Release Manager

Release the transport request(s). During transport release ATC checks are running (Working with ATC During Transport Release). The changes are now in the main branch.

ABAP Development Tools for Eclipse: Transport Organizer

4

QAS

Release Manager

At Go Live: Pull software component(s) into system QAS.

After Go Live: Check out main branch of software component(s)

Manage Software Components app

5

QAS

Tester

Test the change and report test result. During testing ATC checks are running, see Working with ATC During Development.

ABAP development tools for Eclipse and custom SAP Fiori apps as well as external test tools, see Automate the Software Lifecycle Process

External documentation tool

 

 

 

If changes are required, repeat steps 1-4

 

6

QAS

Release Manager

Release decision: the changes are successfully tested and approved

External documentation tool

7

QAS

Tester

Test the change and report the test result. During testing ATC checks are running, see Working with ATC During Transport Release.

ABAP development tools for Eclipse and custom SAP Fiori apps as well as external test tools. For more information, see Automate the Software Lifecycle Management Process

External documentation tool

8

QAS

Release Manager

Check out the new release branch YYYY-<nn+1>

Manage Software Components app

9

QAS/DEV

Release Manager

In case of Released APIs: Create and generate a new API snapshot YYYY-<nn+1> for the new release in system QAS. Set the new API snapshot as check-relevant so that it will be used as reference for API compatibility checks. Afterwards download the generated snapshot from system QAS and upload it to system DEV. Finally, set the snapshot as check-relevant in system DEV as well.

Manage API Snapshots app

10

DEV

Release Manager

Check out the new release branch YYYY<nn+1> for each software component (at Go Live: YYYY-01) into system PRD

Manage Software Components

  • Development system DEV is based on the main branch
  • Quality assurance system QAS and production system PRD are based on the latest release branch YYYY-<nn>. In case of a correction after the Go Live before the second release, YYYY-<nn> is YYYY-01
  • In case of released APIs: In the quality assurance system QAS and development system DEV, a check-relevant API snapshot named YYYY-<nn> is generated with all released APIs extracted

This process differs from the previous one in the branch it is developed in. As the correction is too urgent to release it with the next development release only, it is done in the release branch. To achieve this separation, all current development activities need to be paused because the DEV system needs to check out the latest release branch instead of the main branch. That means all open transports in DEV need to be released first to save the work in progress to the main branch, so that feature development can be resumed later after the correction.

Step

System

Role

Task

Tool

1

DEV

Release Manager

Check out the release branch YYYY-<nn> for each software component

Manage Software Components app

If required, create a customizing transport request and tasks for the relevant business configuration expert(s)

Export Customizing Transports app

2

DEV

Release Manager

In case of Released APIs: Set API Snapshot created for the release YYYY-<nn> as check-relevant. For release YYYY-01 all API snapshots will be set to not check-relevant as no API snapshot is available for comparison.

Manage API Snapshots app

3a

DEV

Developer

Fix existing functionality. All changes are collected in workbench transport requests. During Development ATC checks are running and exemptions requested for false-positive findings, see Requesting ATC Exemptions.

Manage API Snapshots app

3b

DEV

Business Configuration Expert

Maintain business configuration. All changes are collected in customizing transport requests

Custom Business Configurations app

4

DEV

Quality Manager

Approve or reject ATC exemptions

ABAP Development

Tools for Eclipse: ATC Exemptions

5

DEV

Release Manager

Releases the transport requests. During transport release ATC checks) are running.

ABAP Development Tools for Eclipse: Transport Organizer or Export Customizing Transports app

6

QAS

Release Manager

Pull the software component(s) to get the correction into the already checked out release branch YYYY-<nn>

Manage Software Components app

7

QAS

Tester

Test the change and report the test result. During Testing ATC checks are running, see Working with ATC During Transport Release

ABAP Development Tools for Eclipse and custom SAP Fiori apps as well as external test tools, see Automate the Software Lifecycle Management Process.

External documentation tool

 

 

 

If changes are required, repeat steps 2-7

 

8

QAS

Release Manager

Fix is successfully tested and approved

External documentation tool

9

PRD

Release Manager

Pull the software component(s) to get the correction into the already checked out release branch YYYY-<nn>

Manage Software Components app

10

DEV

Release Manager

Check out the main branch in system DEV for each software component

Manage Software Components app

11

DEV

Release Manager

In case of Released APIs: Set API Snapshot created for the latest release as check relevant. For release YYYY-01 all API snapshots shall be set to not check-relevant as no API snapshot is available for comparison.

Manage API Snapshots app

12

DEV

Developer, Business Configuration Expert

Perform the same changes as for the correction in the main branch and release them

ABAP Development Tools for Eclipse

Maintain Business Configurations app

Export Customizing Transports app