Changeman is version control utility of HOUSEHOLD which manages and automates the process of implementing applications/systems software from a development environment to the production environment. Changeman uses the strategy of packages which will include all the information which has to be move into the production environment. Change man does this job by managing movement of change package information in five distinct environments:

1) Development The development environment is used for application program development. The development environment may or may not exists under the control of changeman
2) Staging The staging environment is a transition environment, where all the testing and editing of the work libraries are initiated
3) Baseline The baseline environment is a copy of the current production libraries which are managed by changeman. These libraries are used in the case of application testing
4) Production The production environment is a set of libraries where the production version of application resides
5) Backup The backup environment consists of the libraries which contains the previous versions of production software

A changeman package is a logical definition for the collection of items associated with a change or development request. The associated items include work data sets which are managed by changeman. In a typical change request the following can be the associated members:

1) Source Code
2) Copy Books
3) Load Modules
4) DBRM libraries
5) Service request
6) JCL

When a change man package is created, it creates a set of data sets to store all the associated items or termed as COMPONENTS. The data sets are usually a Partitioned Organization ones with a unique naming convention. All the changeman controlled data sets will have a high level qualifier as OIN1. The data set will be something like.

PICM.CP000000.OIN1. #NNNNNN.??? ,
where #NNNNNNN is the Changeman package number which the item or component is associated, and ??? is the associated member or component type.

Project Pneumonic:

Within the Package Master, HOUSEHOLD has divided work up by ‘Project Mnemonics’. Projects have been used to divide change management by application support groups like HLFG, OIN1 etc. There is internal security within CM that allows specifically named components to belong only to one project. For example, a payroll source member may be secured so that only payroll projects Pneumonic are authorized to access it.

There are different stages before installing the package and they are DEVelopment, PROmtion, AUDit trailing, FReeZing, APProval etc. When a package is created it will be in DEV status, once the modules/programs are checked into the package and promoted to test, the package will be in promote status. AUDit trailing will be done for that package to make sure that everything is okay. Later the package will be FRoZEn and it will be in FRZ status. Once the package gets to FRZ status nothing can be done to the programs/modules involved with it. The last stage is APProval state, i.e., the managers here have to approve our changes and once all the approvals are obtained the package will be moved into production on the install date specified while creating the package. This is just a brief idea of how the changeman works.

WORKING WITH CHANGEMAN
The changeman utility can be accessed from the ISPF main menu by giving a C. The following screen will be displayed

— CHANGE MAN 4.1.6P PRIMARY OPTION MENU — NOTIFICATION UPDATED OPTION ===>
1 Build – Create, update and review package data
2 Freeze – Freeze or unfreeze a package
3 Promote – Promote or demote a package
4 Approve – Approve or reject a package
5 List – Display (to process) package list
B Backout – Back out a package in production
C CDF – Concurrent Development Facility
D Delete – Delete or undelete a package
L Log – Browse the activity log
N Notify – Browse the Global Notification File
O OFMlist – Online Forms package list
Q Query – Query packages, components and relationships
R Revert – Revert a package to DEV status
T Tutorial – Display information about Change Man
X Exit – Exit Change Man

Press ENTER to process; enter END command to exit.

The menu itself is self explanatory regarding the options and their functions. Usually a Production move involves a change man cycles which consists of:

1) Creating a Package which also involves the supplying of general information about the changes or the development activity to be performed. Packages will be created by the Module Leaders, Project Leaders or Project Managers.

2) The package contains a list of programs that we refer as ITEM or COMPONENT which has to be attached to the package. This is done either through a CHECK OUT of the ITEM or to STAGE (is discussed below in detail)

3) The programs or the item is edited or modified as per the requirements and compiled(change man generates the JCLs for compiling a component and submits the job for compilation).

4) After successfully compiling the components in your package, you may use the Promote function. This function copies components into appropriate test libraries. When promoting for the first time, you should perform a FULL PROMOTE, which takes all members in your package and promotes them to appropriate test libraries. This step is needed to test the component in your test regions. If errors are detected during testing, you can DEMOTE any or all of the members in your package. After corrections have been made, You can re-PROMOTE them to test environment.

5) When all of the components in a change package have been tested and user sign-off has been obtained, you must submit the change package for AUDIT. The audit process verifies whether or not all of your components are in synch. For example, if no changes are made to a component, the AUDIT will detect that staging and baseline libraries are duplicate.

6) After running a successful audit, the next step is to FREEZE the package. A change package must been in FRZ status before the Approval process can take place. Once a package is in the FROZEN stage you can only browse the components

7) All normal ‘planned’ application packages must be approved by PEER, MANAGER, APPLICATIONS CCB Approvers and CHANGE MANAGEMNENT Implementers.

8) Approvals must be completed prior to the Implementation date/time.

