Sample of Shell Script output
Here is the Shell script output of the sample JCL convertion.
It includes the original JCL source lines, in UNIX comments fashion
#!/bin/sh
#-----------------------------------------------------------------
#- Script generated by the HHNS MVS to UNIX Migration Tool -
#- From file (stdin) - 15/01/2005 18:37:03 -
#- A.C.M.U V4.09 - (C) HHNS 1999-2005 - www.hhns.fr -
#-----------------------------------------------------------------
set -a
# *---------------------------------------------------------------
# * CONVERSION PARAMETERS -
# * Program Path : $PRGDIR
# * File Path : $MVSDATA
# * temp. files : $TEMPDIR
# * process ddnames: as Shell variables
# * process dsnames: as Files
# * process DISP= : strict, as in MVS
# *---------------------------------------------------------------
# *---------------------------------------------------------------
# * JCL source : -
# *---------------------------------------------------------------
# 0001 //JOBTST10 JOB (HHNTST),'HHNS1',CLASS=J,MSGCLASS=B,MSGLEVEL=(1,1),
# 0002 // REGION=6M,NOTIFY=OPERATOR
# 0003 //********************************************************************
# 0004 //* THIS JOB CREATES AND SORTS A FILE FROM SCRATCH.
# 0005 //* AT ENTRY : NOTHING INTERESTING
# 0006 //* AT EXIT : FILE 'REAL.TEST10HH.FILE.SAVED'IS CATALOGUED.
# 0007 //* <ANY OTHER COMMENT ...>
# 0008 //********************************************************************
# 0009 // JCLLIB ORDER=(OPERATE.PROD9.PROCLIB,OPERATE.PROD8.PROCLIB)
# 0010 // INCLUDE MEMBER=MARCEL
# 0011 //*
# 0012 //JOBLIB DD DSN=OPERATE.PROD1.LOADLIB,DISP=SHR
# 0013 // DD DSN=OPERATE.PROD2.LOADLIB,DISP=SHR
# 0014 // DD DSN=OPERATE.PROD3.LOADLIB,DISP=SHR
# 0015 //********************************************************************
# 0016 //* STEP T10S05 : PROGRAM IEFBR14
# 0017 //* REMOVES SOME OLD FILES, IF ANY
# 0018 //********************************************************************
# 0019 //STPS05 EXEC PGM=IEFBR14
# 0020 //F1 DD DSN=F1,DISP=(OLD,DELETE)
# 0021 //F2 DD DSN=F2,DISP=(OLD,DELETE)
# 0022 //F3 DD DSN=F3,DISP=(OLD,DELETE)
# 0023 //F4 INCLUDE MEMBER=DDF6
# 0024 //********************************************************************
# 0025 //* STEP T10S10 : PROGRAM IDCAMS
# 0026 //* REMOVES OLD VERSION OF FILE 'REAL.TEST10.FILE.SORTED', IF ANY
# 0027 //********************************************************************
# 0028 //STPS10 EXEC PGM=IDCAMS
# 0029 //SYSPRINT DD SYSOUT=*
# 0030 //SYSIN DD *
# 0031 DELETE REAL.TEST10HH.FILE.SAVED
# 0032 IF MAXCC = 8 THEN SET MAXCC = 0
# 0033 END
# 0034 /*
# 0035 //********************************************************************
# 0036 //* STEP T10S20 : PROGRAM TEST10HH
# 0037 //* ACCEPTS 3 PARAMETERS
# 0038 //* READS A LINE FROM SYSIN
# 0039 //* CREATES FILE 'REAL.TEST10HH.FILE', NEXT GDG
# 0040 //* USES A WORKFILE '&&WRK'
# 0041 //* USES SOME FILE WITH '$' EMBEDDED
# 0042 //********************************************************************
# 0043 //STPS20 EXEC PGM=TEST10HH,COND=(4,LE),
# 0044 // PARM=(1515,'L''ELEVE BAT DE L''AILE DANS L''ILE D''OLEROX
# 0045 // N',1000)
# 0046 //SYSTSPRT DD SYSOUT=*
# 0047 //SYSOUT DD SYSOUT=*
# 0048 //SYSPRINT DD SYSOUT=*
# 0049 //SYSUDUMP DD SYSOUT=D
# 0050 //WRKFILE1 DD DSN=&&WRK,DISP=(NEW,PASS)
# 0051 //SAMPLE$ DD DSN=$TEST.SAMPLE$.DOLLAR,DISP=SHR
# 0052 //TST10F DD DSN=REAL.TEST10HH.FILE(+1),DISP=(NEW,KEEP)
# 0053 //SYSIN DD *
# 0054 THESE ARE THE PARAMETERS FOR TEST10HH THAT ARE MORE THAN SEVENTY-ONE CH*
# 0055 ARACTERS LONG.
# 0056 /*
# 0057 //STEPLIB DD DSN=TEST10H.PROD1.LOADLIB,DISP=SHR
# 0058 // DD DSN=TEST10H.PROD2.LOADLIB,DISP=SHR
# 0059 //*
# 0060 //********************************************************************
# 0061 //* STEP T10S30 : PROGRAM SORT <USES : HHNS EXTENDED SORT/MERGE>
# 0062 //* SORTS THE PREVOUS FILE IN REVERSE ORDER, COLS 1-3
# 0063 //* IN ASCEND. ORDER, COLS 4-9
# 0064 //* RESULT IS 'REAL.TEST10HH.FILE.SORTED'
# 0065 //********************************************************************
# 0066 //STPS30 EXEC PGM=SORT,COND=(4,LE)
# 0067 //SYSOUT DD SYSOUT=*
# 0068 //SORTIN DD DSN=REAL.TEST10HH.FILE(+0),DISP=(OLD)
# 0069 //SORTOUT DD DSN=REAL.TEST10HH.FILE.SORTED,DISP=(NEW,KEEP)
# 0070 //SYSIN DD *
# 0071 SORT FIELDS=(1,3,D,4,6,A),FORMAT=BI
# 0072 /*
# 0073 //DEMO40 IF (STS20.RC EQ 0) THEN
# 0074 //********************************************************************
# 0075 //* STEP T10S40 : PROGRAM IEBGENER
# 0076 //* COPIES 'REAL.TEST10HH.FILE.SORTED' TO 'REAL.TEST10.FILE.SAVED'
# 0077 //********************************************************************
# 0078 //STPS40 EXEC PGM=IEBGENER
# 0079 //SYSUT1 DD DSN=*.STPS30.SORTOUT,DISP=OLD
# 0080 //SYSUT2 DD DSN=REAL.TEST10HH.FILE.SAVED(+1),DISP=(NEW,CATALG)
# 0081 //SYSPRINT DD SYSOUT=*
# 0082 //DEMO40 ENDIF
PID=$$
# *---------------------------------------------------------------
# some useful functions ... -
# *---------------------------------------------------------------
# -- function WTO :
# a very simple WTO function :
# WTO userid msg
WTO() {
echo $2 | write $1
}
IEFBR14() {
# -- dummy IEFBR14 : returns 0
return 0
}
rc=0 # first time, retcode is 0
#
# 0001 //JOBTST10 JOB (HHNTST),'HHNS1',CLASS=J,MSGCLASS=B,MSGLEVEL=(1,1),
# 0002 // REGION=6M,NOTIFY=OPERATOR
#
# *--------------------------------------------
# *--------------------------------------------
# *-------- START OF JOB JOBTST10 ----------
# *--------------------------------------------
# *--------------------------------------------
# ---------- Notify user OPERATOR ----------
WTO OPERATOR "$(date +%D) $(date +%T) *--- JOB JOBTST10 STARTED ---*"
# ---------- Export JOB Environment---
JOBNAME="JOBTST10"
MSGCLASS="B"
CLASS="J"
# 0009 // JCLLIB ORDER=(OPERATE.PROD9.PROCLIB,OPERATE.PROD8.PROCLIB)
# -- Setup PROCPATH variable for the INCLUDE an EXEC PROC= statements
PROCPATH="$PRGDIR/OPERATE.PROD9.PROCLIB:$PRGDIR/OPERATE.PROD8.PROCLIB:$PROCPATH"
# 0010 // INCLUDE MEMBER=MARCEL
# -- this INCLUDE statement is ignored in the demo version
# -- it would have been replaced by member 'MARCEL' from $PROCPATH
# 0012 //JOBLIB DD DSN=OPERATE.PROD1.LOADLIB,DISP=SHR
# 0013 // DD DSN=OPERATE.PROD2.LOADLIB,DISP=SHR
# 0014 // DD DSN=OPERATE.PROD3.LOADLIB,DISP=SHR
# -- this file will be processed as a UNIX PATH
JOBPATH=$PRGDIR/OPERATE.PROD1.LOADLIB:$JOBPATH
JOBPATH=$PRGDIR/OPERATE.PROD2.LOADLIB:$JOBPATH
JOBPATH=$PRGDIR/OPERATE.PROD3.LOADLIB:$JOBPATH
SAVEPATH=$PATH
PATH=$JOBPATH:$SAVEPATH
MSGLOG=MSGLOG_B
# 0019 //STPS05 EXEC PGM=IEFBR14
# *--------------------------------------------
# *--------------------------------------------
# *-------- START OF STEP STPS05 -----------
# *--------------------------------------------
# *--------------------------------------------
echo "-------- START OF STEP STPS05 ------------" >>$MSGLOG
# 0020 //F1 DD DSN=F1,DISP=(OLD,DELETE)
# -- this file is a shell variable :
F1="$MVSDATA/F1"
# -- this file is checked at start of step :
if [ ! -f "$F1" ]; then
echo "----- Missing dataset $MVSDATA/F1 -----" >> $MSGLOG
exit 23
fi
# -- this file will be deleted at end of step
# 0021 //F2 DD DSN=F2,DISP=(OLD,DELETE)
# -- this file is a shell variable :
F2="$MVSDATA/F2"
# -- this file is checked at start of step :
if [ ! -f "$F2" ]; then
echo "----- Missing dataset $MVSDATA/F2 -----" >> $MSGLOG
exit 23
fi
# -- this file will be deleted at end of step
# 0022 //F3 DD DSN=F3,DISP=(OLD,DELETE)
# -- this file is a shell variable :
F3="$MVSDATA/F3"
# -- this file is checked at start of step :
if [ ! -f "$F3" ]; then
echo "----- Missing dataset $MVSDATA/F3 -----" >> $MSGLOG
exit 23
fi
# -- this file will be deleted at end of step
# 0023 //F4 INCLUDE MEMBER=DDF6
# -- this file is not processed by demo version
# -- if would have been replaced by member 'DDF6' from PROCPATH
# -----------------------------------------------------------
# -- step STPS05 : command IEFBR14
# -- path for step :
# $PRGDIR/OPERATE.PROD1.LOADLIB +
# $PRGDIR/OPERATE.PROD2.LOADLIB +
# $PRGDIR/OPERATE.PROD3.LOADLIB
# -- file F1 : $F1 $MVSDATA/F1
# -- file F2 : $F2 $MVSDATA/F2
# -- file F3 : $F3 $MVSDATA/F3
# -----------------------------------------------------------
# -- launch the program IEFBR14
IEFBR14 2>> $MSGLOG
rc=$? # save return code for next steps
rc_STPS05=$rc
# -- Remove dataset $F1 :
[ -f "$F1" ] && rm -f "$F1"
# -- Unset shell var F1 :
[ "$F1" ] && unset F1
# -- Remove dataset $F2 :
[ -f "$F2" ] && rm -f "$F2"
# -- Unset shell var F2 :
[ "$F2" ] && unset F2
# -- Remove dataset $F3 :
[ -f "$F3" ] && rm -f "$F3"
# -- Unset shell var F3 :
[ "$F3" ] && unset F3
# *------------------------------------------
# *------------------------------------------
# *-------- END OF STEP STPS05 ----------
# *------------------------------------------
# *------------------------------------------
# 0028 //STPS10 EXEC PGM=IDCAMS
# *--------------------------------------------
# *--------------------------------------------
# *-------- START OF STEP STPS10 -----------
# *--------------------------------------------
# *--------------------------------------------
echo "-------- START OF STEP STPS10 ------------" >>$MSGLOG
# 0029 //SYSPRINT DD SYSOUT=*
# -- this file is a shell variable :
SYSPRINT="$TEMPDIR/LPD_CLASS-B-SYSPRINT.JOBTST10-STPS10-JOBTST10-$PID"
# -- this file is redirected as stdout
# -- this file is a spool file to be printed at end of step
# -- this file will be deleted at end of step
# 0030 //SYSIN DD *
# 0031 DELETE REAL.TEST10HH.FILE.SAVED
# 0032 IF MAXCC = 8 THEN SET MAXCC = 0
# 0033 END
# -- this file is redirected as stdin
# -----------------------------------------------------------
# -- step STPS10 : command IDCAMS
# -- path for step :
# $PRGDIR/OPERATE.PROD1.LOADLIB +
# $PRGDIR/OPERATE.PROD2.LOADLIB +
# $PRGDIR/OPERATE.PROD3.LOADLIB
# -- input : stdin
# -- output : stdout (> $SYSPRINT)
# -----------------------------------------------------------
# -- launch the program IDCAMS
IDCAMS > $SYSPRINT 2>> $MSGLOG <<SYSIN_EOF
DELETE REAL.TEST10HH.FILE.SAVED
IF MAXCC = 8 THEN SET MAXCC = 0
END
SYSIN_EOF
rc=$? # save return code for next steps
rc_STPS10=$rc
# -- Prints $SYSPRINT
echo "JOBTST10 - $(date)" | lpr -J JOBTST10 -P LPD_CLASS-B
[ -f "$SYSPRINT" ] && lpr -P LPD_CLASS-B "$SYSPRINT"
# -- Remove dataset $SYSPRINT :
[ -f "$SYSPRINT" ] && rm -f "$SYSPRINT"
# -- Unset shell var SYSPRINT :
[ "$SYSPRINT" ] && unset SYSPRINT
# -- Unset shell var SYSIN :
[ "$SYSIN" ] && unset SYSIN
# *------------------------------------------
# *------------------------------------------
# *-------- END OF STEP STPS10 ----------
# *------------------------------------------
# *------------------------------------------
# 0043 //STPS20 EXEC PGM=TEST10HH,COND=(4,LE),
# 0044 // PARM=(1515,'L''ELEVE BAT DE L''AILE DANS L''ILE D''OLEROX
# 0045 // N',1000)
# *--------------------------------------------
# *--------------------------------------------
# *-------- START OF STEP STPS20 -----------
# *--------------------------------------------
# *--------------------------------------------
#----------------- start of CC for step STPS20:
if [ $rc_STPS10 -le 4 ]; then #----------- CC > 0, returns false
echo "-------- START OF STEP STPS20 ------------" >>$MSGLOG
# 0057 //STEPLIB DD DSN=TEST10H.PROD1.LOADLIB,DISP=SHR
# 0058 // DD DSN=TEST10H.PROD2.LOADLIB,DISP=SHR
# -- this file will be processed as a UNIX PATH
STPPATH=$PRGDIR/TEST10H.PROD1.LOADLIB:$STPPATH
STPPATH=$PRGDIR/TEST10H.PROD2.LOADLIB:$STPPATH
# 0046 //SYSTSPRT DD SYSOUT=*
# 0047 //SYSOUT DD SYSOUT=*
# 0048 //SYSPRINT DD SYSOUT=*
# -- this file is a shell variable :
SYSPRINT="$TEMPDIR/LPD_CLASS-B-SYSPRINT.JOBTST10-STPS20-JOBTST10-$PID"
# -- this file is redirected as stdout
# -- this file is a spool file to be printed at end of step
# -- this file will be deleted at end of step
# 0049 //SYSUDUMP DD SYSOUT=D
# 0050 //WRKFILE1 DD DSN=&&WRK,DISP=(NEW,PASS)
# -- this file is a shell variable :
WRKFILE1="$TEMPDIR/WRK-$PID"
# -- this file is deleted at start of step :
[ -f "$WRKFILE1" ] && rm -f "$WRKFILE1"
# -- this file will be deleted at end of step if rc > 0
# -- this file will be deleted at end of job
# 0051 //SAMPLE$ DD DSN=$TEST.SAMPLE$.DOLLAR,DISP=SHR
# -- this file is a shell variable :
SAMPLE\$="$MVSDATA/\$TEST.SAMPLE\$.DOLLAR"
# 0052 //TST10F DD DSN=REAL.TEST10HH.FILE(+1),DISP=(NEW,KEEP)
# -- this file is a shell variable :
TST10F="$(GET_GDG $MVSDATA/REAL.TEST10HH.FILE +1)"
# -- this file is deleted at start of step :
[ -f "$TST10F" ] && rm -f "$TST10F"
# -- this file will be deleted at end of step if rc > 0
# 0053 //SYSIN DD *
# 0054 THESE ARE THE PARAMETERS FOR TEST10HH THAT ARE MORE THAN SEVENTY-ONE CH*
# 0055 ARACTERS LONG.
# -- this file is redirected as stdin
# -----------------------------------------------------------
# -- step STPS20 : command TEST10HH
# -- path for step :
# $PRGDIR/TEST10H.PROD1.LOADLIB +
# $PRGDIR/TEST10H.PROD2.LOADLIB +
# $PRGDIR/OPERATE.PROD1.LOADLIB +
# $PRGDIR/OPERATE.PROD2.LOADLIB +
# $PRGDIR/OPERATE.PROD3.LOADLIB
# -- input : stdin
# -- output : stdout (> $SYSPRINT)
# -- file WRKFILE1 : $WRKFILE1 $TEMPDIR/WRK-$PID
# -- file SAMPLE\$ : $SAMPLE\$ $MVSDATA/\$TEST.SAMPLE\$.DOLLAR
# -- file TST10F : $TST10F $(GET_GDG $MVSDATA/REAL.TEST10HH.FILE +1)
# -----------------------------------------------------------
# -- set the PATH for this step
PATH=$PROCPATH:$STPPATH:$PATH
# -- launch the program TEST10HH
TEST10HH 1515 "L'ELEVE BAT DE L'AILE DANS L'ILE D'OLERON" 1000 > $SYSPRINT 2>> $MSGLOG <<SYSIN_EOF
THESE ARE THE PARAMETERS FOR TEST10HH THAT ARE MORE THAN SEVENTY-ONE CH
ARACTERS LONG.
SYSIN_EOF
rc=$? # save return code for next steps
rc_STPS20=$rc
# -- reset the PATH to normal JOBPATH
PATH=$JOBPATH:$SAVEPATH
# -- reset STPPATH
unset STPPATH
# -- Prints $SYSPRINT
echo "JOBTST10 - $(date)" | lpr -J JOBTST10 -P LPD_CLASS-B
[ -f "$SYSPRINT" ] && lpr -P LPD_CLASS-B "$SYSPRINT"
# -- Remove dataset $SYSPRINT :
[ -f "$SYSPRINT" ] && rm -f "$SYSPRINT"
# -- Unset shell var SYSPRINT :
[ "$SYSPRINT" ] && unset SYSPRINT
if [ $rc_STPS20 -ne 0 ]; then
# -- Remove dataset $WRKFILE1 :
[ -f "$WRKFILE1" ] && rm -f "$WRKFILE1"
fi
# -- Unset shell var WRKFILE1 :
[ "$WRKFILE1" ] && unset WRKFILE1
# -- Unset shell var SAMPLE\$ :
[ "$SAMPLE\$" ] && unset SAMPLE\$
if [ $rc_STPS20 -ne 0 ]; then
# -- Remove dataset $TST10F :
[ -f "$TST10F" ] && rm -f "$TST10F"
fi
# -- Unset shell var TST10F :
[ "$TST10F" ] && unset TST10F
# -- Unset shell var SYSIN :
[ "$SYSIN" ] && unset SYSIN
else #----------- CC = 0, returns true
echo "step STPS20 skipped due to previous CC" >> $MSGLOG
fi #----------- end of CC for step STPS20
# *------------------------------------------
# *------------------------------------------
# *-------- END OF STEP STPS20 ----------
# *------------------------------------------
# *------------------------------------------
# 0066 //STPS30 EXEC PGM=SORT,COND=(4,LE)
# *--------------------------------------------
# *--------------------------------------------
# *-------- START OF STEP STPS30 -----------
# *--------------------------------------------
# *--------------------------------------------
#----------------- start of CC for step STPS30:
if [ $rc_STPS20 -le 4 ]; then #----------- CC > 0, returns false
echo "-------- START OF STEP STPS30 ------------" >>$MSGLOG
# 0067 //SYSOUT DD SYSOUT=*
# -- this file is a shell variable :
SYSOUT="$TEMPDIR/LPD_CLASS-B-SYSOUT.JOBTST10-STPS30-JOBTST10-$PID"
# -- this file is redirected as stdout
# -- this file is a spool file to be printed at end of step
# -- this file will be deleted at end of step
# 0068 //SORTIN DD DSN=REAL.TEST10HH.FILE(+0),DISP=(OLD)
# -- this file is a shell variable :
SORTIN="$(GET_GDG $MVSDATA/REAL.TEST10HH.FILE +0)"
# -- this file is checked at start of step :
if [ ! -f "$SORTIN" ]; then
echo "----- Missing dataset $(GET_GDG $MVSDATA/REAL.TEST10HH.FILE +0) -----" >> $MSGLOG
exit 23
fi
# -- this file will be deleted at end of step
# 0069 //SORTOUT DD DSN=REAL.TEST10HH.FILE.SORTED,DISP=(NEW,KEEP)
# -- this file is a shell variable :
SORTOUT="$MVSDATA/REAL.TEST10HH.FILE.SORTED"
# -- this file is deleted at start of step :
[ -f "$SORTOUT" ] && rm -f "$SORTOUT"
# -- this file will be deleted at end of step if rc > 0
# 0070 //SYSIN DD *
# 0071 SORT FIELDS=(1,3,D,4,6,A),FORMAT=BI
# -- this file is redirected as stdin
# -----------------------------------------------------------
# -- step STPS30 : command SORT
# -- path for step :
# $PRGDIR/OPERATE.PROD1.LOADLIB +
# $PRGDIR/OPERATE.PROD2.LOADLIB +
# $PRGDIR/OPERATE.PROD3.LOADLIB
# -- input : stdin
# -- output : stdout (> $SYSOUT)
# -- file SORTIN : $SORTIN $(GET_GDG $MVSDATA/REAL.TEST10HH.FILE +0)
# -- file SORTOUT : $SORTOUT $MVSDATA/REAL.TEST10HH.FILE.SORTED
# -----------------------------------------------------------
# -- launch the program SORT
SORT > $SYSOUT 2>> $MSGLOG <<SYSIN_EOF
SORT FIELDS=(1,3,D,4,6,A),FORMAT=BI
SYSIN_EOF
rc=$? # save return code for next steps
rc_STPS30=$rc
# -- Prints $SYSOUT
echo "JOBTST10 - $(date)" | lpr -J JOBTST10 -P LPD_CLASS-B
[ -f "$SYSOUT" ] && lpr -P LPD_CLASS-B "$SYSOUT"
# -- Remove dataset $SYSOUT :
[ -f "$SYSOUT" ] && rm -f "$SYSOUT"
# -- Unset shell var SYSOUT :
[ "$SYSOUT" ] && unset SYSOUT
# -- Remove dataset $SORTIN :
[ -f "$SORTIN" ] && rm -f "$SORTIN"
# -- Unset shell var SORTIN :
[ "$SORTIN" ] && unset SORTIN
if [ $rc_STPS30 -ne 0 ]; then
# -- Remove dataset $SORTOUT :
[ -f "$SORTOUT" ] && rm -f "$SORTOUT"
fi
# -- Unset shell var SORTOUT :
[ "$SORTOUT" ] && unset SORTOUT
# -- Unset shell var SYSIN :
[ "$SYSIN" ] && unset SYSIN
else #----------- CC = 0, returns true
echo "step STPS30 skipped due to previous CC" >> $MSGLOG
fi #----------- end of CC for step STPS30
# *------------------------------------------
# *------------------------------------------
# *-------- END OF STEP STPS30 ----------
# *------------------------------------------
# *------------------------------------------
# 0073 //DEMO40 IF (STS20.RC EQ 0) THEN
# *--------------------------------------------
# *--- STATEMENT : (DEMO40) IF STS20.RC EQ 0
# *--------------------------------------------
if [ $rc_STS20 -eq 0 ]; then
# 0078 //STPS40 EXEC PGM=IEBGENER
# *--------------------------------------------
# *--------------------------------------------
# *-------- START OF STEP STPS40 -----------
# *--------------------------------------------
# *--------------------------------------------
echo "-------- START OF STEP STPS40 ------------" >>$MSGLOG
# 0079 //SYSUT1 DD DSN=*.STPS30.SORTOUT,DISP=OLD
# -- this file refers to ddn 'SORTOUT' in step 'STPS30'
# -- this file is a shell variable :
SYSUT1="$MVSDATA/REAL.TEST10HH.FILE.SORTED"
# -- this file is checked at start of step :
if [ ! -f "$SYSUT1" ]; then
echo "----- Missing dataset $MVSDATA/REAL.TEST10HH.FILE.SORTED -----" >> $MSGLOG
exit 23
fi
# -- this file will be deleted at end of step
# 0080 //SYSUT2 DD DSN=REAL.TEST10HH.FILE.SAVED(+1),DISP=(NEW,CATALG)
# -- this file is a shell variable :
SYSUT2="$(GET_GDG $MVSDATA/REAL.TEST10HH.FILE.SAVED +1)"
# -- this file is deleted at start of step :
[ -f "$SYSUT2" ] && rm -f "$SYSUT2"
# -- this file will be deleted at end of step if rc > 0
# 0081 //SYSPRINT DD SYSOUT=*
# -- this file is a shell variable :
SYSPRINT="$TEMPDIR/LPD_CLASS-B-SYSPRINT.JOBTST10-STPS40-JOBTST10-$PID"
# -- this file is redirected as stdout
# -- this file is a spool file to be printed at end of step
# -- this file will be deleted at end of step
# -----------------------------------------------------------
# -- step STPS40 : command IEBGENER
# -- path for step :
# $PRGDIR/OPERATE.PROD1.LOADLIB +
# $PRGDIR/OPERATE.PROD2.LOADLIB +
# $PRGDIR/OPERATE.PROD3.LOADLIB
# -- output : stdout (> $SYSPRINT)
# -- file SYSUT1 : $SYSUT1 $MVSDATA/REAL.TEST10HH.FILE.SORTED
# -- file SYSUT2 : $SYSUT2 $(GET_GDG $MVSDATA/REAL.TEST10HH.FILE.SAVED +1)
# -----------------------------------------------------------
# -- launch the program IEBGENER
IEBGENER > $SYSPRINT 2>> $MSGLOG
rc=$? # save return code for next steps
rc_STPS40=$rc
# -- Remove dataset $SYSUT1 :
[ -f "$SYSUT1" ] && rm -f "$SYSUT1"
# -- Unset shell var SYSUT1 :
[ "$SYSUT1" ] && unset SYSUT1
if [ $rc_STPS40 -ne 0 ]; then
# -- Remove dataset $SYSUT2 :
[ -f "$SYSUT2" ] && rm -f "$SYSUT2"
fi
# -- Unset shell var SYSUT2 :
[ "$SYSUT2" ] && unset SYSUT2
# -- Prints $SYSPRINT
echo "JOBTST10 - $(date)" | lpr -J JOBTST10 -P LPD_CLASS-B
[ -f "$SYSPRINT" ] && lpr -P LPD_CLASS-B "$SYSPRINT"
# -- Remove dataset $SYSPRINT :
[ -f "$SYSPRINT" ] && rm -f "$SYSPRINT"
# -- Unset shell var SYSPRINT :
[ "$SYSPRINT" ] && unset SYSPRINT
# *------------------------------------------
# *------------------------------------------
# *-------- END OF STEP STPS40 ----------
# *------------------------------------------
# *------------------------------------------
# 0082 //DEMO40 ENDIF
# *--------------------------------------------
# *-------- STATEMENT : STPS40 ENDIF -----------
# *--------------------------------------------
fi # ENDIF STPS40
# -- JOBTST10 : print $MSGLOG -------
echo "$MSGLOG - $(date)" | lpr -P MSGLOG
[ -f "$MSGLOG" ] && lpr -P MSGLOG "$MSGLOG"
[ -f "$MSGLOG" ] && rm -f "$MSGLOG"
[ -f $TEMPDIR/*-$PID ] && rm -f $TEMPDIR/*-$PID
# *---------- END OF JOB JOBTST10 ----------
# ---------- Notify user OPERATOR ----------
WTO OPERATOR "$(date +%D) $(date +%T) *--- JOB JOBTST10 ENDED, rc=$rc ---*"
# --------------- Reset PATH ------------
PATH=$SAVEPATH
# --------------- Exit Job -------------
exit $rc
#--- Generated 15/01/2005 at 18:37:03
#--- On www.hhns.fr
#--- By A.C.M.U - (C) HHNS 1999-2005 - www.hhns.fr
Back to the sample JCL source.
Go & submit your own JCL.
|