Contents
Note: If you wish to rerun this Test Drive Script, simply pick the same element if you ended successfully and start over. If you did not end successfully pick another REXX program (TREXX02, 03 04, etc.) to use and start the script over. Any other errors will require that you contactBMC Support Central
Getting Started with SCM – BMC AMI DevX Code Pipeline
The goal of this Test Drive is to make a change to a REXX program using BMC AMI DevX Workbench for Eclipse and promote it to Production using BMC AMI DevX Code Pipeline. Code Pipeline enables developers to quickly and safely build, and test their mainframe code.
This Test Drive will take you through the following activities:
- Creating an Assignment
- Code changes
- Promotion to QA, STG and PRD
Instructions:
- This guide contains many screenshots to provide a visual reference
- Specifies every action you must take
- Please note each place that you must enter your own specific ID or number
- You must complete each step before proceeding to the next to successfully follow the guide
If at any point during your experience the host connection times out, you may need to log back into the Test Drive host connection.
In this Test Drive the screen shots provided have used specific values that may differ from your assigned values. These were provided in your email notice. Substitute your values in the screenshots.
Do This
Start your Test Drive by clicking here.
Code Changes
Your development task in this Test Drive is to change a REXX program using the DevX Workbench editor, then promote it through the Application Life-Cycle to Production.
First, you will find and add a REXX program into an Code Pipeline Assignment from which you can perform all this work.
Do This
- Change the Stream to CWEZ
- Change the Application to your assigned application value (Txxx, where xxx is your unique number)
- Note: The SubAppl field will default to Application
- Set the Level to "PRD" and ensure the Level option is set to "Selected level only" or "All found in level and above" both settings will return the same results since there is nothing above PRD
- Filter the view even further by setting the Type to CLST, this will allow you to focus only on the CLST program components available in your stream | application at the PRD level. Click Apply (circled)
The Repository View lists the TREXX Components for your application.

Do This
Scroll through the list and find TREXX01 at level PRD. Right-click on it and click Add to Assignment with Checkout.
Do This
From the Add Task dialog box (screen shot not shown), select NEW to the right of Assignment. This will allow you to create a new Assignment Container to put your REXX program into. From the Add New Assignment screen fill in the description. Click OK.
A message will be displayed providing you with your new Assignment name. Click OK.
Do This
Your new Assignment has been created and is ready to have Tasks added to it. An Assignment Container is the only Container Type in Code Pipeline that Tasks can be added to. The Assignment Container is where a developer will spend much of their time.
Our new Assignment number will appear in the Assignment field. Click OK on the Task checked out to Assignment message. (screen shot not shown)
Your Assignment has been created and you should now have a REXX program in it.
Do This
The Assignment view will open and the Task that was added will be presented. Click on the Code Pipeline Tasks view. Every operation that needs to be performed on this Task and other Components which are impacted by changing this Task (edit, impact analysis, compile, promote, deployment, etc.) can be performed from this Assignment or other Assignments.
Do This
To see the Code Pipeline Life-Cycle path structure that was constructed for the Application, click once on the Task and then click on the View Life-Cycle icon.
The REXX program in the Assignment is checked out and sitting in the DEV1 level. The Checkout Date/Time and User ID is reflected in the Task information. At checkout, a destination level for the checkout was chosen – DEV1. A picture of the Life-Cycle is presented. By choosing the DEV1 Level, you have defined the Path to Production DEV1-QA1-STG-PRD. Other versions of these Components may also exist at other levels and may be passing thru the other three paths – FIX, DEV2 or DEV3. Four paths were created for the application – one for emergencies starting at level FIX and three for development starting at DEV1, DEV2 and DEV3. The application level structure is customizable when defining the applications to Code Pipeline. Any number of paths can be defined with a minimum of three Levels.
Do This
Now that you have a Version of a REXX program the next step would be to make changes to it. To do this either right-click on TREXX01 and click Edit or simply double-click on it.
Do This
Change the source using the DevX Workbench editor. Once you have made your changes, close the DevX Workbench editor view. Click Yes to save the changes.
Do This
Note the Operation, Date/Time and User ID fields have been updated to reflect the change in the Task status.
At this point you have:
- Edited a REXX program
- Used the DevX Workbench Editor to help you make your changes
- Saved your changes
Do This
Now you are ready to promote your changes to the QA1 level. To promote the Task to the QA1 level, right-click on the Task and click Promote.
This action will create a Set Container. Sets are a special category of container that are used to conduct operations such as promotion and deploy. They are temporary and created by Code Pipeline as needed for the work. This allows you to promote subsets of Tasks within an Assignment container without the need to act on all the Tasks at once. Once you click Promote the selected Task(s) are placed in a SET container for the promotion. The Code Pipeline Set processor will:
- Perform the promotion of the source to QA1
- Cleanup the DEV1 level (source and parts if applicable)
- Perform generates, in order, of all the Task(s) in the SET which require a generation
A notification will appear in the lower right of the DevX Workbench indicating the Promotion has completed.