9) Once the necessary approvals have been obtained by CM, the package is ready for installation. During the installation, CM submits the migration jobs to copy all the components from staging libraries to production libraries. Once this is complete, CM sends a ‘BASELINE RIPPLE’ message to the creator of the package. This indicates all current and backup versions have been successfully updated. In the event of a back-out, CM will take the current version (0) generation and copy the -1 version into baseline

To access a particular package where you have the components to be edited or changed, note the Package number it will be usually like OIN1000060, OIN1000092
etc. Enter the option ‘5’(LIST) from the changeman menu got through ISPF main menu. The below screen is the outline when you enter on the LIST option

————————— PACKAGE LIST PARAMETERS —————————
COMMAND ===>
SPECIFY SELECTION CRITERIA:
PACKAGE ID ===> OIN1000092 (Full name or pattern; blank for list,
or ‘*’ for all packages)
PACKAGE STATUS ===> (DEV, FRZ, APR, REJ, DIS, INS,
BAS, BAK, OPN, CLO, TCC or DEL)
CREATOR’S TSO-ID ===>
WORK REQUEST ID ===>
DEPARTMENT ===>
PACKAGE LEVEL ===> (1-Simple, 2-Complex,
3-Super, 4-Participating)
PACKAGE TYPE ===> (Planned or Unplanned)
PACKAGE TIME SPAN ===> (Permanent or Temporary)
FROM INSTALL DATE ===> (YYYYMMDD)
TO INSTALL DATE ===> (YYYYMMDD)
FROM CREATION DATE ===> (YYYYMMDD)
TO CREATION DATE ===> (YYYYMMDD)
OTHER PARAMETERS ===> (Y/N)
Press ENTER to process; Enter END command to exit.

The PACKAGE-ID will be the package id which was last accessed by you. If you want to accesses a package OIN1000092. Enter the package OIN1000092 in the package-id field and hit enter which will display you the package list screen which is displayed below.

COMMAND ===> SCROLL ===> CSR
PACKAGE ID STA INSTALL LVL TYPE WORK REQUEST DEPT PROMOTE AUD CREATOR
10) __ OIN1000092 DEV 20001231 SMPL PLN/PRM HIERARCHY HFC LEVEL1 VEN631

There are two types of commands which can be entered first is on the command line and second on the underscores before the package name. Here are some of the command commands which you usually enter on the package prompts
1) S1 Stage components (Dev Lib list)
2) C1 Check out components (Baseline/promotion)
3) S2 Stage components (Package list)
4) QP Query change package information
5) AP Audit a package
6) PD Promotion and Demotion
7) F1 Freezing a package online

Check out Components (Option C1)

If a component (program or copybook or subroutine, assembler table etc) is present in the baseline library which is nothing but the group of changeman Partitioned datasets (PDS). A component when checked out into a changeman package should be assigned with a type. The component type should be correct because as mentioned previously changeman generates JCLS to compile the component automatically. To tell changeman to use the correct procedure to use for compilation we should specify the type. For e.g. if we are having a simple COBOL program, then the compilation should be done only to create and a load module so changeman identifies this and uses a procedure. If there is COBOL program with DB2 access then changeman should be told to compile the program with a DB2 option i.e. generate a JCL which uses procedure for compiling a DB2 cobol program. So depending on the type the sources for the baseline library are defined to change.. As discussed previously, For each type we incorporate into a package it will go as member to a partitioned group of datasets created at the time of creating the package. The following are component types supported by changeman.

LIB DESCRIPTION
_ HCA CICS Online Assembler
_ HCC CICS Online COBOL: load to CLM
_ HC2 CICS Online COBOL 2: load to CLM
_ HCD CICS Online COBOL w/DB2: load to CLM
_ HC4 CICS Online COBOL 2 w/DB2: load to CLM
_ HC5 CICS Online COBOL LE w/DB2: load to CLM
_ HC6 CICS Online COBOL LE: load to CL6
_ NDM NDM Processes (sys5.ndm.process)
_ NDJ NDM Jobs (HFCP.JOBLIB)
_ HBA Batch Assembler
_ HBC Batch COBOL: load to BLM
_ HB2 Batch COBOL 2: load to BLM
_ HBD Batch COBOL w/DB2: load to BLM
_ HB3 Batch COBOL LE
_ HB4 Batch COBOL 2 w/DB2: load to BLM
_ HB5 Batch COBOL 370 w/DB2: load to BLM
_ HCM CICS Online MAPs: load to MAP & CP1
_ DBR DBRM Library DB2 System
_ DBB DB2 Bind Control Cards for Plans & Pkgs
_ DCL DCLGEN Copybooks
_ RUN DB2 Run Cards

