Title: SmartJCL
1SmartJCL
The Easy Way to Faultless JCL
Release Notes
HORIZONT Software for Datacenters
Garmischer Str. 8 D- 80339 München Tel 49(0)89
/ 540 162 0www.horizont-it.com
2Release Notes
Actual Release
V3R0
V2R4
V2R3
V2R2
V2R1
V2R0
3SmartJCL 3.0
SmartJCL V3R0 will be available September 2009.
It will have following major new functions
- 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
SmartJCLs REXX interface - SmartJCL will enable non-programmers to specify
complex rules by using a simple ISPF dialog - See dialog on next slides
4Standard Check Entry Panel
The entry panel offers - to work with rules - to
generate SRI code
5Standard Check Options
Specify with which rules you want to work ...
... and where the generated code is to be stored.
6Standard Check Entry Panel
Start working with rules ...
7List of Rules
Create a new rule or select an existing one to
modify it ...
8Modify 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.
9Selection Criteria
All possible selection criteria can be picked
from a list
10Selection Criteria
Further down in the list ...
... the selection criteria provided by Standard
Check
11Selection Criteria
JOB statement is selected
and all possible parameters and sub-parameters
are listed .
12Comparison Operators
... as well as all comparison operators
13Specify Compare Values
Values for substr
Here you can enter a list of the values.
14Action for a Rule
What should happen, if a condition is true?
15Action for a Rule
A message can be issued or a REXX can be called.
16Action for a Rule
Where will the message appear?
17Action for a Rule
The message has to be defined in a message member.
18XML for a Rule
The rules created in the dialog are stored as XML.
19Generate SRI Code
Option 2 creates SmartJCL REXX Inter-face Code
from XML.
20Generate SRI Code
21Generate SRI Code
The created REXX code has to be specified with
para-meter SRI-PRG for Check or Reformat.
22SmartJCL 3.0
Other new functions and enhancements
- 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
23SmartJCL 3.0
Other new functions and enhancements (2)
- 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 MEMBERMEMNAME
24SmartJCL 3.0
Other new functions and enhancements (3)
- 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
25SmartJCL 3.0
Other new functions and enhancements (4)
- 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.
26Any Questions about SmartJCL?
Info_at_Horizont-it.com
27SmartJCL V2R4
SmartJCL V2R4 is available since Q3 2008. It has
following major new functions
- 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 parametersDB2-SUBSYS-CHECK
DB2SCY/NDB2-GROUPdb2_group_nameDB2-SUBSYSsubs
ys_name - Allow default load library for "exist program"
check - New parameter DEFAULT-LOADLIB
DLLP390A.JCK.DEV.LOAD
28SmartJCL 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 parameterREAD-SYSTEM-PROCLIB RSPY/N
- Better adaption to customer environment
- Set priority of parameters versus DD statements
for further datasets (JCKMSGI, JCKMSXI, PWDIN) - New parameterJCK-FILE JCK-FILEPARM 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.
29SmartJCL V2R4
- Better performance
- JCK macro reacts faster
- Optimized catalog check under JES3 -gt less CPU
time - Improved ISPF dialog
- See next slides
30Improved ISPF Dialog
The main panel is an entry point to all other
dialogs ...
...and it informs about available edit macros.
31Specify Joblibs and Select Members
Specify joblibs and select members ...
32Select Members
Type JCK to start the check
Select members by typing S in front of the
member, or specify a sequence of jobs by using
numbers, e.g. 1, 2, 3
33Check Members
the selected members are checked sequentially,
every job that has an error is displayed in the
editor
34Display Results
...at the end the selection list shows you the
resulting return codes.
35Foreground Mode
Another option is to check the selected members
in FOREground...
36Foreground Mode - Summary
... the summary is displayed right after the
check
..from here you can access directly messages,
details, and sysprint
37Batch Mode
BATch checks the selected members in batch mode
38Batch Mode Generated Job
... simply submit the generated job
39You want to see a preview of V3R0?
40SmartJCL V2R3
SmartJCL V2R3 is available since June 2007. It
has following major new functions
- 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
41SmartJCL Easier Installation
SmartJCL 2.2 used a SVC for authorization.
Disadvantages were
- SVC installation required system programming
- Assembler coding
- SVC has to be loaded
- Therefore SVC was not accepted at many sites
42SmartJCL Easier Installation
Now the TSO Service Facility is used.
- Parmlib member IKJTSOnn has to be
modifiedAUTHTSF 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 activatedSET
IKJTSOnn
43New IP Communication
NEW
OLD
ROTJSHD
TP Program
ROTJSHD
TP Program
ROTJSHD
Port 1
Port 1
Port 1
Port 2
Server program uses the original line to send
data to the client. That avoids firewall problems
JCL inISPF Editor
JCL inISPF Editor
44SmartJCL Simulation TWS
An additional TWS controller is used for JCL
tailoring (variable substitution). Advantages are
- 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
45SmartJCL Simulation TWS
46SmartJCL - TWS
Built and start Sim TWS.Create LTP, CP.Select
Jobs
Simulate JobsRemove Sim TWS
Start JCL Check
47SmartJCL REXX interface
New REXX interface functions for ....
- 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
48SmartJCL New Parameter
New parameters for ....
- 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
49Do you have any questions about SmartJCL 2.3?
Info_at_Horizont-it.com
50SmartJCL V2R2
SmartJCL V2R2 is available since July 2006. It
has following major new functions
- 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
51SmartJCL - Performance
The performance is drastically improved for edit
macros JCK and OSJ JCK.
- 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
52SmartJCL - Performance
53SmartJCL - Check with any user
The "RACF Access Check" was introduced with
SmartJCL V2R1. It allows to check the JCL with
alternative users.
- 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
54SmartJCL - Extended TWS Simulation
SmartJCl allows to simulate TWS variable
substitution.
- Up to now SmartJCL offers two different ways to
simulate variable substitution - ACTIONSIMULATE, PIF Request JCLPREPA
- To slow for large job amounts ( gt 5000)
- Slows down controller performance, blocks JS file
- ACTIONSUBSTITUTE, 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)!
55SmartJCL - Extended TWS Simulation
New solution in SmartJCL V2R2 Combine both ways!
- 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 customers
environment - Worst case Second step is always required!
56SmartJCL - Extended TWS Simulation
New parameters (old parameters are still valid)
- ACTIONPIFSIM
- Old ACTIONSIMULATE
- ACTIONHORIZONTSIM
- Old ACTIONSUBSTITUTE
- ACTIONSIM
- New Combined Substitution
- Only available in batch mode
57SmartJCL - Extended TWS Simulation
Example OADID is not replaced by HORIZONTSIM
...
... but in the second step by JCLPREPA
58SmartJCL - OSJ Edit Macro
An exampleThe 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.
59SmartJCL - OSJ Edit Macro
SP
...type "SP" to specify additional parameters...
60SmartJCL - OSJ Edit Macro
...change parameter!
61SmartJCL - OSJ Edit Macro
The dialog can be tailored to the needs of the
users by modifying a parameter file
- Modify dialog defaults
- Specify default behave
62SmartJCL - OSJ Edit Macro
New parameter file to contol behave of the dialog
63SmartJCL - 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
64SmartJCL - Parameter
The parameters in member JCKKPARM are migrated
- Old (migrated) and new (inserted) parameters are
marked. - Only new parameter have to be adapted.
65SmartJCL - Parameter
Automatic migration during Installation
66Do you have any questions about SmartJCL 2.2?
Info_at_Horizont-it.com
67V2R1 Whats New
V2R1 is available since May 2005. 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...
68V2R1 Remote Check
The Remote Check enables you to check JCL on
another system. Advantages are
- 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 HORIZONTs standard TCP/IP architecture
- Simple TCP/IP protocol (no Framework, no APPC)
- Easy to install
69V2R1 Remote Check
The Remote Check can be used in two ways
- 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.
70V2R1 Remote Check
-------------------------- SmartJCL Remote JCL
Check -------------- Command gt
Primary commands
(top)
OPT Browse TCP/IP parameters
JOBLIST Edit joblist
JOBLIB Edit
joblibraries
Select one of the following options and press
ENTER. Member
gt ________ - ________
Specify one member (left)
to check a single job, or specify
two members (from member-to member) to check
a range of members. Joblist gt
P390G.JCK.JOBLIST___________________________
If you do not specify any
member, the Joblist will be used for
selection.
Joblibs gt
P390A.OPG.CNTL______________________________
Submit gt E S submit job, E
edit before submit
Seclect a valid server name
with S
_ CPU1
_ CPU2
Bottom of data
Remote Check ISPF Dialog
71V2R1 Remote Check
EDIT P390A.OPG.CNTL(TESTJCK) -
01.00 Command gt JCK SRVCPU1
Scroll gt CSR
Top of Data 000001
//P390KX JOB 'SMARTJCL',000002 //
MSGCLASST, 000002 //
NOTIFYSYSUID, 000004 //
REGION6M 000005 //
000006 //ADUNL EXEC
PGMOPUIAD4, 000007 //
PARM'/PWRFKEFZR', 000008 //
REGION4M 000009 //SYSPRINT DD SYSOUT
000010 //OPUTEXT DD DSNOPUTEXT, 000011 //
DISP(NEW,PASS), 000012 //
SPACE(TRK,(1,1)), 000013 //
DCB(RECFMFB,LRECL80,BLKSIZE80), 000014 //
UNITSYSDA 000015 //OPUDAT DD
DSNOPUDAT1, 000016 //
DISP(NEW,PASS), 000017 //
SPACE(CYL,(1,1)), 000018 //
DCB(RECFMFB,LRECL406,BLKSIZE16240)
Specify Target CPU
------- SmartJCL - Remote check -------
Enter password _________
Specify password
72V2R1 Remote Check
EDIT P390A.OPG.CNTL(TESTJCK) -
01.00 Command gt JCK SRVCPU1
Scroll gt CSR
Top of Data NOTE
MESSAGE SUMMARY AND COUNTS E00001, W00000,
I00000NOTE LABEL MSG.NO. ERROR MESSAGE
NOTE
------ -------- ----------------------------------
-------- NOTE .HAAA JCK0440E PROGRAM OPUIAD4
NOT FOUND ON SEARCH PATH 000001 //P390KX JOB
'SMARTJCL',000002 // MSGCLASST,
000002 //
NOTIFYSYSUID, 000004 // REGION6M
000005 //
000006 //ADUNL EXEC PGMOPUIAD4,
000007 // PARM'/PWRFKEFZR', 00
0008 // REGION4M 000009
//SYSPRINT DD SYSOUT 000010 //OPUTEXT DD
DSNOPUTEXT, 000011 //
DISP(NEW,PASS), 000012 //
SPACE(TRK,(1,1)), 000013 //
DCB(RECFMFB,LRECL80,BLKSIZE80), 000014 //
UNITSYSDA
The JCL is physically validated at the production
system, but the results are shown in the editor
on the test system
73V2R1 Remote Check Overview
PROD
TEST
TCP/IP
//DD SYSPRINT
TCP/IP
SmartJCL
Procedures
DSN2
Catalog-Check
DSN3
74V2R1 Change Facility
In addition to the REXX interface SmartJCL has a
comfortable new change function.
- 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.
75V2R1 Change Facility
In addition to the REXX Interface SmartJCL has an
integrated change facility. It allows you to
perform simple changes fast and easily. Some
examples
- CHANGE PARMDSN,VALUEPROD,NEWVALTEST
- DELETE PARMUNIT
- DELETE JOBABC,PGMIDCAMS,PARMUNIT,VALUETAPE4
76V2R1 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.
77V2R1 Access Check 2
- User sequence
- The JCL check is performed with the Userid that
is specified in the jobcard. - If no Userid is specified in the jobcard, it is
taken from the ACUID parameter. - If the ACUID parameter is missing, the Userid of
the job submitter is taken into account.
78V2R1 Access Check 3
- RACF-Audit Profil
- Since earlier versions SmartJCL has a parameter
to specify if access violations should be written
to the SYSLOG (RAYN) - The parameter "RACF-AUDIT RAN" is protected by
profile 'HORIZONT.SMARTJCL.AUTHCHK.NOLOG' in
class FACILITY. The user must have READ
authorization for this profile to accept the RAN
setting. If the user has lower access rights than
READ, the setting RAN is ignored and changed to
RAY
79V2R1 More enhancements 1
Additional enhancements
- 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.
80V2R1 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.
81V2R1 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).
82Any Questions about SmartJCL 2.1?
Info_at_Horizont-it.com
File Edit Confirm Menu Utilities Compilers
Test Help --------------------------------------
------------------------------------- EDIT
P390H.SPFTEMP1.CNTL
Columns 00001 00072 Command gt JCK
Scroll gt 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',MSGCLASST, 000002 //
NOTIFYSYSUID,REGION6M NOTE --
NOTIFYP390H,REGION6M 000003 // 000004
//
000005 // UNLOAD OPC-VSAM
DSNP390A.OPCESA.V2R0M0.AD
000006 //
000007 //ADUNL
EXEC PGMOPUIAD5,
.HAAB // PARM('DEP(0),ER(0)/'
NOTE JUP0008E 00, ,00009,INVALID JCL
STATEMENT ' NOTE JCK0002E 00,
,00000,INVALID STMT ' IN ROUTINE JCKJOB 000009
// 'OIN PCOS2 ODN EXY PWRNCECLI')
File Edit Confirm Menu Utilities Compilers
Test Help --------------------------
--------------------------------------------
EDIT P390A.HUP.PLI.DEV(C1) - 01.02
Columns 000 Command gt
Scroll
Top of Data
NOTEgt SmartJCL
JCL XREF LISTING NOTEgt -------------------------
-------------------------------------- 000003
//JCLCHECK JOB ,'HORIZONT/DIRNBERGER',MSGCLASST,C
LASSA, 000004 // NOTIFYSYSUID
NOTEgt
JCK1234I JOB FOUND IN APPLICATION STTMONTH01
NOTEgt JCK1234I PREDECESSOR
STTMONTH00 JCLCHK01 NOTEgt
JCK1234I PREDECESSOR STTMONTH00 JCLCHK02
NOTEgt JCK1234I SUCCESSOR -
NOTEgt
JCK1234I SPECRES INITA
NOTEgt JCK1234I SPECRES STT
000011 //
000012 //PROCS JCLLIB ORDER(P390A.ROSE.PL
I.CNTL) 000013 //
000014 //DEL EXEC PGMIDCAMS
000015 //SYSPRINT DD
000016 DEL P390A.STT.DATA.VALCURVE
000017 //
-------------------------------- SmartJCL
------------------------------- Command gt
__________________________________________________
______
Command ENTER Start RES Reset parameters
Selection
Jobname
gt ________ Operation Number gt ___
Application ID gt MYAPP_______
Workstation ID gt ____ From
gt 20010601 0600 Group
gt ________ To gt
20010701 0559 Owner gt
____________ YYYYMMDD
HHMM Simulation
Simulation
Type gt FULL___ OPC Subsystem gt
OP6C Use JCL from a private JCL
Library for Simulation gt N (Y/N)
Output
Datasets
SmartJCL Output DSN gt
P390G.HCLCHECK.HCL__________________________
SmartJCL Sysprint gt P390G.HCLCHECK.SYSPRI
NT_____________________ EQQMLOG
gt P390G.HCLCHECK.EQQMLOG_________________
_____
83V2R0 Release Notes
V2R0 is available since April 2007. It has
following major new functions
- 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
84V2R0 - REXX Interface
REXX is flexible, available and well known. A
Function Package allows to access JCL
structures from SmartJCL.
- 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
85V2R0 - REXX Interface
File Edit Confirm Menu Utilities Compilers
Test Help ---------------------------
-------------------------------------- EDIT
P390A.JCK.SCL(XMP1)
01.02 COMMAND gt
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
REXX with SmartJCL Function Package
86V2R0 - REXX Interface
Modification
Member1
REXX
//DD SYSPRINT
Member2
REXX
MemberX
etc.
Verification
87V2R0 Reformat Edit Macro
EDIT P390A.OPG.CNTL(TESTJCK) - 01.00
Columns 00001 00072 Command gt
Scroll gt CSR
Top of Data
000001 //P390KX JOB
,'SMARTJCL',MSGCLASST,
000002 // NOTIFYSYSUID,REGION6M
000003 //
000004 //ADUNL EXEC PGMOPUIAD4,
000005 // PARM'/PWRFKEFZR',REGION4M
000006 //SYSPRINT DD SYSOUT
000007 //OPUTEXT DD DISP(NEW,PASS),DSNOPUTEX
T,000008 // SPACE(TRK,(1,1)), 000009 //
DCB(RECFMFB,LRECL80,BLKSIZE80),UNITSYSDA
000010 //OPUDAT DD DISP(NEW,PASS),DSNOP
UDAT1, 000011 //
UNITSYSDA,SPACE(CYL,(1,1)),
000012 // DCB(RECFMFB,LRECL406,BLKSIZE
16240) 000013 //
Bottom of Data
JREF
Type JREF
88V2R0 Reformat Edit Macro
EDIT P390A.OPG.CNTL(TESTJCK) - 01.00
REFORMAT WAS SUCCESSFUL Command gt
Scroll gt CSR
Top of Data
000001 //P390KX JOB
'SMARTJCL',000002 // MSGCLASST,
000002 //
NOTIFYSYSUID, 000004 // REGION6M
000005 //
000006 //ADUNL EXEC PGMOPUIAD4,
000007 // PARM'/PWRFKEFZR', 00
0008 // REGION4M 000009
//SYSPRINT DD SYSOUT 000010 //OPUTEXT DD
DSNOPUTEXT, 000011 //
DISP(NEW,PASS), 000012 //
SPACE(TRK,(1,1)), 000013 //
DCB(RECFMFB,LRECL80,BLKSIZE80), 000014 //
UNITSYSDA 000015 //OPUDAT DD
DSNOPUDAT1, 000016 //
DISP(NEW,PASS), 000017 //
SPACE(CYL,(1,1)), 000018 //
DCB(RECFMFB,LRECL406,BLKSIZE16240)
to get reformatted JCL that is much more easy to
read!
89V2R0 - Utilities
File Edit Confirm Menu Utilities Compilers
Test Help ----------------------------
-------------------------------------- EDIT
P390A.HUP.PLI.DEV(C1) - 01.02 COMMAND gt
Top of Data
000001 //E5MS130S JOB
(ACCOUNT),'HORIZONT',CLASS3,MSGCLASST
000002 //
000003 //DUMP EXEC
PGMICEMAN,PARM'ABEND,HIPRMAX0' 000004
//SORTIN DD DSNP390C.TEMP.SMF2.,DISPSHR
000005 //SYSOUT DD SYSOUT
000006 //SYSIN DD
000007
SORT FIELDSCOPY,SKIPREX770000,STOPAFT785000
NOTE JCKxxxxE 00,E5MS130S,SORTOUT DD
STATEMENT MISSING
Bottom of Data
- IEBGENER
- IEBCOPY
- IDCAMS
- SORT
Check DD names and syntax of utility programs
90V2R0 - DB2 Programs
File Edit Confirm Menu Utilities Compilers
Test Help ---------------------------
---------------------------------- EDIT
P390A.HUP.PLI.DEV(C1) - 01.02 COMMAND
gt
Top of Data
NOTE P01//DB2TSO PROC
NOTE P01//DB2TSO EXEC PGMIKJEFT01,REGION4
000K NOTE
P01//STEPLIB DD DSNDSN510.SDSNLOAD,
NOTE P01//
DISPSHR
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)/DB2SSIDDSN1')
NOTE P01LIBRARY('P390A.XINFO.LOAD')
NOTE
JCKxxxxE 00,XXRJCPT1,00000,PROGRAM XXRICPTS NOT
FOUND NOTE P01/CPTTO DD
DSNP390A.XINFO.DATA.TABLES,
Check if DB2 Program exists
91V2R0 IMS Programs
File Edit Confirm Menu Utilities Compilers
Test Help ----------------------------
--------------------------------- EDIT
P390A.HUP.PLI.DEV(C1) - 01.02 COMMAND
gt
Top of Data
000001 //IMS JOB
(BVAV90100000SAHG0N), 000002 //
MSGCLASSX,CLASSR
000003 /JOBPARM SANY,LINECT0
000004
//
000005 //BAH04029 ---- JOBDOK
-------------------------- 000006
//
000007 //G EXEC PGMDFSRRC00,REGION
4200K, .HAAA //
PARM'DLI,A387,BVAHLES,,0000,,0,,N,,,IMS1,,Y,N,IRL
M' MSGgt JCK0440E PROGRAM DFSRRC00
NOT FOUND ON SEARCH PATH
000009 // ! ! !!!! !
!_______MONITOR 000010 //
PROGRAMM_! ! !!!! !__________SRCH
000011 // PSBNAME_______!
!!!!_____________RST
000012 // SPIE_________________!!!____________
__EXCPVR 000013 //
TEST__________________!
.HAAB //STEPLIB DD
DSNRZR.IMS.USERDC,DISPSHR
.HAAC // DD DSNRZR.IMS.RESLIB,DI
SPSHR
Check if IMS program exists
92V2R0 Recall Commands
File Edit Confirm Menu Utilities Compilers
Test Help ---------------------------
---------------------------------- EDIT
P390A.JCK.JCKMIG0 - 01.00 COMMAND gt
Top of Data
HRECALL
'P390A.JCK.DATA.MIGGDG.G0001V00'/ MIGGDG00
MIGRAT / HRECALL 'P390A.JCK.DATA.MIGGDG.G0002
V00'/ MIGGDG00 MIGRAT / HRECALL
'P390A.JCK.DATA.MIGGDG.G0003V00'/ MIGGDG00
MIGRAT / HRECALL 'P390A.JCK.DATA.MIGGDG.G0004
V00'/ 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.DAT
A' / MIG06 MIGRAT /
The names of migrated data sets are written to
file JCKMIGO
93Any Questions about SmartJCL 2.0?
Info_at_Horizont-it.com
File Edit Confirm Menu Utilities Compilers
Test Help --------------------------------------
------------------------------------- EDIT
P390H.SPFTEMP1.CNTL
Columns 00001 00072 Command gt JCK
Scroll gt 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',MSGCLASST, 000002 //
NOTIFYSYSUID,REGION6M NOTE --
NOTIFYP390H,REGION6M 000003 // 000004
//
000005 // UNLOAD OPC-VSAM
DSNP390A.OPCESA.V2R0M0.AD
000006 //
000007 //ADUNL
EXEC PGMOPUIAD5,
.HAAB // PARM('DEP(0),ER(0)/'
NOTE JUP0008E 00, ,00009,INVALID JCL
STATEMENT ' NOTE JCK0002E 00,
,00000,INVALID STMT ' IN ROUTINE JCKJOB 000009
// 'OIN PCOS2 ODN EXY PWRNCECLI')
File Edit Confirm Menu Utilities Compilers
Test Help --------------------------
--------------------------------------------
EDIT P390A.HUP.PLI.DEV(C1) - 01.02
Columns 000 Command gt
Scroll
Top of Data
NOTEgt SmartJCL
JCL XREF LISTING NOTEgt -------------------------
-------------------------------------- 000003
//JCLCHECK JOB ,'HORIZONT/DIRNBERGER',MSGCLASST,C
LASSA, 000004 // NOTIFYSYSUID
NOTEgt
JCK1234I JOB FOUND IN APPLICATION STTMONTH01
NOTEgt JCK1234I PREDECESSOR
STTMONTH00 JCLCHK01 NOTEgt
JCK1234I PREDECESSOR STTMONTH00 JCLCHK02
NOTEgt JCK1234I SUCCESSOR -
NOTEgt
JCK1234I SPECRES INITA
NOTEgt JCK1234I SPECRES STT
000011 //
000012 //PROCS JCLLIB ORDER(P390A.ROSE.PL
I.CNTL) 000013 //
000014 //DEL EXEC PGMIDCAMS
000015 //SYSPRINT DD
000016 DEL P390A.STT.DATA.VALCURVE
000017 //
-------------------------------- SmartJCL
------------------------------- Command gt
__________________________________________________
______
Command ENTER Start RES Reset parameters
Selection
Jobname
gt ________ Operation Number gt ___
Application ID gt MYAPP_______
Workstation ID gt ____ From
gt 20010601 0600 Group
gt ________ To gt
20010701 0559 Owner gt
____________ YYYYMMDD
HHMM Simulation
Simulation
Type gt FULL___ OPC Subsystem gt
OP6C Use JCL from a private JCL
Library for Simulation gt N (Y/N)
Output
Datasets
SmartJCL Output DSN gt
P390G.HCLCHECK.HCL__________________________
SmartJCL Sysprint gt P390G.HCLCHECK.SYSPRI
NT_____________________ EQQMLOG
gt P390G.HCLCHECK.EQQMLOG_________________
_____
94V1R1 Release Notes
SmartJCL V1R1 is available since June 2003. It
has following major new functions
- 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
95V1R1 - Reformat
EDIT P390A.OPG.CNTL(TESTJCK) - 01.00
Columns 00001 00072 Command gt
Scroll gt CSR
Top of Data
000001 //P390KX JOB
,'SMARTJCL',MSGCLASST,
000002 // NOTIFYSYSUID,REGION6M
000003 //
000004 //ADUNL EXEC PGMOPUIAD4,
000005 // PARM'/PWRFKEFZR',REGION4M
000006 //SYSPRINT DD SYSOUT
000007 //OPUTEXT DD DISP(NEW,PASS),DSNOPUTEX
T,000008 // SPACE(TRK,(1,1)), 000009 //
DCB(RECFMFB,LRECL80,BLKSIZE80),UNITSYSDA
000010 //OPUDAT DD DISP(NEW,PASS),DSNOP
UDAT1, 000011 //
UNITSYSDA,SPACE(CYL,(1,1)),
000012 // DCB(RECFMFB,LRECL406,BLKSIZE
16240) 000013 //
Bottom of Data
Unformatted JCL is difficult to read
96V1R1 - Reformat
- Reformatted JCL is
- easier to read
- helps to avoid mistakes
- reduces costs
EDIT P390A.OPG.CNTL(TESTJCK) - 01.00
Columns 00001 00072 Command gt
Scroll gt CSR
Top of Data
000001 //P390KX JOB
'SMARTJCL',000002 // MSGCLASST,
000002 //
NOTIFYSYSUID, 000004 // REGION6M
000005 //
000006 //ADUNL EXEC PGMOPUIAD4,
000007 // PARM'/PWRFKEFZR', 00
0008 // REGION4M 000009
//SYSPRINT DD SYSOUT 000010 //OPUTEXT DD
DSNOPUTEXT, 000011 //
DISP(NEW,PASS), 000012 //
SPACE(TRK,(1,1)), 000013 //
DCB(RECFMFB,LRECL80,BLKSIZE80), 000014 //
UNITSYSDA 000015 //OPUDAT DD
DSNOPUDAT1, 000016 //
DISP(NEW,PASS), 000017 //
SPACE(CYL,(1,1)), 000018 //
DCB(RECFMFB,LRECL406,BLKSIZE16240)
97V1R1 - Reformat
The reformat function can be adapted to users
requirements and standards, e.g.
- The positions of keyword, value and continuation
line can be specified individually for each JCL
parameter - Flexible handling of comments
- Reformats IF/ELSE statements
98V1R1 - Reformat
-------------------------- SmartJCL
Reformat--------------------- Command gt
Primary commands (top)
REF Edit
reformat parameters
JOBLIST Edit joblist
JOBLIB Edit joblibraries
Select one of the following options
and press ENTER.
Member gt RFMTE1_ -
________
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
gt ____________________________________________
If you do not specify
any member, the Joblist is used for
selection.
Joblibs gt P390G.SMARTJCL.JOBLIBS_____________
_________
Submit gt E S submit job, E edit
before submit
The ISPF Dialog for the reformat function
99V1R1 - TWS Information
File Edit Confirm Menu Utilities Compilers
Test Help ----------------------------
------------------------------------- EDIT
P390A.HUP.PLI.DEV(C1) - 01.02 COMMAND gt
Top of Data
MSGgt PREDECESSORS
MSGgt APPLICATION OPNO JOBNAME
MSGgt
------------------------------
MSGgt XINFO22
61 XXRJCM2
MSGgt XINFO22 60 XXRJCM1
MSGgt XINFO22
1
MSGgt SUCCESSORS
MSGgt APPLICATION OPNO JOBNAME
MSGgt
------------------------------
MSGgt XINFO22
64 XXRJDBLC
MSGgt SPECIAL RESOURCES
MSGgt
--------------------------------------------
MSGgt DSN1
NOTE JCL PREPARED BY
SMARTJCL/SIMJCL NOTE
END OF PREPARED JCL 000001
//XXRJCM3 JOB (ACCOUNT),'HORIZONT',MSGCLASST,CLA
SSA,
Displaying TWS-Information in the JCL!
100V1R1 Separated Output
Display Filter View Print Options Help
--------------------
---------------------------------------------
SDSF OUTPUT DISPLAY JCKJPS2 JOB03904 DSID 105
LINE 0 CO COMMAND INPUT gt
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, DSN JCK0515E
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
- The messages are written to separate files
- JCKSUMO (Summary)
- JCKDTLO (Detailed)
SUMMARYscroll to the left
101V1R1 - Output, e.g. Summary
Display Filter View Print Options Help
--------------------
---------------------------------------------
SDSF OUTPUT DISPLAY JCKJPS2 JOB03904 DSID 105
LINE 0 CO COMMAND INPUT gt
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
only most interesting information
102V1R1 - Separate Output, e.g. Detaillied
Display Filter View Print Options Help
--------------------
---------------------------------------------
SDSF OUTPUT DISPLAY JCKJPS2 JOB03904 DSID 105
LINE 0 CO COMMAND INPUT gt
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),CL
ASSP,MSGCLASST, 000002 //
TIME1440,REGION8M,TYPRUNSCAN
.HAAA JCK0416E JOB NAME HAS TO BE EQUAL WITH
MEMBER NAME
All information, including the JCL
103V1R1 - Control-M Interface
---------------------- CTM/SimJCL Startpanel
--------------------- Command gt
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
Control-M Interface Mainpanel
104V1R1 - Control-M Interface
------------------ CTM/SimJCL - Create Joblist
----------------- Command gt
top RESET
restore default values, JC change jobcards
Selection
Table gt ____________________
Application
gt ____________________
Group gt
____________________
Jobname gt ________
Owner
gt ______________________________
Schedule Library
DSN
gt DATA.CTM.MAN.SCHEDULE___________________
Output
files
Joblist gt
P390G.MJV.SELJOBS_______________________
Variablelist gt P390G.MJV.SETVAR_______
_________________
Submit gt S S submit
job, E edit before submit
Select Jobs by using Control-M fields
105Any Questions about SmartJCL?
Info_at_Horizont-it.com
File Edit Confirm Menu Utilities Compilers
Test Help --------------------------------------
------------------------------------- EDIT
P390H.SPFTEMP1.CNTL
Columns 00001 00072 Command gt JCK
Scroll gt 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',MSGCLASST, 000002 //
NOTIFYSYSUID,REGION6M NOTE --
NOTIFYP390H,REGION6M 000003 // 000004
//
000005 // UNLOAD OPC-VSAM
DSNP390A.OPCESA.V2R0M0.AD
000006 //
000007 //ADUNL
EXEC PGMOPUIAD5,
.HAAB // PARM('DEP(0),ER(0)/'
NOTE JUP0008E 00, ,00009,INVALID JCL
STATEMENT ' NOTE JCK0002E 00,
,00000,INVALID STMT ' IN ROUTINE JCKJOB 000009
// 'OIN PCOS2 ODN EXY PWRNCECLI')
File Edit Confirm Menu Utilities Compilers
Test Help --------------------------
--------------------------------------------
EDIT P390A.HUP.PLI.D