In the screenshot below, you can see the promote operation has completed – the Task has been promoted to QA1 (see the Level value and the Operation in the Task List). The SET processor performed a promotion. Let us assume all the testing at the QA1 level has been successfully completed and you are ready to promote to the STG level.

Do This
Select the Task as before, right-click and click Promote.
In the screenshot above, you can see the promote operation has completed – the Task has been promoted to STG (see the Level value and the Operation in the Task List as well as the highlighted Level in the picture). Note the Operation column shows Promote as the last operation. The SET processor performed a promotion. The Code Pipeline Set processor:
- Performed the promotions of all the parts to STG
- Cleaned up the QA1 level (source and parts if applicable)
Assuming all the testing at the STG level has been successfully completed, you are now ready to promote the Tasks to the PRD level.
Do This
Select the Task as before, right-click on it and select Promote.
In this screenshot, as the Task(s) in the SET are being processed, you can see:
- The Task will be selected for a Promote
- Code Pipeline will start a SET processor for this SET
- The REXX program will be promoted
You can monitor the progress by clicking the refresh button.
Note: Code Pipeline uses your installation's security (RACF/Top Secret/ACF2) to manage process security (granular control of permissions by user and function). Process security defines who can perform which commands at which levels in the Life-Cycle. While a Developer can perhaps request the Promote operation when promoting to the STG and QA1 levels, perhaps a Change Coordinator role is responsible for requesting the Promotion to PRD. One or more approvals can be put in place for each application/level promotion, including but not limited to Application Manager, QA Manager, Impact, DBA, JOB Scheduling, Peer, or VP roles. A Set container will be created. The selected Task(s) are being placed in a SET container for the promotion.
The Code Pipeline Set processor will:
- Perform the promotions of all the parts to the PRD Level
- Cleanup the STG level source and parts as applicable
A notification will appear in the lower right of the DevX Workbench indicating the application has been configured to require an approval for the promotion to PRD. The Tasks are locked in a SET for a Promote process, but the SET needs approval before the promote can proceed.

Below the STATUS shows the Tasks are locked in a SET for a Promote process but the SET needs approval before the promote can proceed.

The Approval can be performed from:
- DevX Workbench/Code Pipeline
- TSO/Code Pipeline in the ISPF interface
- Web interface (including mobile browser)
Do This
For this Test Drive you will do the approval from DevX Workbench/Code Pipeline. Code Pipeline will now perform the promotion of the Tasks collected in the SET to the PRD Level. To perform the approval, click on the task, then right-click on the STG box in the Life-Cycle diagram. Click "Approve".
You can see in the updated screen below that:
- SET processing has completed
- The REXX has been processed for a Promotion and is now at the PRD level
The Promotion to the PRD level has completed. The source for the REXX was moved to the PRD level Life-Cycle libraries and the STG level libraries were cleaned up as appropriate.