_ BLM Batch Load Module
_ CLM CICS Online Load Module
_ CL6 CICS Online Load Module
_ MAP Loadlib CICS MAPS
_ CT1 CICS Translator for Copybooks: load to CP1
_ CP1 Copy Books:
_ JB1 JOBs:
_ PR1 PROCs:
_ CC1 Control Cards:
_ CC2 Control Cards (HFCP.CTLCARD)
_ DMS DMS Control Cards
_ LST Compile Listing Library
_ XP1 Express: Move from test to production
_ CPY Dummy, required by Change Man. DO NOT USE
_ LOD Dummy, required by Change Man. DO NOT USE

The following are the corresponding libraries or partitioned datasets which are created for a sample package OIN1000092

LIB DEVELOPMENT STAGING LIBRARY
HB5 PICM.CP000000.OIN1.#000092.HB5
DBR PICM.CP000000.OIN1.#000092.DBR
DBB PICM.CP000000.OIN1.#000092.DBB
RUN PICM.CP000000.OIN1.#000092.RUN
BLM PICM.CP000000.OIN1.#000092.BLM
CP1 PICM.CP000000.OIN1.#000092.CP1
JB1 PICM.CP000000.OIN1.#000092.JB1
PR1 PICM.CP000000.OIN1.#000092.PR1
LST PICM.CP000000.OIN1.#000092.LST
CPY PICM.CP000000.OIN1.#000092.CPY
LOD PICM.CP000000.OIN1.#000092.LOD

The following are the baseline libraries that changeman searches when you request change man to check out any component the type and the corresponding datasets searched are also mentioned.

LIB BASELINE LIBRARY NAME
HCA PO00.CP000000.HFNP.SRX
HCC PO00.CP000000.HFNP.SRX
HC2 PO00.CP000000.HFNP.SRX
HCD PO00.CP000000.HFNP.SRX
HC4 PO00.CP000000.HFNP.SRX
HC5 PO00.CP000000.HFNP.SRX
HC6 PO00.CP000000.HFNP.SRX
NDJ HLIC.JOBLIB
NDM SYS5.NDM.PROCESS
HBA PO00.CP000000.HFNP.SRX
HBC PO00.CP000000.HFNP.SRX
HB2 PO00.CP000000.HFNP.SRX
HB3 PO00.CP000000.HFNP.SRX
HBD PO00.CP000000.HFNP.SRX
HB5 PO00.CP000000.HFNP.SRX

HB4 PO00.CP000000.HFNP.SRX
HCM PO00.CP000000.HFNP.SRX
DBR PO00.CP000000.HFNP.DBR
DBB PO00.CP000000.HFNP.BND
DCL PO00.CP000000.HFNP.DCL
RUN PO00.CP000000.HFNP.RUN
BLM PO00.CP000000.HFNP.LNK
CLM PO00.CP000000.HFNP.PGM
CL6 PO00.CP000000.HFNP.PGM
MAP PO00.CP000000.HFNP.PGM
CT1 PO00.CP000000.HFNP.SRX
CP1 PO00.CP000000.HFNP.CPY
JB1 PO00.CP000000.HFNP.JCL
PR1 PO00.CP000000.HFNP.PRC
LST PO00.CP000000.HFNP.LST
CC1 PO00.CP000000.HFNP.CTC
CC2 HFCP.CTLCARD
DMS PO00.CP000000.HFNP.DMS
XP1 SYS4.CHGMAN.DUMMY.EXPRESS
LOD SYS4.CHGMAN.DUMMY.LOD
CPY SYS4.CHGMAN.DUMMY.CPY

Coming back to the steps for checking out the component. Let us take the example of checking out a component POTEB010 which is BATCH COBOL PROGRAM WHICH USES DB2. Enter ‘C1’ at the package prompt the following screen will be displayed.
———————————– CHECKOUT ———————————-
OPTION ===>

L – List libraries where component is located

PACKAGE ID ===> OIN1000092 (Package name)

COMPONENT NAME ===> POTEB010 (Name or Pattern for list; «ABCDEF» OR «ABC*»)
Pattern of only «*» Checks Out all Components
related to Library Type.
LIBRARY TYPE ===> HB5 (Blank for list)
LANGUAGE ===> (Applies to source code; * for list)
SOURCE LIBRARY ===> 0 (Baseline 0 to -n; Promotion +1 to +n)

CHECK OUT TO ===> S (S-Staging library, P-Personal library)
PERSONAL LIBRARY ===>
LIBRARY DSORG ===> (Personal library: PDS, PDSE, SEQ, PAN, LIB)

CONFIRM REQUEST ===> YES (Y/N)
CHECKOUT MODE ===> 1 (1-Online, 2-Batch)
LOCK COMPONENT ===> NO (Y/N)

