smartjcl horizont 1 the easy way to faultless jcl release notes horizont software for datacenters...
TRANSCRIPT
SmartJCLHORIZONT 1
The Easy Way to Faultless JCL
Release Notes
HORIZONTSoftware for Datacenters
Garmischer Str. 8 D- 80339 MünchenTel ++49(0)89 / 540 162 - 0www.horizont-it.com
SmartJCL
SmartJCLHORIZONT 2
Release Notes
Actual Release
V2R2
V2R3
V3R0
V2R4
V3R1
V3R2
SmartJCLHORIZONT 3
SmartJCL 3.2
• New Eclipse / RDz plug-in
- Uses Remote Check Server on z/OS for a complete JCL check on z/OS
• Enhanced support for condition code dependent steps
SmartJCL V3R2 is available since February 2014. SmartJCL V3R2 is available since February 2014. It offers following new functions:It offers following new functions:
SmartJCLHORIZONT 4
SmartJCL 3.2
• Support System Symbols in PARM members
• New PARM member to exclude DSNs from catalog check
• REXX Interface supports compiled REXX pgms
• Support for
- z/OS 1.13 Enhancements
• JOBRC parameter
• In-stream data in JES2 procedures
- z/OS 2.1 Enhancements
- TWS 9.1
SmartJCLHORIZONT 5
SmartJCL 3.2 – Edit Macro
Type JCK ...
SmartJCLHORIZONT 6
SmartJCL 3.2 – Edit Macro
3 Error message
1. Summary
2. Labels to locate the error
SmartJCLHORIZONT 7
SmartJCL 3.2 – eclipse plug-in
Edit JCL, click right mouse and select „Execute SmartJCL Remote Check“
The JCL is transferred to z/OS and checked there
SmartJCLHORIZONT 8
SmartJCL 3.2 – eclipse plug-in
Error messages are inserted below the associated statement in the edited JCL
(use right mouse to remove it)
SmartJCLHORIZONT 9
SmartJCL 3.2 – eclipse plug-in
Specify IP-address, port and member name of the
SmartJCL STC Procedure
The connection to z/OS is established
via the „HORIZONT
TCP/IP-Scheduler“.You can define several z/OS
systems
SmartJCLHORIZONT 10
SmartJCL 3.2 – RDz plug-in
It works identical in RDz, even if there is another
Editor
SmartJCLHORIZONT 11
SmartJCL 3.2 – Cond. Steps
Controls execution ofbelow steps ...
SmartJCLHORIZONT 12
SmartJCL 3.2 – Cond. Steps
Depends on step SETRCDepends on step SETRC ...
... but SmartJCL does not know the RC.
SmartJCLHORIZONT 13
SmartJCL 3.2 – Cond. StepsNew PARM member
Define RC for steps that are referenced in IF or COND.
SmartJCLHORIZONT 14
SmartJCL 3.2 – Cond. Steps
Condition codes are evaluated and job is checked correctly.
SmartJCLHORIZONT 15
SmartJCL 3.2 – System Symbols
PROCDS parameter allows &SYSNAME, &SYSPLEX and &LPAR
System symbols can be used for proclib specifications (JCKKPARM) and for message suppression (JCKKMSX).
SmartJCLHORIZONT 16
SmartJCL 3.2 – System Symbols
With parm WP=Y the parms can be checked in SYSPRINT.
SmartJCLHORIZONT 17
SmartJCL 3.2 – System Symbols
Further new parameters for message suppression.
System symbol can be used for message suppression.
Further new parameters for message suppression.
SmartJCLHORIZONT 18
SmartJCL 3.2 – JCK-ECAT
A new parm member to exclude DSNs from catalog check.
The only way in the past.
SmartJCLHORIZONT 19
SmartJCL 3.2 – JCK-ECAT
Excluded data sets from catalog check.
SmartJCLHORIZONT 20
Any Questions about SmartJCL [email protected]
SmartJCLHORIZONT 21
SmartJCL 3.1
•Many new parameters and options for JCL Check and Reformat
- Get DB2 subsystem from system control blocks
- Reformat only selected or changed JCL statements
- Control setting ISPF member statistics in output file JCKJCLO
- Check TSO program call
SmartJCL V3R1 will be available in September 2011. SmartJCL V3R1 will be available in September 2011. It will have following new functions:It will have following new functions:
SmartJCLHORIZONT 22
SmartJCL 3.1
•Support for z/OS 1.12 SORT enhancements- JOINKEYS Application
- Date Field Conversions
- MERGE Operator
- MERGEIN Alternate ddnames
- ...
•Support for TWS 8.6
SmartJCLHORIZONT 23
SmartJCL 3.1
•ISPF dialog supports administrators
- Admins are defined during installation or in JCKXPARM
- Admins have additional configuration options
- Users can only „use“ SmartJCL
SmartJCLHORIZONT 24
SmartJCL 3.1
Specify admin users here ...
ISPF dialog supports administrator:ISPF dialog supports administrator:
SmartJCLHORIZONT 25
SmartJCL 3.1
Available only for admin users.
Available for every user.
ISPF dialog supports administrator:ISPF dialog supports administrator:
SmartJCLHORIZONT 26
SmartJCL 3.1
Available for admin user only.
ISPF dialog supports administrator:ISPF dialog supports administrator:
SmartJCLHORIZONT 27
SmartJCL 3.1
Available for every user.
ISPF dialog supports administrator:ISPF dialog supports administrator:
SmartJCLHORIZONT 28
SmartJCL 3.1
•New SRI function "SriCatEntry" for catalog access and informations
- Returns
• Entry name (= DSN)
• Catalog name
• Entry type
• Volser
- Easier than LISTCAT and scanning output
SmartJCLHORIZONT 29
SmartJCL 3.1
•Enhanced JCL Change Facility
- new commands DELSTMT, DELSTEP, INSERTSTMT, INSERTSTMT BEFORE FIRST (i.e. before first EXEC)
- DO/ENDDO block to summarize more actions for one condition
- RANGE (Column 1-72)
SmartJCLHORIZONT 30
SmartJCL 3.1
Insert FRIST, LAST, BEFORE, AFTER
... the statements to be inserted ...
... only if these criteria are fulfilled.
Enhanced JCL Change Facility: INSERTSTMTEnhanced JCL Change Facility: INSERTSTMT
SmartJCLHORIZONT 31
SmartJCL 3.1
Insert this JCLLIB statement after the JOB statement.
Enhanced JCL Change Facility: INSERTSTMTEnhanced JCL Change Facility: INSERTSTMT
SmartJCLHORIZONT 32
SmartJCL 3.1
Use multiple PARMn and VALUEn pairs for selection ...
DELSTMT and DELSTEP can be combined with parameter selection.
Enhanced JCL Change Facility:Enhanced JCL Change Facility:
SmartJCLHORIZONT 33
SmartJCL 3.1
Use multiple PARMn and VALUEn pairs for selection ...
... and PARM and VALUE for the change.
Use DO/ENDDO to group more changes for a selection.
Enhanced JCL Change Facility:Enhanced JCL Change Facility:PARMn, VALUEn combined with DO/ENDDO.PARMn, VALUEn combined with DO/ENDDO.
SmartJCLHORIZONT 34
SmartJCL 3.1
Contains the strings for the change III.JJJ as well the string AAAAA that excludes the change.
This JCL is modified:This JCL is modified:
SmartJCLHORIZONT 35
SmartJCL 3.1
Only changed JCL statements are reformatted:SJCREF=CHANGED
Resulting JCL:Resulting JCL:
SmartJCLHORIZONT 36
SmartJCL 3.1
Enhanced JCL Change Facility: RANGEEnhanced JCL Change Facility: RANGE
SmartJCLHORIZONT 37
Any Questions about SmartJCL [email protected]
SmartJCLHORIZONT 38
SmartJCL 3.0
• ISPF Dialog to specify rules according to customer specific standards
- Every site has individual rules, e.g. „UNIT must be SYSDA in SORT step“
- Up to now such checks required usage of SmartJCL‘s REXX interface
- SmartJCL will enable non-programmers to specify complex rules by using a simple ISPF dialog
- See dialog on next slides
SmartJCL V3R0 is available since September 2009. SmartJCL V3R0 is available since September 2009.
It will have following major new functions:It will have following major new functions:
SmartJCLHORIZONT 39
Standard Check: Entry Panel
The entry panel offers: - to work with rules- to generate SRI code
SmartJCLHORIZONT 40
Standard Check: OptionsSpecify with which rules
you want to work ...
... and where the generated code is to be
stored.
SmartJCLHORIZONT 41
Standard Check: Entry Panel
Start working with rules ...
SmartJCLHORIZONT 42
List of Rules
Create a new rule or select an existing one
to modify it ...
SmartJCLHORIZONT 43
Modify Rule
If pos. 6 of jobname is R or E and DISP not equal SHR...
… or if pos. 3 of jobname is 3 and DISP not equal
SHR ...
… then issue message.
SmartJCLHORIZONT 44
Selection Criteria
All possible selection criteria can be picked
from a list…
SmartJCLHORIZONT 45
Selection Criteria
... the selection criteria provided by
Standard Check
Further down in the list ...
SmartJCLHORIZONT 46
Selection Criteria
JOB statement is selected …
… and all possible parameters and sub-parameters
are listed ….
SmartJCLHORIZONT 47
Comparison Operators
... as well as all comparison operators
SmartJCLHORIZONT 48
Specify Compare Values
Here you can enter a list of the values.
Values for substr
SmartJCLHORIZONT 49
Action for a Rule
What should happen, if a condition is true?
SmartJCLHORIZONT 50
Action for a Rule
A message can be issued or a REXX can
be called.
SmartJCLHORIZONT 51
Action for a Rule
Where will the message appear?
SmartJCLHORIZONT 52
Action for a Rule
The message has to be defined in a
message member.
SmartJCLHORIZONT 53
XML for a Rule
The rules created in the dialog are stored
as XML.
SmartJCLHORIZONT 54
Generate SRI Code
Option 2 creates SmartJCL REXX Inter-face Code from XML.
SmartJCLHORIZONT 55
Generate SRI Code
SmartJCLHORIZONT 56
Generate SRI Code
The created REXX code has to be
specified with para-meter SRI-PRG for Check or Reformat.
SmartJCLHORIZONT 57
SmartJCL 3.0
• Installation - Own PARM dataset
- Strict separation of product libraries and parameter library (OPZXPARM in CLIST caused problems).
- Easier distribution/maintenance of SmartJCL to multiple z/OS systems.
•Scheduler Interface for TWS
- TWS 8.5 support
Other new functions and enhancements:Other new functions and enhancements:
SmartJCLHORIZONT 58
SmartJCL 3.0
•JCL Checker- z/OS 1.11 support
• DD EATTR parameter and SORT enhancements
- Check IEHPROGM control statements and consider them for catalog checks
- Issue warning for RACF unprotected datasets
- Issue warning if no alias exists for first qualifier
• to avoid data sets in the master catalog
- Message suppression: allow wildcards for message number
• to suppress all messages for particular members
• Example for PARM(JCKKMSX): JCK* MEMBER=MEMNAME
Other new functions and enhancements (2):Other new functions and enhancements (2):
SmartJCLHORIZONT 59
SmartJCL 3.0
•JCL Reformat
- Reformat writes directly to PO files
• In the past a PS dataset with IEBUPDTE format was used.
• ISPF member statistic is updated.
- Reformat COMMAND statement
Other new functions and enhancements (3):Other new functions and enhancements (3):
SmartJCLHORIZONT 60
SmartJCL 3.0
•SmartJCL REXX Interface (SRI)
- New function %SRIInclude to avoid copies of same code
- New function SRIChangeRef to adapt references to changed stepnames
- Same line numbers in SRI messages as in trace.
Other new functions and enhancements (4):Other new functions and enhancements (4):
SmartJCLHORIZONT 61
Any Questions about [email protected]
SmartJCLHORIZONT 62
SmartJCL V2R4
•Support for z/OS 1.9- OS version/release can be set by parameter OSVER=- Checks new SORT parameters (from z/OS 1.4 to z/OS 1.9)
•DB2 Subsystem Check- Check if specified DB2 subsystems are defined and active- New parameters:DB2-SUBSYS-CHECK DB2SC=Y/NDB2-GROUP=db2_group_nameDB2-SUBSYS=subsys_name
•Allow default load library for "exist program" check- New parameter:
DEFAULT-LOADLIB DLL=P390A.JCK.DEV.LOAD
SmartJCL V2R4 is available since Q3 2008. SmartJCL V2R4 is available since Q3 2008. It has following major new functions:It has following major new functions:
SmartJCLHORIZONT 63
SmartJCL V2R4•Read PROCLIBS directly from JES
- Instead of specifying PROCLIBS through installation, the needed information is taken directly from JES
- Only for JES2 and JES3 Global, not JES3 Local
- New parameter:READ-SYSTEM-PROCLIB RSP=Y/N
•Better adaption to customer environment
- Set priority of parameters versus DD statements for further datasets (JCKMSGI, JCKMSXI, PWDIN)
- New parameter:JCK-FILE JCK-FILE=PARM PARM OR DD
- Support concatenated parameter members and more call paramters for edit macros. Reduces the need to create more OPZXPARM members and edit macros.
SmartJCLHORIZONT 64
SmartJCL V2R4
•Better performance
- JCK macro reacts faster
- Optimized catalog check under JES3 -> less CPU time
• Improved ISPF dialog
- See next slides
SmartJCLHORIZONT 65
Improved ISPF Dialog
The main panel is an entry point to all other
dialogs ...
...and it informs about available edit macros.
SmartJCLHORIZONT 66
Specify Joblibs and Select Members
Specify joblibs and select members ...
SmartJCLHORIZONT 67
Select Members
Select members by typing ”S” in front of the member, or
specify a sequence of jobs by using numbers, e.g.
“1”, “2”, “3”
Type JCK to start the check…
SmartJCLHORIZONT 68
Check Members
…the selected members are checked sequentially, every
job that has an error is displayed in the editor…
SmartJCLHORIZONT 69
Display Results
...at the end the selection list shows you the resulting
return codes.
SmartJCLHORIZONT 70
Foreground Mode
Another option is to check the selected
members in FOREground...
SmartJCLHORIZONT 71
Foreground Mode - Summary
... the summary is displayed right
after the check…
..from here you can access directly
messages, details, and sysprint
SmartJCLHORIZONT 72
Batch Mode
BATch checks the selected members in
batch mode…
SmartJCLHORIZONT 73
Batch Mode – Generated Job
... simply submit the generated job
SmartJCLHORIZONT 74
You want to see a preview of V3R0?
SmartJCLHORIZONT 75
SmartJCL V2R3
•Easier installation- SVC is no longer necessary for third party RACF check
- Firewall friendly Remote Check (no call back)
•TWS variable substitution- Use temporary TWS controller, no impact to production TWS controller
- Support for TWS 8.3
•REXX interface: - Access to overriding parameters and utility statements
•New check parameters
SmartJCL V2R3 is available since June 2007. SmartJCL V2R3 is available since June 2007. It has following major new functions:It has following major new functions:
SmartJCLHORIZONT 76
SmartJCL – Easier Installation
• SVC installation required system programming
- Assembler coding
- SVC has to be loaded
• Therefore SVC was not accepted at many sites
SmartJCL 2.2 used a SVC for authorization. SmartJCL 2.2 used a SVC for authorization.
Disadvantages were:Disadvantages were:
SmartJCLHORIZONT 77
SmartJCL – Easier Installation
• Parmlib member IKJTSOnn has to be modified
AUTHTSF NAMES( /* PROGRAMS TO BE AUTHORIZED */ + /* WHEN CALLED THROUGH THE */ + /* TSO SERVICE FACILITY. */ + CSFDAUTH /* ICSF */ + IEBCOPY /* */ + ICQASLI0 /* */ + IKJEFF76 /* */ + EQQMINOR /* OPC DIALOG INTERFACE */ + JCKASA1 /* SMARTJCL ACCESS CHECK */ + JCKASU /* SMARTJCL SWITCH USER */)
• Parmlib member IKJTSOnn has to be activated
SET IKJTSO=nn
Now the TSO Service Facility is used.Now the TSO Service Facility is used.
SmartJCLHORIZONT 78
NEWOLD
New IP Communication
JCL inISPF Editor
Po
rt 1
ROTJSHD TP Program
Port 2 JCL inISPF Editor
Po
rt 1
ROTJSHD TP Program
Po
rt 1Server program uses the original “line” to send data to the client. That avoids firewall problems
ROTJSHD
SmartJCLHORIZONT 79
SmartJCL – Simulation TWS
• Production controller is not influenced- No performance implications
- No locks on JS file
• Highly automated- Necessary files are copied from production controller
- Controller is started and stopped by SmartJCL jobs
• TWS 8.3 ready
An additional TWS controller is used for JCL An additional TWS controller is used for JCL tailoring (variable substitution). Advantages are:tailoring (variable substitution). Advantages are:
SmartJCLHORIZONT 80
SmartJCL – Simulation TWS
Sim TWSProd TWS
Work data sets
LTPCP
AD WS, OI, RD, SI
EQQJBLIBEQQSCLIB
LTPCP
Work data sets
PIF PIF
copy1 create data sets
2 copy data sets from Prod TWS
3 start Sim TWS
4 create LTP, CP
4 Simulation
5 simulate TWS vars
TWS/SimJCLS4 Simulation
AD, WS, OI, RD, SI
7 delete data sets
6 stop Sim TWS
SmartJCLHORIZONT 81
SmartJCL - TWS
Built and start Sim TWS.Create LTP, CP.
Select Jobs
Simulate JobsRemove Sim TWS
Start JCL Check
SmartJCLHORIZONT 82
SmartJCL – REXX interface
• Overriding JCL statements and parameters- Allows access to JCL statements used at a procedure call before replacing
the procedure call
• Utilities- Allows access to utility statements and parameters
• Reformat modified statements only- Avoids problems with undesired modifications in JCL statements that are
not modified
New REXX interface functions for ....New REXX interface functions for ....
SmartJCLHORIZONT 83
SmartJCL – New Parameter
• JCL Check
- ACF2 //*LOGONID- Required parameters (JOB-ACCOUNTING and JOB-PGMRS-NAME)- Customer specific defaults (IDCAMS left and right margin)
• Output
- Line number for SRI messages (SRI-MSGLNNUM)- Customer specific start/stop messages (STARTM= and STOPM=)- Output only jobs with messages (CORRECT_JOB_OUTPUT=)- Suppress messages (MEMBER=)
• Access Check- Customer specific profile name for access check (RACF-AUDIT-ENTITY)
- Defaults for minimal access rights
New parameters for ....New parameters for ....
SmartJCLHORIZONT 84
Do you have any questions about SmartJCL 2.3?
Production
SmartJCL
Scheduler
Scheduler Interface
Plan Variable
REXX InterfaceReformat
JCL
SmartJCLHORIZONT 85
SmartJCL V2R2
• Improved performance (JCK edit macro)
•RACF Check with any userid under TSO
•Extended TWS variable substitution
•Dialog within OSJ edit macro can be adapted
•Read system configuration
•Migrate parameters while upgrading from previous SmartJCL release
SmartJCL V2R2 is available since SmartJCL V2R2 is available since July 2006July 2006. . It has following major new functions:It has following major new functions:
SmartJCLHORIZONT 86
SmartJCL - Performance
• New macros are 50-80% faster as old macros
• Dynamic instead of static allocation- Multiple allocations are avoided
- new parameters in JCKKPARM are replacing DD statements
• Proclibs are allocated only if needed
The performance is drastically improved for edit The performance is drastically improved for edit macros JCK and OSJ JCK. macros JCK and OSJ JCK.
SmartJCLHORIZONT 87
SmartJCL - Performance
No procedure call
New Macro JCK
2,02 s 8,20 s
procedure call - member in the FIRST proclib
New Macro JCK
2,18 s 8,20 s
procedure call - member in the LAST proclib
New Macro JCK
4,93 s 8,19 s
SmartJCLHORIZONT 88
SmartJCL - Check with any user
•V2R1- Available only in In batch mode
- In TSO mode the RACF check was only possible with the original userid
•V2R2- Now available in TSO mode
- Security Exit to allow APF authorisation by SVC
- requires system programming, we are still looking for alternatives
The "RACF Access Check" was introduced with The "RACF Access Check" was introduced with SmartJCL V2R1. It allows to check the JCL with SmartJCL V2R1. It allows to check the JCL with alternative users.alternative users.
SmartJCLHORIZONT 89
SmartJCL - Extended TWS Simulation
• Up to now SmartJCL offers two different ways to simulate variable substitution:
- ACTION=SIMULATE, PIF Request JCLPREPA
• To slow for large job amounts ( > 5000)
• Slows down controller performance, blocks JS file
- ACTION=SUBSTITUTE, HORIZONT's own substitution
• very fast, needs no TWS resources (only AD VSAM read access)
• cannot substitute all types of variables, e.g. SETVAR
Upshot: Variable substitution is complete (and slow), or fast (and incomplete)!
SmartJCl allows to simulate TWS variable SmartJCl allows to simulate TWS variable substitution.substitution.
SmartJCLHORIZONT 90
SmartJCL - Extended TWS Simulation
• Perform HORIZONT's substitution first
• Check if all variables are substituted?- Yes: Ok, JCL is done
- No: Start second substitution with PIF request JCLPREPA
• Good compromis, but depends on customer#s environment:- Worst case: Second step is always required!
New solution in SmartJCL V2R2: New solution in SmartJCL V2R2: Combine both ways!Combine both ways!
SmartJCLHORIZONT 91
SmartJCL - Extended TWS Simulation
• ACTION=PIFSIM- Old: ACTION=SIMULATE
• ACTION=HORIZONTSIM- Old: ACTION=SUBSTITUTE
• ACTION=SIM- New: Combined Substitution
- Only available in batch mode
New parameters (old parameters are still valid):New parameters (old parameters are still valid):
SmartJCLHORIZONT 92
SmartJCL - Extended TWS Simulation
Example: Example: &OADID is not replaced by &OADID is not replaced by HORIZONTSIM ...HORIZONTSIM ...
... but in the second step by ... but in the second step by JCLPREPAJCLPREPA
SmartJCLHORIZONT 93
SmartJCL - OSJ Edit Macro
An example:The user wants to check the JCL that is shown in the editor (and not the JCL from the JS file)
In this case the user must go through several panels.
SmartJCLHORIZONT 94
SmartJCL - OSJ Edit Macro
SP
...type "SP" to specify additional parameters...
SmartJCLHORIZONT 95
SmartJCL - OSJ Edit Macro
...change parameter!
SmartJCLHORIZONT 96
SmartJCL - OSJ Edit Macro
• Modify dialog defaults
• Specify default behave
The dialog can be tailored to the needs of the users The dialog can be tailored to the needs of the users by modifying a parameter file:by modifying a parameter file:
SmartJCLHORIZONT 97
SmartJCL - OSJ Edit Macro
New parameter file to contol behave of the dialog
SmartJCLHORIZONT 98
SmartJCL - Read System Configuration
• Up to now it was necessary to specify system specific parameters:
• Smart JCL 2.2 detects automatically
- SMS class (up to now job JCKJSMS was needed)
- Master catalog
- MVS version
SmartJCLHORIZONT 99
SmartJCL - Parameter
• Old (migrated) and new (inserted) parameters are marked.
• Only new parameter have to be adapted.
The parameters in member JCKKPARM are The parameters in member JCKKPARM are migrated:migrated:
SmartJCLHORIZONT 100
SmartJCL - Parameter
Automatic migration during Installation
SmartJCLHORIZONT 101
Do you have any questions about SmartJCL 2.2?
Production
SmartJCL
Scheduler
Scheduler Interface
Plan Variable
REXX InterfaceReformat
JCL
SmartJCLHORIZONT 102
V2R1 – What’s New
V2R1 is available since May 2005. V2R1 is available since May 2005. Major enhancements are:Major enhancements are:
• "Remote Check"- Check JCL that is stored on Produkction directly in your test
environment
• "Change Facility"- Simply Statements to change JCL statements
• "Access Check" - Check file access authorisation
• ...and much more...
SmartJCLHORIZONT 103
V2R1 – Remote Check
• Simplifies checking JCL from the test system against the production libraries on the production system.
• Errors can be corrected easily because they are found before the JCL is transferred to the production system.
• It also avoids to transfer JCL manually to the remote system, logon to that system and check it locally at this system.
• Uses HORIZONT’s standard TCP/IP architecture- Simple TCP/IP protocol (no Framework, no APPC)
- Easy to install
The Remote Check enables you to check JCL on The Remote Check enables you to check JCL on another system. Advantages are:another system. Advantages are:
SmartJCLHORIZONT 104
V2R1 – Remote Check
• The ISPF dialog - The ISPF dialog allows you to select jobs by name, by range or
by JOBLIST.
• Edit macro - This option is useful for checking new or modified jobs
immediately before a manual submit.
The Remote Check can be used in two ways:The Remote Check can be used in two ways:
SmartJCLHORIZONT 105
V2R1 – Remote Check
-------------------------- SmartJCL Remote JCL Check -------------- Command ===> Primary commands (top): OPT Browse TCP/IP parameters JOBLIST Edit joblist JOBLIB Edit joblibraries Select one of the following options and press ENTER. Member ===> ________ - ________ Specify one member (left) to check a single job, or specify two members (from member-to member) to check a range of members. Joblist ===> P390G.JCK.JOBLIST___________________________ If you do not specify any member, the Joblist will be used for selection. Joblibs ===> P390A.OPG.CNTL______________________________ Submit ===> E S submit job, E edit before submit Seclect a valid server name with S _ CPU1 _ CPU2 ******************************* Bottom of data ********************************
Remote Check ISPF Dialog
SmartJCLHORIZONT 106
EDIT P390A.OPG.CNTL(TESTJCK) - 01.00Command ===> JCK SRV=CPU1 Scroll ===> CSR****** ********************* Top of Data ************************000001 //P390KX JOB 'SMARTJCL',000002 // MSGCLASS=T, 000002 // NOTIFY=&SYSUID,000004 // REGION=6M 000005 //* 000006 //ADUNL EXEC PGM=OPUIAD4, 000007 // PARM='/PW=RFKEFZR',000008 // REGION=4M 000009 //SYSPRINT DD SYSOUT=* 000010 //OPUTEXT DD DSN=&&OPUTEXT, 000011 // DISP=(NEW,PASS), 000012 // SPACE=(TRK,(1,1)),000013 // DCB=(RECFM=FB,LRECL=80,BLKSIZE=80),000014 // UNIT=SYSDA 000015 //OPUDAT DD DSN=&&OPUDAT1,000016 // DISP=(NEW,PASS), 000017 // SPACE=(CYL,(1,1)), 000018 // DCB=(RECFM=FB,LRECL=406,BLKSIZE=16240)
V2R1 – Remote Check
Specify Target CPU
------- SmartJCL - Remote check -------
Enter password: _________
Specify password
SmartJCLHORIZONT 107
EDIT P390A.OPG.CNTL(TESTJCK) - 01.00Command ===> JCK SRV=CPU1 Scroll ===> CSR****** ********************* Top of Data ************************=NOTE= MESSAGE SUMMARY AND COUNTS: E=00001, W=00000, I=00000=NOTE= LABEL MSG.NO. ERROR MESSAGE =NOTE= ------ -------- ------------------------------------------=NOTE= .HAAA JCK0440E PROGRAM OPUIAD4 NOT FOUND ON SEARCH PATH 000001 //P390KX JOB 'SMARTJCL',000002 // MSGCLASS=T, 000002 // NOTIFY=&SYSUID,000004 // REGION=6M 000005 //* 000006 //ADUNL EXEC PGM=OPUIAD4, 000007 // PARM='/PW=RFKEFZR',000008 // REGION=4M 000009 //SYSPRINT DD SYSOUT=* 000010 //OPUTEXT DD DSN=&&OPUTEXT, 000011 // DISP=(NEW,PASS), 000012 // SPACE=(TRK,(1,1)),000013 // DCB=(RECFM=FB,LRECL=80,BLKSIZE=80),000014 // UNIT=SYSDA
V2R1 – Remote Check
The JCL is physically validated at the production system, but the results are shown in the editor on the test system
SmartJCLHORIZONT 108
PRODTEST
V2R1 – Remote Check Overview
//DD SYSPRINT
SmartJCL
ProceduresDSN2
DSN3Catalog-Check
TCP/IP
TCP/IP
JCL Member
JCL (ISPF Editor)
SmartJCLHORIZONT 109
V2R1 – Change Facility
• No coding - In opposite to the REXX interface no coding is needed.
- Simply use CHANGE, DELETE and INSERT commands in connection with wildcards.
• Applicable for - JCL statements and JCL parameter
- Comments (//*)
- In stream data
• More complexe logic requires REXX- The Change Facility is not a replacement for zthe REXX interface, but an addition.
In addition to the REXX interface SmartJCL has a In addition to the REXX interface SmartJCL has a comfortable new change function.comfortable new change function.
SmartJCLHORIZONT 110
V2R1 – Change Facility
• CHANGE PARM=DSN,VALUE=PROD*,NEWVAL=TEST*
• DELETE PARM=UNIT
• DELETE JOB=ABC%,PGM=IDCAMS,PARM=UNIT,VALUE=TAPE4
In addition to the REXX Interface SmartJCL has an In addition to the REXX Interface SmartJCL has an integrated change facility. It allows you to perform integrated change facility. It allows you to perform simple changes fast and easily. Some examples:simple changes fast and easily. Some examples:
SmartJCLHORIZONT 111
V2R1 – Access Check 1
• Check file access authorisation
- For all files that are used in DD statement and IDCAM
commands the file access authorisation is checked.
- The needed rights (read, udate,alter) is taken from
the DISP= parameter or IDCAMS command.
- The check can also be done for any other user.
SmartJCLHORIZONT 112
V2R1 – Access Check 2
• User sequence
1. The JCL check is performed with the Userid that is specified in the jobcard.
2. If no Userid is specified in the jobcard, it is taken from the ACUID= parameter.
3. If the ACUID= parameter is missing, the Userid of the job submitter is taken into account.
SmartJCLHORIZONT 113
V2R1 – Access Check 3
• RACF-Audit Profil
- Since earlier versions SmartJCL has a parameter to specify if access violations should be written to the SYSLOG (RA=Y|N)
- The parameter "RACF-AUDIT RA=N" is protected by profile 'HORIZONT.SMARTJCL.AUTHCHK.NOLOG' in class FACILITY. The user must have READ authorization for this profile to accept the RA=N setting. If the user has lower access rights than READ, the setting RA=N is ignored and changed to RA=Y
SmartJCLHORIZONT 114
V2R1 – More enhancements 1
• Validation of Catalog Entries- Checks if a dataset really exists
• ASA- ASA characters are written to file JCKDTLO (optional).
• SmartJCL messages can be replaced - The SmartJCL message number, return code and text can be
replaced.
Additional enhancements:Additional enhancements:
SmartJCLHORIZONT 115
V2R1 – More enhancements 2
• Procedures
- Called procedures are inserted after the EXEC PROC statement as "=NOTE=" lines.
- The "=NOTE=" lines show JCL overrides and replaced symbolic parameters.
• Validate fields
- Check the accounting information against a list of valid values.
- Check the SCHENV= parameter against a list of valid values.
• Limit error messages
- Abort check of a JCL member if a limit of messages is reached.
SmartJCLHORIZONT 116
V2R1 – More enhancements 3
• New header and footer for JCKDTLO and JCKSUMO- The header contains the program version and the start date and time
of the check.- The footer contains a statistic about JCL errors.
• Format of JCKSUMO- Format of the file JCKSUMO is now identical for JCKJCLI and
JUPJInnn.
• Suppress job output in JCKDTLO- Jobs without errors are not written to JCKDTLO (optional).
SmartJCLHORIZONT 117
Any Questions about SmartJCL 2.1?
File Edit Confirm Menu Utilities Compilers Test Help --------------------------------------------------------------------------- EDIT P390H.SPFTEMP1.CNTL Columns 00001 00072 Command ===> JCK Scroll ===> CSR ****** ***************************** Top of Data ************************** =NOTE= LABEL MSG.NO. ERROR MESSAGE =NOTE= ------ -------- ------------------------------------------------------ =NOTE= .HAAA JUP0008E 00, ,00009,INVALID JCL STATEMENT: ' =NOTE= .HAAB JCK0002E 00, ,00000,INVALID STMT ' IN ROUTINE JCKJOB =NOTE= .HAAC JCK0316E 00, ,00000,DATA SET NOT FOUND IN CATALOG =NOTE= .HAAD JCK0316E 00, ,00000,DATA SET NOT FOUND IN CATALOG =NOTE= .HAAE JCK0270E 00, ,00000,INVALID VALUE CATL FOR THE NORMAL 000001 //P390HX JOB ,'HORIZONT',MSGCLASS=T, 000002 // NOTIFY=&SYSUID,REGION=6M =NOTE= -- NOTIFY=P390H,REGION=6M 000003 //* 000004 //****************************************************************** 000005 //* UNLOAD OPC-VSAM DSN=P390A.OPCESA.V2R0M0.AD 000006 //****************************************************************** 000007 //ADUNL EXEC PGM=OPUIAD5, .HAAB // PARM=('DEP(0),ER(0)/' =NOTE= JUP0008E 00, ,00009,INVALID JCL STATEMENT: ' =NOTE= JCK0002E 00, ,00000,INVALID STMT ' IN ROUTINE JCKJOB 000009 // 'OI=N PC=OS2 OD=N EX=Y PW=RNCECLI')
File Edit Confirm Menu Utilities Compilers Test Help ---------------------------------------------------------------------- EDIT P390A.HUP.PLI.DEV($C1) - 01.02 Columns 000 Command ===> Scroll = ****** ***************************** Top of Data ********************* =NOTE> SmartJCL JCL XREF LISTING =NOTE> --------------------------------------------------------------- 000003 //JCLCHECK JOB ,'HORIZONT/DIRNBERGER',MSGCLASS=T,CLASS=A, 000004 // NOTIFY=&SYSUID =NOTE> +++ JCK1234I JOB FOUND IN APPLICATION STTMONTH01 =NOTE> +++ JCK1234I PREDECESSOR: STTMONTH00 JCLCHK01 =NOTE> +++ JCK1234I PREDECESSOR: STTMONTH00 JCLCHK02 =NOTE> +++ JCK1234I SUCCESSOR: - =NOTE> +++ JCK1234I SPECRES: INITA =NOTE> +++ JCK1234I SPECRES: STT 000011 //* 000012 //PROCS JCLLIB ORDER=(P390A.ROSE.PLI.CNTL) 000013 //* 000014 //DEL EXEC PGM=IDCAMS 000015 //SYSPRINT DD * 000016 DEL P390A.STT.DATA.VALCURVE 000017 //*
-------------------------------- SmartJCL ------------------------------- Command ===> ________________________________________________________ Command: ENTER Start RES Reset parameters
Selection Jobname ===> ________ Operation Number ===> ___ Application ID ===> MYAPP*_______ Workstation ID ===> ____ From ===> 20010601 0600 Group ===> ________ To ===> 20010701 0559 Owner ===> ____________ YYYYMMDD HHMM Simulation Simulation Type ===> FULL___ OPC Subsystem ===> OP6C Use JCL from a private JCL Library for Simulation ===> N (Y/N) Output Datasets SmartJCL Output DSN ===> P390G.HCLCHECK.HCL__________________________ SmartJCL Sysprint ===> P390G.HCLCHECK.SYSPRINT_____________________ EQQMLOG ===> P390G.HCLCHECK.EQQMLOG______________________
SmartJCLHORIZONT 118
V2R0 Release Notes
• REXX Interface - Check user standards
- Perform mass updates
• Reformat as an Edit Macro
• Integration of Control-M Auto-Edit function
• Checking procedures
• Check for existing DB2/IMS programs
• Utilities (DD-Names)
• Generates commands to recall migrated datasets
V2R0 is available since April 2007. It has following V2R0 is available since April 2007. It has following major new functions:major new functions:
SmartJCLHORIZONT 119
V2R0 - REXX Interface
• All JCL statements can be accessed for verification and modification
• The Function Package contains special functions for JCL handling, e.g. Qualifier("USER.PROD.TYPE", LAST)="TYPE“
• The Function Package contains SET functions to delete, insert or modify all statements, even complete steps
REXX is flexible, available and well known. A REXX is flexible, available and well known. A “Function Package” allows to access JCL structures “Function Package” allows to access JCL structures from SmartJCL.from SmartJCL.
SmartJCLHORIZONT 120
File Edit Confirm Menu Utilities Compilers Test Help ----------------------------------------------------------------- EDIT P390A.JCK.SCL(XMP1) 01.02 COMMAND ===> 000001 /* Scan the Joblib, and delete all DSNs from the joblib, 000002 which are not in the linklist */ 000003 000004 Stmt = GetStmt("FIRST") 000005 Type = GetType(Stmt) 000006 while Type ^= "EXEC" do 000007 if Type = "DD" & Linklist (GetValue (Stmt, "DSN")) then 000008 Stmt = DelStmt("NEXT") 000009 else 000010 Stmt = GetStmt("NEXT") 000011 Type = GetType(Stmt) 000012 end ****** ************************ Top of Data *********************
V2R0 - REXX Interface
REXX with SmartJCL Function Package
SmartJCLHORIZONT 121
V2R0 - REXX Interface
Member1 REXX //DD SYSPRINT
Modification…
Verification
Member2 REXX
MemberX etc.
SmartJCLHORIZONT 122
EDIT P390A.OPG.CNTL(TESTJCK) - 01.00 Columns 00001 00072Command ===> Scroll ===> CSR****** ********************* Top of Data ************************000001 //P390KX JOB ,'SMARTJCL',MSGCLASS=T, 000002 // NOTIFY=&SYSUID,REGION=6M 000003 //* 000004 //ADUNL EXEC PGM=OPUIAD4, 000005 // PARM='/PW=RFKEFZR',REGION=4M 000006 //SYSPRINT DD SYSOUT=* 000007 //OPUTEXT DD DISP=(NEW,PASS),DSN=&&OPUTEXT,000008 // SPACE=(TRK,(1,1)),000009 // DCB=(RECFM=FB,LRECL=80,BLKSIZE=80),UNIT=SYSDA 000010 //OPUDAT DD DISP=(NEW,PASS),DSN=&&OPUDAT1, 000011 // UNIT=SYSDA,SPACE=(CYL,(1,1)), 000012 // DCB=(RECFM=FB,LRECL=406,BLKSIZE=16240)000013 //* ****** ********************* Bottom of Data *********************
V2R0 – Reformat Edit Macro
Type JREF…
JREF
SmartJCLHORIZONT 123
EDIT P390A.OPG.CNTL(TESTJCK) - 01.00 REFORMAT WAS SUCCESSFULCommand ===> Scroll ===> CSR****** ********************* Top of Data ************************000001 //P390KX JOB 'SMARTJCL',000002 // MSGCLASS=T, 000002 // NOTIFY=&SYSUID,000004 // REGION=6M 000005 //* 000006 //ADUNL EXEC PGM=OPUIAD4, 000007 // PARM='/PW=RFKEFZR',000008 // REGION=4M 000009 //SYSPRINT DD SYSOUT=* 000010 //OPUTEXT DD DSN=&&OPUTEXT, 000011 // DISP=(NEW,PASS), 000012 // SPACE=(TRK,(1,1)),000013 // DCB=(RECFM=FB,LRECL=80,BLKSIZE=80),000014 // UNIT=SYSDA 000015 //OPUDAT DD DSN=&&OPUDAT1,000016 // DISP=(NEW,PASS), 000017 // SPACE=(CYL,(1,1)), 000018 // DCB=(RECFM=FB,LRECL=406,BLKSIZE=16240)
V2R0 – Reformat Edit Macro
…to get reformatted JCL that is much more easy to read!
SmartJCLHORIZONT 124
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------EDIT P390A.HUP.PLI.DEV($C1) - 01.02 COMMAND ===> ****** ********************* Top of Data *************************000001 //E5MS130S JOB (ACCOUNT),'HORIZONT',CLASS=3,MSGCLASS=T 000002 //* 000003 //DUMP EXEC PGM=ICEMAN,PARM='ABEND,HIPRMAX=0' 000004 //SORTIN DD DSN=P390C.TEMP.SMF2.$,DISP=SHR 000005 //SYSOUT DD SYSOUT=* 000006 //SYSIN DD * 000007 SORT FIELDS=COPY,SKIPREX=770000,STOPAFT=785000 =NOTE= JCKxxxxE 00,E5MS130S,SORTOUT DD STATEMENT MISSING ****** ***************** Bottom of Data **************************
V2R0 - Utilities
Check DD names and syntax of utility programs
•IEBGENER•IEBCOPY•IDCAMS •SORT
SmartJCLHORIZONT 125
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------- EDIT P390A.HUP.PLI.DEV($C1) - 01.02 COMMAND ===> ****** ********************** Top of Data ********************* =NOTE= P01//DB2TSO PROC =NOTE= P01//DB2TSO EXEC PGM=IKJEFT01,REGION=4000K =NOTE= P01//STEPLIB DD DSN=DSN510.SDSNLOAD, =NOTE= P01// DISP=SHR =NOTE= P01//SYSPRINT DD SYSOUT=* =NOTE= P01//SYSTSPRT DD SYSOUT=* =NOTE= P01//SYSUDUMP DD SYSOUT=* =NOTE= P01//SYSDBOUT DD SYSOUT=* =NOTE= P01//SYSOUT DD SYSOUT=* =NOTE= P01$/SYSTSIN DD * =NOTE= P01DSN SYSTEM(DSN1) =NOTE= P01RUN PROGRAM(XXRICPTS) PLAN(XXRICPTS) + =NOTE= P01PARM('DEP(0),ER(0)/DB2SSID=DSN1') + =NOTE= P01LIBRARY('P390A.XINFO.LOAD') =NOTE= JCKxxxxE 00,XXRJCPT1,00000,PROGRAM XXRICPTS NOT FOUND =NOTE= P01$/CPTTO DD DSN=P390A.XINFO.DATA.TABLES,
V2R0 - DB2 Programs
Check if DB2 Program exists
SmartJCLHORIZONT 126
File Edit Confirm Menu Utilities Compilers Test Help -------------------------------------------------------------EDIT P390A.HUP.PLI.DEV($C1) - 01.02 COMMAND ===> ****** ********************** Top of Data *********************000001 //#IMS JOB (BVAV90100000SAHG0N), 000002 // MSGCLASS=X,CLASS=R 000003 /*JOBPARM S=ANY,LINECT=0 000004 //****************************************************** 000005 //*+BAH04029 ---- JOBDOK --------------------------* 000006 //****************************************************** 000007 //G EXEC PGM=DFSRRC00,REGION=4200K, .HAAA // PARM='DLI,A387,BVAHLES,,0000,,0,,N,,,IMS1,,Y,N,IRLM' ==MSG> JCK0440E PROGRAM DFSRRC00 NOT FOUND ON SEARCH PATH 000009 //* ! ! !!!! ! !_______MONITOR 000010 //* PROGRAMM_! ! !!!! !__________SRCH 000011 //* PSBNAME_______! !!!!_____________RST 000012 //* SPIE_________________!!!______________EXCPVR 000013 //* TEST__________________! .HAAB //STEPLIB DD DSN=RZR.IMS.USERDC,DISP=SHR .HAAC // DD DSN=RZR.IMS.RESLIB,DISP=SHR
V2R0 – IMS Programs
Check if IMS program exists
SmartJCLHORIZONT 127
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------- EDIT P390A.JCK.JCKMIG0 - 01.00 COMMAND ===> ****** ********************** Top of Data ********************* HRECALL 'P390A.JCK.DATA.MIGGDG.G0001V00'/* MIGGDG00 MIGRAT */ HRECALL 'P390A.JCK.DATA.MIGGDG.G0002V00'/* MIGGDG00 MIGRAT */ HRECALL 'P390A.JCK.DATA.MIGGDG.G0003V00'/* MIGGDG00 MIGRAT */ HRECALL 'P390A.JCK.DATA.MIGGDG.G0004V00'/* MIGGDG00 MIGRAT */ HRECALL 'P390A.JCK.DATA.MIGGDG.G0005V00'/* MIGGDG00 MIGRAT */ HRECALL 'P390A.JCK.DATA.MIG.DS02' /* MIGGDG01 MIGRAT */ HRECALL 'P390A.JUP.DATA.KSDSTEST' /* MIGVSAM0 MIGRAT */ HRECALL 'P390A.JCK.DATA.MIG.DS04' /* MIG01 MIGRAT */ HRECALL 'P390A.JCK.DATA.MIG.DS05' /* MIG01 MIGRAT */ HRECALL 'P390A.JUP.DATA.KSDSTEST.DATA' /* MIG06 MIGRAT */
V2R0 – Recall Commands
The names of migrated data sets are written to file JCKMIGO
SmartJCLHORIZONT 128
Any Questions about SmartJCL 2.0?
File Edit Confirm Menu Utilities Compilers Test Help --------------------------------------------------------------------------- EDIT P390H.SPFTEMP1.CNTL Columns 00001 00072 Command ===> JCK Scroll ===> CSR ****** ***************************** Top of Data ************************** =NOTE= LABEL MSG.NO. ERROR MESSAGE =NOTE= ------ -------- ------------------------------------------------------ =NOTE= .HAAA JUP0008E 00, ,00009,INVALID JCL STATEMENT: ' =NOTE= .HAAB JCK0002E 00, ,00000,INVALID STMT ' IN ROUTINE JCKJOB =NOTE= .HAAC JCK0316E 00, ,00000,DATA SET NOT FOUND IN CATALOG =NOTE= .HAAD JCK0316E 00, ,00000,DATA SET NOT FOUND IN CATALOG =NOTE= .HAAE JCK0270E 00, ,00000,INVALID VALUE CATL FOR THE NORMAL 000001 //P390HX JOB ,'HORIZONT',MSGCLASS=T, 000002 // NOTIFY=&SYSUID,REGION=6M =NOTE= -- NOTIFY=P390H,REGION=6M 000003 //* 000004 //****************************************************************** 000005 //* UNLOAD OPC-VSAM DSN=P390A.OPCESA.V2R0M0.AD 000006 //****************************************************************** 000007 //ADUNL EXEC PGM=OPUIAD5, .HAAB // PARM=('DEP(0),ER(0)/' =NOTE= JUP0008E 00, ,00009,INVALID JCL STATEMENT: ' =NOTE= JCK0002E 00, ,00000,INVALID STMT ' IN ROUTINE JCKJOB 000009 // 'OI=N PC=OS2 OD=N EX=Y PW=RNCECLI')
File Edit Confirm Menu Utilities Compilers Test Help ---------------------------------------------------------------------- EDIT P390A.HUP.PLI.DEV($C1) - 01.02 Columns 000 Command ===> Scroll = ****** ***************************** Top of Data ********************* =NOTE> SmartJCL JCL XREF LISTING =NOTE> --------------------------------------------------------------- 000003 //JCLCHECK JOB ,'HORIZONT/DIRNBERGER',MSGCLASS=T,CLASS=A, 000004 // NOTIFY=&SYSUID =NOTE> +++ JCK1234I JOB FOUND IN APPLICATION STTMONTH01 =NOTE> +++ JCK1234I PREDECESSOR: STTMONTH00 JCLCHK01 =NOTE> +++ JCK1234I PREDECESSOR: STTMONTH00 JCLCHK02 =NOTE> +++ JCK1234I SUCCESSOR: - =NOTE> +++ JCK1234I SPECRES: INITA =NOTE> +++ JCK1234I SPECRES: STT 000011 //* 000012 //PROCS JCLLIB ORDER=(P390A.ROSE.PLI.CNTL) 000013 //* 000014 //DEL EXEC PGM=IDCAMS 000015 //SYSPRINT DD * 000016 DEL P390A.STT.DATA.VALCURVE 000017 //*
-------------------------------- SmartJCL ------------------------------- Command ===> ________________________________________________________ Command: ENTER Start RES Reset parameters
Selection Jobname ===> ________ Operation Number ===> ___ Application ID ===> MYAPP*_______ Workstation ID ===> ____ From ===> 20010601 0600 Group ===> ________ To ===> 20010701 0559 Owner ===> ____________ YYYYMMDD HHMM Simulation Simulation Type ===> FULL___ OPC Subsystem ===> OP6C Use JCL from a private JCL Library for Simulation ===> N (Y/N) Output Datasets SmartJCL Output DSN ===> P390G.HCLCHECK.HCL__________________________ SmartJCL Sysprint ===> P390G.HCLCHECK.SYSPRINT_____________________ EQQMLOG ===> P390G.HCLCHECK.EQQMLOG______________________
SmartJCLHORIZONT 129
V1R1 Release Notes
• Exclude datasets from catalog check
• Include/exclude list for jobs (Batch Mode)
• Individual control of each message
• Display TWS data
• Reformat (jobs and procedures)
• Control-M variable substitution
• Messages are written to several output files
SmartJCL V1R1 is available since June 2003. It has SmartJCL V1R1 is available since June 2003. It has following major new functions:following major new functions:
SmartJCLHORIZONT 130
EDIT P390A.OPG.CNTL(TESTJCK) - 01.00 Columns 00001 00072Command ===> Scroll ===> CSR****** ********************* Top of Data ************************000001 //P390KX JOB ,'SMARTJCL',MSGCLASS=T, 000002 // NOTIFY=&SYSUID,REGION=6M 000003 //* 000004 //ADUNL EXEC PGM=OPUIAD4, 000005 // PARM='/PW=RFKEFZR',REGION=4M 000006 //SYSPRINT DD SYSOUT=* 000007 //OPUTEXT DD DISP=(NEW,PASS),DSN=&&OPUTEXT,000008 // SPACE=(TRK,(1,1)),000009 // DCB=(RECFM=FB,LRECL=80,BLKSIZE=80),UNIT=SYSDA 000010 //OPUDAT DD DISP=(NEW,PASS),DSN=&&OPUDAT1, 000011 // UNIT=SYSDA,SPACE=(CYL,(1,1)), 000012 // DCB=(RECFM=FB,LRECL=406,BLKSIZE=16240)000013 //* ****** ********************* Bottom of Data *********************
V1R1 - Reformat
Unformatted JCL is difficult
to read
SmartJCLHORIZONT 131
EDIT P390A.OPG.CNTL(TESTJCK) - 01.00 Columns 00001 00072Command ===> Scroll ===> CSR****** ********************* Top of Data ************************000001 //P390KX JOB 'SMARTJCL',000002 // MSGCLASS=T, 000002 // NOTIFY=&SYSUID,000004 // REGION=6M 000005 //* 000006 //ADUNL EXEC PGM=OPUIAD4, 000007 // PARM='/PW=RFKEFZR',000008 // REGION=4M 000009 //SYSPRINT DD SYSOUT=* 000010 //OPUTEXT DD DSN=&&OPUTEXT, 000011 // DISP=(NEW,PASS), 000012 // SPACE=(TRK,(1,1)),000013 // DCB=(RECFM=FB,LRECL=80,BLKSIZE=80),000014 // UNIT=SYSDA 000015 //OPUDAT DD DSN=&&OPUDAT1,000016 // DISP=(NEW,PASS), 000017 // SPACE=(CYL,(1,1)), 000018 // DCB=(RECFM=FB,LRECL=406,BLKSIZE=16240)
V1R1 - Reformat
Reformatted JCL is• easier to read• helps to avoid
mistakes • reduces costs
SmartJCLHORIZONT 132
V1R1 - Reformat
• The positions of keyword, value and continuation line can be specified individually for each JCL parameter
• Flexible handling of comments
• Reformats IF/ELSE statements
The reformat function can be adapted to user’s The reformat function can be adapted to user’s requirements and standards, e.g. requirements and standards, e.g.
SmartJCLHORIZONT 133
-------------------------- SmartJCL Reformat--------------------- Command ===> Primary commands (top): REF Edit reformat parameters JOBLIST Edit joblist JOBLIB Edit joblibraries Select one of the following options and press ENTER. Member ===> RFMT#E1_ - ________ Specify one member (left) if you would like to check a a single job, or specify two members if you would like to check a range of members. Joblist ===> ____________________________________________ If you do not specify any member, the Joblist is used for selection. Joblibs ===> P390G.SMARTJCL.JOBLIBS______________________ Submit ===> E S submit job, E edit before submit
V1R1 - Reformat
The ISPF Dialog for
the reformat function
SmartJCLHORIZONT 134
File Edit Confirm Menu Utilities Compilers Test Help -----------------------------------------------------------------EDIT P390A.HUP.PLI.DEV($C1) - 01.02 COMMAND ===> ****** ************************ Top of Data *********************==MSG> PREDECESSORS: ==MSG> APPLICATION OPNO JOBNAME ==MSG> ------------------------------ ==MSG> XINFO22 61 XXRJCM2 ==MSG> XINFO22 60 XXRJCM1 ==MSG> XINFO22 1 ==MSG> SUCCESSORS: ==MSG> APPLICATION OPNO JOBNAME ==MSG> ------------------------------ ==MSG> XINFO22 64 XXRJDBLC ==MSG> SPECIAL RESOURCES: ==MSG> -------------------------------------------- ==MSG> DSN1 =NOTE= ******************* JCL PREPARED BY SMARTJCL/SIMJCL *******=NOTE= ************************** END OF PREPARED JCL ************000001 //XXRJCM3 JOB (ACCOUNT),'HORIZONT',MSGCLASS=T,CLASS=A,
V1R1 - TWS Information
Displaying TWS-
Information in the JCL!
SmartJCLHORIZONT 135
Display Filter View Print Options Help ----------------------------------------------------------------- SDSF OUTPUT DISPLAY JCKJPS2 JOB03904 DSID 105 LINE 0 CO COMMAND INPUT ===> SCR ********************************* TOP OF DATA ********************MSG.NO. ERROR MESSAGE -------- ---------------------------------------------------------JCK0402E MISPLACED DD STATEMENT JCK0400E JOB HAS NO STEPS JCK0416E JOB NAME HAS TO BE EQUAL WITH MEMBER NAME JCK0402E MISPLACED DD STATEMENT JCK0400E JOB HAS NO STEPS JCK0400E JOB HAS NO STEPS JCK0416E JOB NAME HAS TO BE EQUAL WITH MEMBER NAME JCK0440E PROGRAM ZVB245 NOT FOUND ON SEARCH PATH JCK0457W DATA SET SYS1.CEE.SCEERUN NOT IN CATALOG JCK0441E LIBRARY COULD NOT BE ALLOCATED TO SEARCH FOR PROGRAM, DSNJCK0515E DATA SET CANNOT BE FOUND/NOT IN CATALOG, DSN = "SYS1.CEE. JCK0457W DATA SET SSKM.SMART611.DCALOADP NOT IN CATALOG JCK0441E LIBRARY COULD NOT BE ALLOCATED TO SEARCH FOR PROGRAM, DSN
V1R1 – Separated Output
SUMMARY…scroll to the left…
The messages are written to separate files
• JCKSUMO (Summary)• JCKDTLO (Detailed)
SmartJCLHORIZONT 136
Display Filter View Print Options Help ----------------------------------------------------------------- SDSF OUTPUT DISPLAY JCKJPS2 JOB03904 DSID 105 LINE 0 CO COMMAND INPUT ===> SCR ********************************* TOP OF DATA ********************LIB MEMBER JOBNAME JSTEPNAME PSTEPNAME DD-NAME ---- -------- -------- --------- --------- --------J001 $$$CONT SYSIN J001 $$$CONT SYSIN J001 $C DDP4 J001 $DDTABLE SYSIN J001 $DDTABLE SYSIN J001 $PROLOG J001 $SIGNAL #ZVB245 J001 $SIGNAL #ZVB245 STEP1 STEP1 J001 $SIGNAL #ZVB245 STEP1 STEP1 STEPLIB J001 $SIGNAL #ZVB245 STEP1 STEP1 STEPLIB J001 $SIGNAL #ZVB245 STEP1 STEP1 STEPLIB J001 $SIGNAL #ZVB245 STEP1 STEP1 STEPLIB J001 $SIGNAL #ZVB245 STEP1 STEP1 STEPLIB
V1R1 - Output, e.g. Summary
…only most interesting information
SmartJCLHORIZONT 137
Display Filter View Print Options Help ----------------------------------------------------------------- SDSF OUTPUT DISPLAY JCKJPS2 JOB03904 DSID 105 LINE 0 CO COMMAND INPUT ===> SCR ********************************* TOP OF DATA ********************000100 .HAAA JCK0402E MISPLACED DD STATEMENT .HAAA JCK0400E JOB HAS NO STEPS P390A.JUP.DATA.JOBLIB($PROLOG): 000001 //* -------------------------------------------------------000002 //* JD021016, ........ 000003 //* -------------------------------------------------------000004 //* .HAAA JCK0400E JOB HAS NO STEPS P390A.JUP.DATA.JOBLIB($SIGNAL): 000001 //#ZVB245 JOB (OA-MF-NB),MSGLEVEL=(1,1),CLASS=P,MSGCLASS=T,000002 // TIME=1440,REGION=8M,TYPRUN=SCAN .HAAA JCK0416E JOB NAME HAS TO BE EQUAL WITH MEMBER NAME
V1R1 - Separate Output, e.g. Detaillied
All information, including the JCL
SmartJCLHORIZONT 138
---------------------- CTM/SimJCL Startpanel --------------------- Command ===> Select one of the following options and press ENTER 1 JOBLIST - Select jobs for simulation 2 SIMULATE - Start JCL simulation based on previous selection 3 CHECK - Start JCL check based on previous simulation 4 CHECK - Start JCL check without simulation 5 REFORMAT - Start JCL reformat (pre release) Note: Options 3, 4, 5 are only available, if a JCL checker is installed, for example SmartJCL
V1R1 - Control-M Interface
Control-M Interface Mainpanel
SmartJCLHORIZONT 139
------------------ CTM/SimJCL - Create Joblist ----------------- Command ===> top : RESET restore default values, JC change jobcards Selection Table ===> ____________________ Application ===> ____________________ Group ===> ____________________ Jobname ===> ________ Owner ===> ______________________________ Schedule Library DSN ===> DATA.CTM.MAN.SCHEDULE___________________ Output files Joblist ===> P390G.MJV.SELJOBS_______________________ Variablelist ===> P390G.MJV.SETVAR________________________ Submit ===> S S submit job, E edit before submit
V1R1 - Control-M Interface
Select Jobs by using Control-M
fields
SmartJCLHORIZONT 140
Any Questions about SmartJCL?
File Edit Confirm Menu Utilities Compilers Test Help --------------------------------------------------------------------------- EDIT P390H.SPFTEMP1.CNTL Columns 00001 00072 Command ===> JCK Scroll ===> CSR ****** ***************************** Top of Data ************************** =NOTE= LABEL MSG.NO. ERROR MESSAGE =NOTE= ------ -------- ------------------------------------------------------ =NOTE= .HAAA JUP0008E 00, ,00009,INVALID JCL STATEMENT: ' =NOTE= .HAAB JCK0002E 00, ,00000,INVALID STMT ' IN ROUTINE JCKJOB =NOTE= .HAAC JCK0316E 00, ,00000,DATA SET NOT FOUND IN CATALOG =NOTE= .HAAD JCK0316E 00, ,00000,DATA SET NOT FOUND IN CATALOG =NOTE= .HAAE JCK0270E 00, ,00000,INVALID VALUE CATL FOR THE NORMAL 000001 //P390HX JOB ,'HORIZONT',MSGCLASS=T, 000002 // NOTIFY=&SYSUID,REGION=6M =NOTE= -- NOTIFY=P390H,REGION=6M 000003 //* 000004 //****************************************************************** 000005 //* UNLOAD OPC-VSAM DSN=P390A.OPCESA.V2R0M0.AD 000006 //****************************************************************** 000007 //ADUNL EXEC PGM=OPUIAD5, .HAAB // PARM=('DEP(0),ER(0)/' =NOTE= JUP0008E 00, ,00009,INVALID JCL STATEMENT: ' =NOTE= JCK0002E 00, ,00000,INVALID STMT ' IN ROUTINE JCKJOB 000009 // 'OI=N PC=OS2 OD=N EX=Y PW=RNCECLI')
File Edit Confirm Menu Utilities Compilers Test Help ---------------------------------------------------------------------- EDIT P390A.HUP.PLI.DEV($C1) - 01.02 Columns 000 Command ===> Scroll = ****** ***************************** Top of Data ********************* =NOTE> SmartJCL JCL XREF LISTING =NOTE> --------------------------------------------------------------- 000003 //JCLCHECK JOB ,'HORIZONT/DIRNBERGER',MSGCLASS=T,CLASS=A, 000004 // NOTIFY=&SYSUID =NOTE> +++ JCK1234I JOB FOUND IN APPLICATION STTMONTH01 =NOTE> +++ JCK1234I PREDECESSOR: STTMONTH00 JCLCHK01 =NOTE> +++ JCK1234I PREDECESSOR: STTMONTH00 JCLCHK02 =NOTE> +++ JCK1234I SUCCESSOR: - =NOTE> +++ JCK1234I SPECRES: INITA =NOTE> +++ JCK1234I SPECRES: STT 000011 //* 000012 //PROCS JCLLIB ORDER=(P390A.ROSE.PLI.CNTL) 000013 //* 000014 //DEL EXEC PGM=IDCAMS 000015 //SYSPRINT DD * 000016 DEL P390A.STT.DATA.VALCURVE 000017 //*
-------------------------------- SmartJCL ------------------------------- Command ===> ________________________________________________________ Command: ENTER Start RES Reset parameters
Selection Jobname ===> ________ Operation Number ===> ___ Application ID ===> MYAPP*_______ Workstation ID ===> ____ From ===> 20010601 0600 Group ===> ________ To ===> 20010701 0559 Owner ===> ____________ YYYYMMDD HHMM Simulation Simulation Type ===> FULL___ OPC Subsystem ===> OP6C Use JCL from a private JCL Library for Simulation ===> N (Y/N) Output Datasets SmartJCL Output DSN ===> P390G.HCLCHECK.HCL__________________________ SmartJCL Sysprint ===> P390G.HCLCHECK.SYSPRINT_____________________ EQQMLOG ===> P390G.HCLCHECK.EQQMLOG______________________
SmartJCLHORIZONT 141
Many thanks for your attention
HORIZONTSoftware for Datacenters
Garmischer Str. 8 D- 80339 MünchenTel ++49(0)89 / 540 162 - 0www.horizont-it.com
The Easy Way to Faultless JCL
SmartJCL