Task History and Auditing
As Tasks are processed thru the Life-Cycle, Code Pipeline records the "major" operations performed against the Task, who performed the operation, and the date/time the operation was performed. At any time, a Task's history can be viewed.
Do This
To view the Operation history for the TREXX01 Task, right-click on the Task, mouse over "VIEW" and click "Task History".
Do This
A new view will open and display the operations which were performed against this Version of Component TREXX01 in the TXXX Application. This history is part of the Code Pipeline Audit trail which is kept forever and can be viewed at any time. Click the date/time column to sort. Close the "Code Pipeline Task History" View by Clicking on the "Close window" button. Code Pipeline keeps the history of all the versions of a Component.
Do This
To view the existing versions of the REXX program TREXX01, right-click on the Task, mouse over "View" and click "Component Versions".
The "Code Pipeline Component Versions" View will open, displaying all the versions of your Component. The display shows for all the Versions of the Component.
- Code Pipeline internally assigned Version number
- Base Version number that the Component is based on
- Replace Version number
Do This
In the configuration of the application, the number of source versions kept at the PRD level is "All", so all the versions listed below have the source associated with the version stored in the Code Pipeline Warehouse. Click the Show Inactive Versions button.
Do This
When changes are made to Prod, it is possible for those new Production changes to fail miserably such that management wants the changes backed out. To back-out in Code Pipeline, select the Task in your Assignment, right-Click on the selected Task and Click on "Fallback". Double-click on any version to view a version's source. Close the DevX Workbench editor window and the "Code Pipeline Component Version" View by clicking on the "Close Window" buttons.
A Fallback operation will archive the current Production level source and parts into the Code Pipeline Warehouse and then bring back the previous version of the source and parts and Deploy (where required). (The Fallback can be on selected Tasks in a Release or the entire Release). A Fallback is different from a Regress. A Regress will copy the code back to the prior level cleaning up the level it was at, whereas a Fallback will bring code out of the warehouse at that level and restore a prior release from the warehouse to be the current release at that level.
Do This
Click OK to confirm the Fallback operation.
Do This
Before the Fallback processing can happen, PRD level approvals are required. Note the status of each of the tasks. The Set is awaiting approval. To issue the approval, click once on the inactive task, then right-click on the PRD box in the Life-Cycle diagram and click Approve.
Do This
The Set processor will begin processing the Fallback operation. The Set has backed up the Prod source and reinstated the previous version and Deployed (where necessary). A Fallback does not necessarily have to be to the -1 version. Older versions can be selected for the Fallback as well. To confirm the Fallback has worked, look at the "Code Pipeline Component Versions" View (seen below). To do this, Right-Click on the active version of TREXX01, mouse over "View" and click "Component Versions". Note below the Tasks now reflect a Fallback has been performed (FB in the Operation column for the active task) and the old task is now inactive (designated by the slash through the icon in the first column). If you do not see the inactive tasks, please click on the inactive button (circled below).
Note the current PRD version number is one less than the previously listed PRD version (circled above in the Internal version column) – that is the current PRD version is the version that was there prior to your promotion and the -1 version is the version you initially promoted.
As a Developer you are now finished with your Assignment, so it can be closed. Assignments are closed manually and are usually closed to unclutter the Code Pipeline Container List View. Click on the Code Pipeline Containers View.
Do This
To Close your Assignment, right-click on your Assignment and click "Close".
A Close confirmation panel is presented.
Do This
Click OK to complete the Close.
For audit purposes, Closed Assignments, Sets, and Releases are never deleted from Code Pipeline. They are just filtered out of the standard day-to-day filtering. Once an Assignment, Set, or Release is closed it is removed from the standard filtered list, but it is still part of Code Pipeline history and can be viewed at any time.
Do This
To view the Assignment you just closed, click on the Code Pipeline Containers view, click on the Filter icon.
Do This
On the Containers Filter dialog, check Assignment and uncheck Release and Set. Specify your Application and your TD TSO id under Application and Owner. Check "Show closed containers". Click OK.
The list of Containers in the Code Pipeline Containers View will update and present your closed Assignment.
Do This
Click on your Assignment to view it.
The Tasks you worked on as part of the development in the Assignment is displayed within the Code Pipeline Assignment View. This information is kept forever and you can group your Tasks or display other Assignments from this view. Also note it alerts you to the fact this is a closed Assignment.

Do This
Click on the Code Pipeline Containers view again. Now change your containers filter to no longer show closed containers: Uncheck Show closed containers. Click OK.
You are done! Your job has been to change a REXX program and promote to Production. As a part of this exercise, you have been able to use DevX Workbench and Code Pipeline to execute a workflow:
- Created an Assignment
- Added and checked out a REXX program
- Changed it using the DevX Workbench Editor
- Promoted the Task from DEV1 to QA1
- Promoted the Task from QA1 to STG
- Promoted the Task from STG to PRD
- Performed an approval
- Performed a Fallback
- Closed your Assignment to complete the change cycle
- Searched for closed containers
Congratulations! This completes the Code Pipeline tutorial for BMC Test Drive.