Press ENTER to process; Enter END command to exit.
. . . . . . . . . . . . . . . . . . . . . . . . . . .
1) If you don’t enter a component name, the change man will display the list of components which can be checked out. This is done by concatenating all the members in the baseline libraries mentioned above or you can enter even a pattern corresponding to the items, like you want a list of component available in the baseline with starting with PO. Enter ‘PO*’ at the component name field.
2) After selecting the component which you want to check out, the library type has to be entered, again if you don’t enter the library type, changeman prompts you on all the library types available. For our component POTEB010, the library type is HB5 because the component is COBOL370 program with DB2.
3) Language field is for specifying the language of the component which you are checking out, usually change man assumes the language according to the library type selected.
4) Confirming the request specifies the overlay of same component being checked out in any other package. If it is yes change man prompts that the component is already checked out in another package specifying the package number.
5) The batch/foreground gives you an option to check out in the batch or On line mode

Once you have done with the field entries ENTER to start the process of checking out

——————– CHECKOUT —————- LANGUAGE ASSUMED
OPTION ===>

L – List libraries where component is located

PACKAGE ID ===> OIN1000092 (Package or Application name)
COMPONENT NAME ===> POTEB010 (Blank or pattern for list;
* for all members)
LIBRARY TYPE ===> HB5 (Blank for list)
LANGUAGE ===> (Applies to source code; * for list)
SOURCE LIBRARY ===> 0 (Baseline 0 to -n; Promotion +1 to +n)
CHECK OUT TO ===> S (S-Staging library, P-Personal library)
PERSONAL LIBRARY ===>
LIBRARY DSORG ===> (Personal library: PDS, SEQ, PAN, LIB)
CONFIRM REQUEST ===> YES (Y/N)
CHECKOUT MODE ===> 1 (1-Online, 2-Batch)

Press ENTER to process; Enter END command to exit..
The message termed ‘CHECKED OUT’ or ‘LANGUAGE ASSUMED’(as in this case) may be displayed in the top right corner of the panel. Once this message comes when you are doing an online check out the same has been done by change man. If it is a batch mode then change man will prompt you about the completion of a job which confirms that the check out has been done. Note that while checking out the change man doesn’t compile the component.

Staging a component (S1)
Staging is usually done when a program is not available in the baseline libraries supported by changeman. Usual examples are when you are trying to develop a new program and put in the change man to move into production. The procedure adopted is to write the program as a member in your personal PDS and stage using the ‘S1’ option into the packages. Again let us take the example of staging an example component for better understanding, this time the component be

POTEB020 which is COBOL370 BATCH PROGRAM WHICH USES DB2, so the type is HB5. Typing ‘S1’ in the package prompt gives you a screen display below
———————– STAGE: FROM DEVELOPMENT —————– COMMAND ===>

PACKAGE ID: OIN1000092 STATUS: DEV INSTALL DATE: 20000903
ISPF LIBRARY:
PROJECT ===>
GROUP ===>
TYPE ===>
MEMBER ===> (Blank or pattern for list; * for all members)
OTHER PARTITIONED OR SEQUENTIAL DATASET:
DATASET NAME ===>
ORGANIZATION ===> (PDS, SEQ, PAN, LIB, OTH)
LIBRARY TYPE ===> (Blank for list)
LANGUAGE ===> (Blank for list; applies to source code)
STAGE NAME ===> (Optional if organization not SEQ)
CONFIRM REQUEST ===> YES (Y/N)
STAGE MODE ===> 1 (1-Foreground, 2-Batch)
SUPPRESS MESSAGES ===> (Y/N; applies to batch stage)
As described previously changeman allows you to stage from the PANVALET LIBRARY, PARTITIONED DATASETS(PERSONAL OR OTHERS),SEQUENTIAL FILE as a component to package. Specify the location of the component you want to stage in the appropriate fields and as in the check out option specify the library type and language of the component. In our example case of POTEB020 it is HB5. Now IF you are staging from the PANVALET library give the ORGANIZATION as ‘PAN’ and if you are staging from a sequential dataset then mention organization as ‘SEQ’ and mention the name in which you want to assign for the component in the package in the STAGE NAME. so after entering the request my screen will appear as
——————— STAGE: FROM DEVELOPMENT ——————- COMMAND ===>

PACKAGE ID: OIN1000092 STATUS: DEV INSTALL DATE: 20000903
ISPF LIBRARY:
PROJECT ===>
GROUP ===>
TYPE ===>
MEMBER ===> (Blank or pattern for list; * for all members)

OTHER PARTITIONED OR SEQUENTIAL DATASET:
DATASET NAME ===> ‘dh47.ven631.pgms(poteb020)’
ORGANIZATION ===> pds (PDS, SEQ, PAN, LIB, OTH)
LIBRARY TYPE ===> HB5 (Blank for list)
LANGUAGE ===> cobol370 (Blank for list;applies to source code)
STAGE NAME ===> (Optional if organization not SEQ)
CONFIRM REQUEST ===> YES (Y/N)
STAGE MODE ===> 1 (1-Foreground, 2-Batch)
SUPPRESS MESSAGES ===> (Y/N; applies to batch stage)

