31
Mainframe230 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

Mainframe 230

Embed Size (px)

Citation preview

Page 1: Mainframe 230

Mainframe230 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 Code2)   Copy Books3)   Load Modules4)   DBRM libraries5)   Service request6)   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.??? ,

Page 2: Mainframe 230

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 ourchanges 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 CHANGEMANThe 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 UPDATEDOPTION ===> 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

Page 3: Mainframe 230

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

Page 4: Mainframe 230

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 information5)   AP Audit a package

Page 5: Mainframe 230

6)   PD Promotion and Demotion7)   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

Page 6: Mainframe 230

_ 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

Page 7: Mainframe 230

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)

Page 8: Mainframe 230

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

Page 9: Mainframe 230

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: 20000903ISPF 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

Page 10: Mainframe 230

--------------------- 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:

Page 11: Mainframe 230

===> //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 4COMMAND ===> 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 ===>

Page 12: Mainframe 230

(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 1COMMAND ===> 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 3COMMAND ===> SCROLL ===> CSR  

NAME TYPE STATUS CHANGED LANGUAGE PROCNAME ID REQUEST

__ BUSUNIT DBB ACTIVE 20001030 080517 VEN631

Page 13: Mainframe 230

__ 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 componentType : Specifies the library type of the componentStatus :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 modifiedLanguage: Language of the Component Procname: Procedure used to compile the component when submitting a job for compilationID : Indicates the ID of the person who has last compiled, edited orpromoted the component.Request : Message field which prints the request who have made to thecomponent 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 3COMMAND ===> 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.

Page 14: Mainframe 230

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 080Command ===> Scroll ===> CSR ********************************* Top of Data ********************************** S E R C M P A R (MVS-3.1.1 - 1997/213) CHSERV THURSDAY NOVESYSUT1=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

Page 15: Mainframe 230

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

Page 16: Mainframe 230

NOTE: First time Promoting a package should be FULL PROMOTION.

----------------------------- CHANGE PACKAGE LIST ------------ Row 1 to 1 of 1COMMAND ===> 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 17COMMAND ===> 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

Page 17: Mainframe 230

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 4COMMAND ===> 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 ********************************. . . . . . . . . . . . . . . . . . . . . . . . . . .

Page 18: Mainframe 230

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 1COMMAND ===> 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

Page 19: Mainframe 230

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 ----------------------------------------------------------

FILEAID Tool Important Tips

TIP # 1FILEAID

The Easiest and Coolest way to locate bad data is thru File-Aid's FIND command.1.OPEN the file in FILE-AID (in either browse or edit mode)2.XREF with COPYBOOK.3.Use FMT mode4.Then issue ,F /field-name INVALIDorF /field-number INVALIDThe control will take you to the first invalid data record for the given field.e.g.,The FILE has 3 fields namely NAME,AGE,COUNTRY.If you want to find the invalid data in the age field, then issueF /2 INVALID

TIP #2FILEAID

We always face a s ituation such that when we have opened a File in FI LEAID Brows e mode but later wished it was EDI T Mode and vice ver sa. S o inthis s ituation, what we do is come out of the brows e mode and again open inedit mode and vice ver sa. But ther e is a cool command available in FI LE-AI Dto help us in this type of s ituation.I f u r in Brows e Mode and want to change it into EDI T Mode , in the LineCommand is sue

Page 20: Mainframe 230

COMMAND = = > GO EDI TI f u r in EDI T Mode and want to change it into BROWS E Mode , in the LineCommand is sueCOMMAND = = > GO BROWS E

TIP # 3FILEAID

How to determine compile date of loadlib member ??Use FILE-AID !!1. Go to FILE-AID 3.1 option2. In the Library Utility type in the loadlib dataset name3. Type 'a' next to the member name4. TDATE is compile date

TIP # 4FILEAID

Whats the best way to count the number of records in a VSAM File?1.Choose FILE-AID Option 3.82. At the prompt of ....ENTER NEXT FUNCTION OR END , enter TALLY3. U will get the record count4. Type END to exit.

TIP # 5FILEAID

While working in MS Excel we have the option of “freeze Panes”. By this options we can freezesome columns and have other columns scrolling. This feature is helpful in analysis when thereare lots of columns(fields) in a file.In mainframe too, we have similar such facility thru File-Aid.1.Open the file in File-Aid2. use VFMT format3. If you want to freeze columns(fields) 1,2,3, and 6 and have the rest as scrollableissue command HOLD 1-3,6

TIP # 6FILEAID

Can I issue FIND command to find values that are less than or greater than ‘certain value’ atcolumn 25??We can’t accomplish this task thru ISPF , but File -Aid provides us the facility to issue FINDcommand with relational operators like EQ,NE,LT,GT,LE and GE.e.g.,FIND LT ‘2004’ 25 ALLSo if one wants to use relational operator along with FIND command, open the same dataset in

Page 21: Mainframe 230

FILE-AID.

TIP #7FILEAID

Consider this situation. I am doing a verification on an output file. The output file has 200 fields.I need to verify only 25th and 175th fields only.

I am using FILE-AID’s VFMT mode and for each record I am scrolling between 25 th and 175thfield. Is there any efficient way to handle this situation?

Some people might use HOLD to freeze 25th and 175th field , but still other fields are displayed ,which is an annoyance.Here is one better way:In the VFMT mode, issue DISPLAY 25 175 ONLYOnly 25th and 175th fields will be displayed.

TIP #8FILEAID

ABEND SOLVINGAt midnight I receive production call.One job abended due to classic S0C7. Thru analysis I located the particular field which is aCOMP-3 and junk data is sitting in that field for some records.These bad records are notcontiguous but occuring randomly in the input file.

Now to save my head I have to delete all the records with bad data in that particular field and reexecutethe job quickly. Assume that input file has some 10 million records.How can I eliminatethe bad records in an efficient and a fast method?

Here is the approach:Using the following FILE-AID option in batch mode$$DD01 DROP IF=(field-position, field-length, NEP)NEP means Not Equal to PACKOne can generalize and customize the below JCL to deal with similar type of ABENDS.For Example,

My input layout is:01 TEST-RECORD.05 NAME-FIELD PIC X(5).05 AMOUNT-FIELD PIC 9(3) COMP-3.My JCL to eliminate the bad records://STEP01 EXEC PGM=FILEAID//*

Page 22: Mainframe 230

//SYSUDUMP DD SYSOUT=*//SYSPRINT DD SYSOUT=*//SYSLIST DD SYSOUT=*//SYSTOTAL DD SYSOUT=*//DD01 DD DSN=MYID.CHECK.OUT,DISP=SHR//DD01O DD DSN=MYID.CHECK.OUT,// DISP=(NEW,CATLG,CATLG),// DCB=(MYID.CHECK.OUT)//SYSIN DD *$$DD01 DROP IF=(6,2,NEP)/*This will drop the bad data records and retain only the good one.

TIP #9FILEAID

I want to do Fuzzy Comparison of files!!My requirement is to compare 2 files of which for one certain field I can have + or - 1 value which shouldbe acceptable while comparing.Thru FILE-AID COMPARE (OPTION 10), one can set percentage amount for numericfields that determines "close enough" matches. When the "Formatted Criteria" tableappears after the 2 files are specified, use the "T" line command. This brings up a

"Tolerance Value/Percentage Specification" panel where you can set a plus or minusvalue for a numeric field.