Changeman Tools Tutorials


CHANGEMAN

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_____  
===> //             CLASS=S,                     <=== 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_____ 
===> //             CLASS=S,                     <=== 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_____ 
===> //             CLASS=S,                     <=== 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                

-------------------------------------------- THE END  ----------------------------------------------------------



3 comments:

Vee Eee Technologies said...

Lot of useful points are there. Its really keeps me updated.
Vee Eee Technologies

Anonymous said...

Could you pls help me clarifying this doubt?
Can we stage Source and parms in the same package?

Thanks,
Ruth

Bathula Sreenivasa Rao said...

Excellent info. DO you have any PDF which clearly explains all the process involved with Changeman.

Sreenivas,
http://clearmainframeinterview.blogspot.com/

Computers TopOfBlogs Technology Blogs Mainframe interview question and answers,mainframe jobs,cobol,vsam,jcl,cics,db2,rdbms,mvs,tso,ispf,ibm,hcl,tcs,cts,wibro Blog Directory