Unlike checkout staging compiles the program before staging into the package specified, so when you ‘ENTER’ to process the staging of the component in this screen it will show you the options for compilations, which is similar to compilation screens of the compile option of a component from a package. The first screen will appear as shown below.
————————- STAGE: COMPILE AND LINK EDIT ————————
COMMAND ===>

PACKAGE ID: OIN1000092 STATUS: DEV INSTALL DATE: 20001231

STAGED NAME: POTEB020
LIBRARY TYPE: HB5 – Batch COBOL 370 w/DB2: load to BLM
LANGUAGE: COBOL370
DATASET NAME: DH47.VEN631.PGMS

COMPILE PROCEDURE ===> COBOL370 (Blank for list; ? for designated procedure)
COMPILE PARMS ===>
(Enter JOB Name for PROCs requiring associated JOB for JCLCHECK)
LINK EDIT PARMS ===>
DB2 PRE-COMPILE ===> Y (Y/N)
OTHER OPTIONS ===> YES (Y to display other options)

JOB STATEMENT INFORMATION:
===> //VEN631E JOB (H54D,ITIT),’RAVI’, <=== CHANGE ACCORDINGLY_____
===> // , <=== CHANGE ACCORDINGLY_____
===> // NOTIFY=VEN631, <=== CHANGE ACCORDINGLY_____
===> // MSGCLASS=T <=== CHANGE ACCORDINGLY_____
Press ENTER to process; Enter END command to exit.
. . . . . . . . . . . . . . . . . . . . . . . . . . .

Precaution to be taken in this screen is to verify if the Job log is mentioned in the JOB STATEMENT information, if not please key in the above information changing the user-id of VEN631 to yours. The above is initial screen displayed before submitting a job of compilation and link edit. ‘ENTER’ in the screen will show you the compilation and link-edit parameters that is required for the program.

If the program has a DB2 attachment then the next screen will ask you to select the DB2 system where the program is going to be attached. Select the DB2 system by saying a ‘S’ in the prompt of the systems as below and ‘ENTER’

—- DB2 PHYSICAL SUBSYSTEMS ———- Row 1 to 4 of 4
COMMAND ===> SCROLL ===> CSR
VERSION ===> ________________________________________________________

Enter S to select a DB2 subsystem and continue.
Enter END command to exit.

DB2 REMOTE DB2 SYSTEM
SUBSYS SITE LOAD LIBRARY
_ DB2T SYS4.DB2.DB2D.SDSNLOAD
_ DSNP SYS4.DB2.DSNP.SDSNLOAD
S DB2D SYS4.DB2.DB2D.SDSNLOAD
_ DBLP DB2PHFC.DSNLOAD

******************************* Bottom of data ********************************

The next screen shows the parameters of the COMPILATION AND LINK EDIT

—————————– STAGE: USER OPTIONS —————————–
COMMAND ===>

NAME: POTEB999 TYPE: HB5 LANGUAGE: COBOL370

COMPILE ONLY ===> ??? IMS DLITCBL ENTRY ===>
CICS PRE-COMPILE ===> DROP INCLUDE STMTS ===>
EASYTRIEVE NO NAME ===> XPEDITER COMPILE ===>
FORMAT TO IMSTEST ===> INCLUDE MQSERIES ===>
(TEST MFS IS DEFAULT)

JCK FULL LISTING ===> USER OPTION 10 ===>
USER OPTION 11 ===> USER OPTION 12 ===>
USER OPTION 13 ===> USER OPTION 14 ===>
USER OPTION 15 ===> USER OPTION 16 ===>
USER OPTION 17 ===> USER OPTION 18 ===>
USER OPTION 19 ===> USER OPTION 20 ===>

Use Y or N to select or deselect additional processing options;
Press ENTER to continue; Enter END command to exit.

. . . . . . . . . . . . . . . . . . . . . . . . . . .
The first two fields are generally blank.
XPEDITER This field specifies whether the program has to be compiled with the debug XPEDITE option or not

Hitting ‘Enter’ in this screen will submit a job for compilation. Note down the job name and Job number for the reference for any compilation and link edit mistakes.

The extra step you should do in the checkout is to edit and recompile so that it will be in ready for testing.

PACKAGE LIST(S2)
Package list is to view the components attached with the package. To view the package list on the package prompt enter the ‘S2’ as displayed below
—————————– CHANGE PACKAGE LIST ———— Row 1 to 1 of 1
COMMAND ===> SCROLL ===> CSR
PACKAGE ID STA INSTALL LVL TYPE WORK REQUEST DEPT PROMOTE AUD CREATOR
S2 OIN1000187 DEV 20001231 SMPL PLN/PRM HTS VEN631
******************************* Bottom of data ********************************

