The document discusses techniques for streamlining and simplifying CA Endevor Software Change Manager processors. It provides examples of how to use processor includes to avoid redundant code, standard symbol includes to implement requirements consistently across stages and languages, and deriving values for symbols like LOADLIB and LISTLIB from other symbols to prevent overrides. The goal is to make processors easier to maintain through reuse of common steps and ensuring dataset names follow conventions based on type, stage, and other attributes.
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Streamline CA Endevor Processors with Standard Symbols and Includes
1. Advanced CA Endevor® Software Change Manager
Processor Coding Techniques: Practical Techniques
to Streamline and Simplify your Processors
Maria Hackmann-Peters
Mainframe
ITERGO
Specialist
MFX34S
#CAWorld
4. Introduction: ERGO, ITERGO and ENDEVOR@ITERGO
Several best practices for processor
Example:
How to use processor ‘includes’ to avoid redundant code
Using standard symbol ‘includes’ (for stages / types / languages)
Example:
Using symbols for implementation of new requirement "double link for a PL1”
Circumvent symbol overrides: How to set a suitable symbol value
Example:
Derive LOADLIB and LISTLIB names from type and stage symbols
Agenda
Maria Hackmann-Peters, ITERGO
5. ERGO Insurance Group at a glance
Zahlen Stand 31.12.2013
Maria Hackmann-Peters, ITERGO
6. ITERGO is the group-wide provider of IT services
Cologne
Düsseldorf
Hamburg
Munich
Client / Server
30,000 users in more
than 30 countries
Management of approx.
4,000 servers
ERGO Printcenter
240 mill. pages per year
Enveloping volume of 45
mill. per year
Projects
400 medium and big
projects with a volume of
150,000 man days
per year
ERGO datacenter
(Mainframe)
25.000 MIPS
1.000 TB disc space
15 mill. online-transactions
per day
ITERGO GmbH
Victoriaplatz 2
40477 Düsseldorf
www.itergo.com
Maria Hackmann-Peters, ITERGO
7. ENDEVOR users
1000 overall authorized users
300 developers
295.000 live ELEMENTs
800,000 ENDEVOR actions (ADD / UPDATE, GENERATE, MOVE)
13 active ENVIRONMENTs, 17 active STAGEs
50 SYSTEMs, on average 8 SUBSYSTEMs per SYSTEM
190 PROCESSORs
7
ENDEVOR@ITERGO
Maria Hackmann-Peters, ITERGO
8. Avoid redundant code
Processor steps are made to be used in different processors
Processor ‘include’ technique
Prevent different coding styles
All processors should be implemented with the same uniform structure
Avoid symbol overrides
Streamline your dataset naming conventions
Set the correct symbol default in the processor
Several Best Practices For Processor
Maria Hackmann-Peters, ITERGO
9. Prerequisites for using includes:
Type definition: e.g. PROCINCL as a ENDEVOR TYPE for processor includes
C1DEFLTS: LIBENV=LB (enables use of -INC syntax)
TYPE PROCESS Definition: INCLUDE LIBRARY ===> dataset
Using ‘includes’ in a processor:
//name PROC START=START, separated by comma
-INC symbol include contains symbol
: :
ZZ=END NO comma at the end
-INC general step1
-INC compile step (language specific)
-INC link step
:
9
How To Use Processor Includes To Avoid Redundant Code
Maria Hackmann-Peters, ITERGO
10. One processor per processor type
per language > unique structure using appropriate includes
per stage /
GPLIPD2 GENERATE Processor for PL1 at stage PD2
Use symbol includes PGPLIPD2 specific for GENERATE PL1 at PD2
PGPLI common PL1 settings e.g. PL1 Compiler Options
PGENPD2 specific for GENERATE at PD2
PGALL common GENERATE settings e.g. Utility parameters
PSYSPD2 System Qualifier PD2 e.g. DB2 Subsystem Name
PHLQPD2 (High Level) Qualifier PD2 e.g. IMS datasets HLQs
Duplicate definition of symbols is allowed: specific value “replaces” common value
Options Table ALLOW_DUP_SYMBOLS=ON
„First come, first serve“ Sequence is important!
10
Processors And Standard Symbol Includes
Maria Hackmann-Peters, ITERGO
11. Change ITERGO’s company-specific PL1 runtime (from “MAC” to “MAC-LE”)
NO mixed mode usage of MAC and MAC-LE load modules
Requires a re-link of 10,000 PL1 programs
Exchanging the runtime and every load module must be possible
• fast
• back and forth
• during test as well as later during production
Create two versions (MAC and MAC-LE) for each load module
ENDEVOR:
Dual link (only) for PL1 programs to two different load libraries (active one / fallback lib)
Easy and quick exchange of assignment MAC / MAC-LE to active / fallback lib
Step by step activation according to the MAP (and a generate of all the 10,000 PL1 modules)
Maria Hackmann-Peters, ITERGO 11
Example For Using Symbols: Dual Link For PL1 MAC-LE
12. Maria Hackmann-Peters, ITERGO 12
Example (cont’d)
MAC LE Implementation In ENDEVOR
1.Preparation
PGALL MACLE=DUMMY
+ dual Link step (IF MACLE<>”DUMMY”)
2.Dual link in PD2
PGPLIPD2 MACLE=OFF
3.MAC-LE in PD2
PGPLIPD2 MACLE=ON
4.MAC-LE through the MAP
PGPLIxxx per stage MACLE=ON
5.MAC-LE in production
PGPLI MACLE=ON
all PGPLIxxx remove MACLE=ON
6.FALLBACK swap the active / fallback loadlibs
PGPLI MACLE=OFF
MACLE Control Symbol
=DUMMY No dual link, no MAC-LE module
=ON MAC-LE module into active load library
=OFF MAC-LE module into fallback library
Includes
PGPLIPD2 specific GENERATE PL1 on PD2
PGPLI common PL1 settings
PGENPD2 specific GENERATE on PD2
PGALL common GENERATE settings
PSYSPD2 System Qualifier PD2
PHLQPD2 High Level Qualifier PD2
13. Use other symbols to create the symbol’s value
A simple example: The dataset name obeys a good naming convention.
Use a common symbol setting like:
LOADLIB=&HLQ.&C1STAGE..&C1TYPE..LOADLIB,
DONE
If all your datasets correspond to the naming conventions ….
But Dataset names have often developed over years
and do NOT follow a proper naming convention.
You may be able to derive their names as shown in the following examples.
Maria Hackmann-Peters, ITERGO 13
Avoid Symbol Overrides
Set A Correct Symbol Default In The Processor
14. LOADLIB contains a qualifier, which sometimes is an abbreviation of the type:
This LOADLIB qualifier can be derived from the type.
Maria Hackmann-Peters, ITERGO 14
Avoid Symbol Overrides
Example 1: LOADLIB
TYPE LOADLIB
PGMOCOB hlq.stagequal.PGMO.LOADLIB
PGMHCOB hlq.stagequal.PGMH.LOADLIB
PGMDCOB hlq.stagequal.PGMO.LOADLIB
ALIAS hlq.stagequal.PGMH.LOADLIB
… …
16. LISTDS for several types contain an additional qualifier:
This additional qualifier can also be derived from the type.
Maria Hackmann-Peters, ITERGO 16
Avoid Symbol Overrides
Example 2: LISTDS
TYPE LISTDS
PGMOCOB
PGMUCOB
PGMHCOB
hlq.stage.LIST
PGMDCOB hlq.stage.PGMD.LIST
ALIAS hlq.stage.ALIAS.LIST
… …
18. LOADLIB contains a stage qualifier, which is different for various stages:
This LOALDIB qualifier has to be derived from stage and processor group.
Maria Hackmann-Peters, ITERGO 18
Avoid Symbol Overrides
Example 3: LOADLIB
Stage Name Processor Group LOADLIB
PROJDV2 n.a. hlq.PD2.typequal.LOADLIB
PROJEKT2 E$000 hlq.PT2.E$000.typequal.LOADLIB
PROJEKT2 E$001 hlq.PT2.E$001.typequal.LOADLIB
PROD2 n.a. hlq.PROD.typequal.LOADLIB
… …
19. LOADLIB=&HLQPGM..&STGQUAL..<YPQUAL..LOADLIB,
Stage shortcut QSTAGE=&#Q&C1EN.&C1SI.., (PGALL)
#QPROJDV2=PD2 (site symbols)
#QPROJEKT2=PT2 (site symbols)
#QPROD2=PROD (site symbols)
QSTAGE in PROJDV2: #QPROJDV2 PD2
QSTAGE in PROJEKT2: #QPROJEKT2 PT2
QSTAGE in PROD: #QPROD2 PROD
PROCGRP lib PMULTPD2=, (PGALL)
PMULTPT2=&C1PRGRP(1,5). (PGALL)
PMULTPROD=, (PGALL)
Stage qualifier STGQUAL=&QSTAGE..&PMULT&QSTAGE., (PGALL)
STGQUAL in PROJDV2 PD2.&PMULTPD2 PD2
STGQUAL in PROJEKT2 PT2.&PMULTPD2 PT2.&C1PRGRP(1,5). e.g. PD2.E$000
STGQUAL in PROD PROD.&PMULTPROD PROD
ATTENTION: Please be aware of the periods!
Equivalent notation maybe different during processor execution.
Maria Hackmann-Peters, ITERGO 19
Avoid Symbol Overrides
Example 3: LOADLIB Qualifier Derived From Stage And Processor Group
20. Keep it easy and reduce maintenance overhead:
Use a common processor coding style so that common processor steps can be
coded and maintained as ‘include’ members.
Keep it simple and avoid the need for unique symbol overrides:
Use a standard data set naming convention that incorporates CA Endevor
inventory references (Environment, Stage, Type, etc.) in the name so that standard
CA Endevor symbols can be used to "build" the names.
Conclusion
Maria Hackmann-Peters, ITERGO