You will be getting a screen as displayed below showing the list of members.

————————- STAGE: OIN1000023 COMPONENTS ——- Row 1 to 3 of 3
COMMAND ===> SCROLL ===> CSR

NAME TYPE STATUS CHANGED LANGUAGE PROCNAME ID REQUEST
__ BUSUNIT DBB ACTIVE 20001030 080517 VEN631
__ BUSUNIT HB5 ACTIVE 20001102 083720 COBOL370 COBOL370 VEN631
__ POTEB020 HB5 ACTIVE 20001101 125342 COBOL2 COBOL370 VEN631
******************************* Bottom of data ********************************
The Members of the package is displayed in the alphabetic order, The various columns specifies characteristic of the Components.

Name : Specifies the name of the component
Type : Specifies the library type of the component
Status :Specifies the current status of the component saying where it is compiled(ACTIVE), edited but not compiled (INCOMP),Frozen (FROZEN),Checked out(Check out).
Changed : Specifies the date and time when the component was last modified
Language: Language of the Component
Procname: Procedure used to compile the component when submitting a job for compilation
ID : Indicates the ID of the person who has last compiled, edited or
promoted the component.
Request : Message field which prints the request who have made to the
component if you are doing some kind of editing, browsing etc.

Editing, Browse and recompiling a Component

After doing a list on the components you may have to edit, browse or recompile the component according to the need. For editing the component first position the cursor on the component’s prompt on the screen mentioned and Enter a ‘E’ , the screen opens the component for editing, after editing if you want to save the changes you have to go through a compilation cycle (mentioned above) other wise all the changes will be lost. Change man automatically indicates the screens for recompilation (mentioned above) plus two screens ahead of compilation screens showing the changes made. Do the full cycle of compilation, even though you are sure that there will be compilation errors.
Let us take for example you are going to edit the component POTEB020 in the above package. Put an ‘E’ in from of the component as displayed below and hit ‘Enter’

————————- STAGE: OIN1000023 COMPONENTS ——- Row 1 to 3 of 3
COMMAND ===> SCROLL ===> CSR
NAME TYPE STATUS CHANGED LANGUAGE PROCNAME ID REQUEST
_ BUSUNIT DBB ACTIVE 20001030 080517 VEN631
__ BUSUNIT HB5 ACTIVE 20001102 083720 COBOL370 COBOL370 VEN631
E POTEB020 HB5 ACTIVE 20001101 125342 COBOL2 COBOL370 VEN631
******************************* Bottom of data ********************************
You will get the edit screen for the POTEB020 program showing the source code. Let us say you have edited the programs name to ‘XXXX’, When you end the editing process the next screen displayed will show you where the changes were made like below.

The differences are mentioned with a ‘D’ and ‘I’ indicating Deleted and Inserted lines in the old existing component and the changed component respectively. Press the function key ‘F3’ to quit from this screen
Menu Utilities Compilers Help

BROWSE D131.VEN631.CMN00307.T1604049.OUTLIST Line 00000000 Col 001 080
Command ===> Scroll ===> CSR
********************************* Top of Data **********************************
S E R C M P A R (MVS-3.1.1 – 1997/213) CHSERV THURSDAY NOVE
SYSUT1=PICM.CP000000.OIN1.#000175.HB2(CELETRS),SYSUT2=D131.VEN631.CMN00307.T1604
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. POTEB020.
++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>
D 000300 AUTHOR. Ravi K Gummadapu.
——–|—.—-1—-.—-2—-.—-3—-.—-4—-.—-5—-.—-6—-.—-7–
I 000300 AUTHOR. Ravi K Gummadapu..
++++++++|+++.+<++1++++.++++2++++.++++3++++.++++4++++.++++5++++.++++6++++.++++7+>

000400******************************************************************
000500* 08/15/99 SR00084 – CUSTOMER SERVICE LETTER PROJECT
000600* EXTRACT CUSTOMER RECORDS FOR THOSE WHO HAVE INSURANCE ON
000700* THEIR LOANS. LETTERS WILL BE GENERATED BASED ON THE FILE
000800* CREATED IN THIS PROGRAM.
SER71I – END OF TEXT ON FILE SYSUT1
SER72I – END OF TEXT ON FILE SYSUT2
SER75I – RECORDS PROCESSED: SYSUT1(257)/SYSUT2(257),DIFFERENCES(1)
. . . . . . . . . . . . . . . . . . . . . . . . . . .
Pressing the function key ‘F3’ gives you the below screen which queries you to keep the outlist dataset,to print it or to delete. Usually the option is to delete ‘D’ the outlist dataset showing the difference.

———————— COMPARISON REPORT DISPOSITION ————————
OPTION ===>

REPORT DATASET NAME: ‘D131.VEN631.CMN00307.T1604049.OUTLIST’

REPORT DISPOSITION ===> D D – Delete
K – Keep
PD – Print and Delete
PK – Print and Keep

JOB STATEMENT INFORMATION IF DISPOSITION IS PD OR PK:
===> //VEN631E JOB (H54D,ITIT),’RAVI’, <=== CHANGE ACCORDINGLY_____
===> // , <=== CHANGE ACCORDINGLY_____
===> // NOTIFY=VEN631, <=== CHANGE ACCORDINGLY_____
===> // MSGCLASS=T <=== CHANGE ACCORDINGLY_____

Press ENTER or END to process
Enter CANCEL command to exit without saving changes.
. . . . . . . . . . . . . . . . . . . . . . . . . . .

Then what follows will be compilation and Link-edit screen discussed previously.

To browse a Component Just put ‘B’ in the prompt of the component and enter it will display you the component contents.
To recompile the component put a ‘R’ in the prompt of the component and Enter to get the same compile screens mentioned above. This is usually done when you want to recompile without editing the component. A component can be recompiled only when the status of the component is in the ‘ACTIVE’ or ‘INCOMP’ stage.
Note: When a package is FROZEN or when the install date has elapsed then the component in the package are unusable until the status is changed or install date is modified.

What does Compilation do to the component?

When a component is edit or recompiled, the status of the component becomes INCOMP. If the Compilation is successfully, the status changes back to ACTIVE. This can be seen only be refreshing the PACKAGE LIST., i.e. by saying ‘F3’ in the package list and entering the package list command ‘S2’ again. Compilation and link-edit creates a load module in the package PDS i.e. it creates a load module and stores it in the load library created by the package at the time of package’s creation.

PROMOTION AND DEMOTION(PD)

For testing purpose, it is needed that all the load modules created should be present in the test load libraries, and in case of the DB2 programs a plan has to be created in addition to the load-module. All this functionality are done when you are PROMOTING a component. DEMOTING reverses the previous promotion activity and restores the previously existing load libraries. When you are promoting the components in the package, you have the option for promoting all the components or promoting just one component or a list of components at a time. But ensure that before doing the Promotion the component is compiled successfully without any errors. For PROMOTING ENTER A ‘PD’ in the package list screen after ending the ‘S2’ option i.e. on the screen which looks like the below displayed one

NOTE: First time Promoting a package should be FULL PROMOTION.
—————————– CHANGE PACKAGE LIST ———— Row 1 to 1 of 1
COMMAND ===> SCROLL ===> CSR
PACKAGE ID STA INSTALL LVL TYPE WORK REQUEST DEPT PROMOTE AUD CREATOR
PD OIN1000023 DEV 20001231 SMPL PLN/PRM HTS VEN631
******************************* Bottom of data ********************************

It will prompt you with a panel display below which allows to specify the options of Promotion, Demotion or Overlay(whether you are going to overlay some other’s load module or not). The columns under the entry fields mentions the history of the promotion and demotion activity done on this package by different persons. After ‘Entering’ the desired option in the action field say ‘P’ you will get a screen like the below displayed one.

The next panel may be a PROMOTION/DEMOTION PANEL, the one displayed below is a promotion panel. The example we are going to take is to promote a component POTEB020 of the above-mentioned package.

—————————- PROMOTE CHANGE PACKAGE ——– Row 1 to 10 of 17
COMMAND ===> SCROLL ===> CSR

PACKAGE ID: OIN1000092 CREATOR: VEN631 STATUS: DEV INSTALL DATE: 20001231

CURRENT PROMOTION LEVEL: LEVEL1 – 1
MAXIMUM PROMOTION LEVEL: LEVEL3 – 3

ACTION REQUESTED ===> p (P-Promote, D-Demote, C-Check for overlay)
ONLINE OR BATCH ===> B (O-Online, B-Batch)
LEVEL TO CHECK ===> 1 (Required for Action C)

PROMOTE/DEMOTE HISTORY LVL NICKNAME DATE TIME ID
Full Promotion 1 LEVEL1 2000/11/02 08:38 VEN631
Full Demotion 1 LEVEL1 2000/11/02 08:37 VEN631
Full Promotion 1 LEVEL1 2000/11/01 12:58 VEN631
Full Demotion 1 LEVEL1 2000/11/01 12:56 VEN631
. . . . . . . . . . . . . . . . . . . . . . . . . . .

In the option field of the above screen, Choose ‘F’ to do a full promotion or demotion (which depends on the option you have chose on the previous panel) which means that all the components of the package will be promoted, but an ‘S’ in the option field will let you select the components you want to promote or demote. In the NEXT PROMOTION LEVEL field mention the promotion level, generally ‘1’ is used by us to do the testing. ‘2’ will copy the already compiled load modules from the package load libraries to a user acceptance load library, other than test. The selective promotion will prompt you a screen like below. We are considering the example of promoting a component POTEB020 in the above-mentioned package.

——————————- PROMOTE OPTIONS ——————————-
OPTION ===> s
F – Full promotion of the entire package to another promotion level
S – Selective promotion of components to another promotion level

PACKAGE ID: OIN1000092 CREATOR: VEN631 STATUS: DEV INSTALL DATE: 20001231

CURRENT PROMOTION LEVEL: LEVEL1 – 1
MAXIMUM PROMOTION LEVEL: LEVEL3 – 3

NEXT PROMOTION LEVEL ===> 1
BYPASS OVERLAY CHECK ===> NO (Y-Yes or N-No)

JOB STATEMENT INFORMATION:
===> //VEN631E JOB (H54D,ITIT),’RAVI’, <=== CHANGE ACCORDINGLY_____
===> // , <=== CHANGE ACCORDINGLY_____
===> // NOTIFY=VEN631, <=== CHANGE ACCORDINGLY_____
===> // MSGCLASS=T <=== CHANGE ACCORDINGLY_____

Press ENTER to process; Enter END command to exit.
. . . . . . . . . . . . . . . . . . . . . . . . . . .

———————- PROMOTE: OIN1000092 COMPONENTS —— Row 1 to 4 of 4
COMMAND ===> SCROLL ===> CSR

Enter END command to process or CANCEL to exit.
CURRENT PACKAGE PROMOTION LEVEL: 1 – LEVEL1

NEXT COMPONENT PROMOTION LEVEL: 1 – LEVEL1
NAME TYPE ALIAS-OF PROMOTION DATE TIME ID STATUS
_ BUSUNIT BLM 0 STAGING 2000/11/02 08:37 VEN631
_ BUSUNIT DBB 0 STAGING 2000/10/30 08:05 VEN631
S POTEB020 BLM 0 STAGING 2000/11/02 16:08 VEN631
******************************* Bottom of data ********************************
. . . . . . . . . . . . . . . . . . . . . . . . . . .

When you are promoting a component put an ‘S’ on all the type of same component you want to promote or demote this will avoid any procedural error of preparing or backing out a component. You can select only the items which are marked as ‘STAGING’ in the promotion column of the above panel.. In this panel after selecting the component related type ‘Enter’ and ‘End’ the screen to submit a promotion or demotion job accordingly. When the Promotion job ends successfully, the components will be available in the TEST LOAD LIBRARIES or USER ACCEPTANCE LOAD LIBRARIES for testing purposes.

Once a component is promoted, if the component happens to be a CICS program then you may have to do a NEWC in the respective test region to test for the changes you have made to the component.

QUERY PACKAGE (QP)

The query package in the package selection list will give you a panel with a lot of lines with a prompt at the beginning, each of the row items are self-explanatory. All the rows gives information and component details regarding the package you are querying on.

OVERLAY WARNING
Suppose user VEN631 working with a program POTEB020 which is checked out in the package OIN1000092. You are trying to checkout the same program in a different package OIN1000183 then you will see the following screen.

———————————- POTEB020.HB5 ————— Row 1 to 1 of 1
COMMAND ===> SCROLL ===> CSR

Press ENTER or END to process or enter CANCEL command to exit.

This component is included in the following packages:

PACKAGE ID STA PROMOTION VV.MM LAST ACTION SIZE PROCNAME ID
OIN1000092 DEV 05.03 2000/11/02 08:37 157 COBOL370 VEN631
******************************* Bottom of data ********************************

Enter CANCEL here so that the program doesn’t get checked out in the package OIN1000183 and notify the Onsite coordinator with the program name.

IMPORTANT NOTES:

C H A N G E M A N I N F O

PACKAGE PROMOTION:

LEVEL 1 – HITRGI2/CICSD0U0
LEVEL 2 – HITRGP2/CICSQ0U0
LEVEL 3 – HITRGJ2/CICSD0U1

TO MOVE A CHANGE FROM ONE REGION TO ANOTHER IT IS NECESSARY TO DEMOTE THE PROGRAM AND THEN PROMOTE TO THE NEW LEVEL.
(IE. D0U0 TO Q0U0 – DEMOTE FROM LEVEL 1 THEN PROMOTE TO LEVEL 2)

AT THIS TIME DB2 WILL BE SHARED ACROSS THE LEVELS SO IN THIS CASE YOU
CANNOT TEST THE SAME PROGRAM IN MULTIPLE REGIONS BECAUSE WHEN THE OTHER PERSON PROMOTES(BINDS) THEIR PROGRAM THE FIRST PROMOTE(BIND) WILL NO LONGER BE IN EFFECT

NON-DB2 PROGRAMS CAN BE TESTED IN MULTIPLE REGIONS CONCURRENTLY
BECAUSE THE LOAD LIBRARIES ARE UNIQUE FOR EACH REGION