Exemple de Script Shell obtenu avec ACMU
Il comporte, sous forme de commentaires Shell, les lignes du JCL source
La durée de conversion est de 1 seconde sur PC Intel 2,3 Ghz.
#/bin/sh
#-----------------------------------------------------------------
#- Script generated by the HHNS MVStoUNIX Migration tool
#- From file JOB__H86BN55.jcl - 16/10/06 at 12:37:46
#- A.C.M.U 5.12 - (C) HHNS 1999-2007 - www.hhns.fr
#-----------------------------------------------------------------
#--- 0001 //H86BN55 JOB (H33D747R),'AJC100M0',COND=(4,LT),REGION=0M,
#--- 0002 // MSGCLASS=H,MSGLEVEL=(1,1),CLASS=A
#--- 0003 //JOBLIB DD DSN=SYS1.DSNDB01.SDSNLOAD,DISP=SHR
#--- 0004 // DD DSN=HH123B.BATCH.LOAD,DISP=SHR
#--- 0005 // DD DSN=HH123B.CICS.SPITAB2.LOADLIB,DISP=SHR
#--- 0006 // DD DSN=SYS1.VSCOLIB,DISP=SHR
#--- 0007 // DD DSN=SYS1.VSCLLIB,DISP=SHR
#--- 0008 // DD DSN=SYS1.CFT230.LOAD,DISP=SHR
#--- 0009 //DELFICH EXEC PGM=IDCAMS
#--- 0010 //SYSPRINT DD SYSOUT=*
#--- 0011 //SYSIN DD *
#--- 0012 DELETE HH123B.X.H33ABC03.DETAS1
#--- 0013 DELETE HH123B.X.H33ABC03.DETAS1.CFT
#--- 0014 DELETE HH123B.X.H33ABC03.DETAS2
#--- 0015 DELETE HH123B.X.H33ABC03.DETAS3
#--- 0016 DELETE HH123B.X.H33ABC03.DETAP
#--- 0017 DELETE HH123B.X.H33ABC03.DETAPP
#--- 0018 DELETE HH123B.X.H33ABC03.DETAM
#--- 0019 DELETE HH123B.X.H33ABC03.EDITAPP
#--- 0020 IF MAXCC=8 THEN SET MAXCC=4
#--- 0025 //EDITION EXEC PGM=IKJEFT01,REGION=0M
#--- 0026 //SPI2MSTR DD DSN=HH123B.CICS.SPITAB2.SPI2MSTR,DISP=SHR
#--- 0027 //FEDT DD DSN=HH123B.K.H33ABC03.EDITION.SAVE(0),DISP=SHR
#--- 0028 //DETAS1 DD DUMMY,
#--- 0029 // DCB=(LRECL=160,RECFM=FBA,BLKSIZE=0)
#--- 0030 //DETAPP DD DUMMY,
#--- 0031 // DCB=(LRECL=175,RECFM=FBA,BLKSIZE=0)
#--- 0032 //DETAS2 DD DUMMY,
#--- 0033 // DCB=(LRECL=160,RECFM=FBA,BLKSIZE=0)
#--- 0034 //DETAS3 DD DUMMY,
#--- 0035 // DCB=(LRECL=160,RECFM=FBA,BLKSIZE=0)
#--- 0036 //DETAP DD DUMMY,
#--- 0037 // DCB=(LRECL=160,RECFM=FBA,BLKSIZE=0)
#--- 0038 //DETAM DD DSN=HH123B.X.H33ABC03.DETAM,
#--- 0039 // VOL=SER=HHSDB1,
#--- 0040 // DISP=(NEW,CATLG,CATLG),
#--- 0041 // UNIT=3390,SPACE=(CYL,(300,150),RLSE),
#--- 0042 // DCB=(LRECL=160,RECFM=FBA,BLKSIZE=0)
#--- 0043 //SYSTSPRT DD SYSOUT=*
#--- 0044 //SYSPRINT DD SYSOUT=*
#--- 0045 //SYSDBOUT DD SYSOUT=*
#--- 0046 //SYSOUT DD SYSOUT=*
#--- 0047 //SYSTSIN DD *
#--- 0048 DSN SYSTEM (DB01)
#--- 0049 RUN PROGRAM(ABCCPT00) PLAN(ABCCPT00) LIB('HH123B.BATCH.LOAD')
#--- 0050 END
#--- 0052 //SYSIN DD DISP=SHR,DSN=HH123B.DATE.PARM(DATE5)
#--- 0057 //DELMICRO EXEC PGM=IDCAMS
#--- 0058 //SYSPRINT DD SYSOUT=*
#--- 0059 //SYSIN DD *
#--- 0060 DEL HH123B.HHSCOMP.H33ABC03.DETAM
#--- 0061 IF MAXCC=8 THEN SET MAXCC=4
#--- 0063 //EDDETAM EXEC PGM=ABCSOUED
#--- 0064 //SYSPRINT DD SYSOUT=*
#--- 0065 //ENTREE DD DSN=HH123B.X.H33ABC03.DETAM,DISP=SHR
#--- 0066 //SORTIE DD DSN=HH123B.HHSCOMP.H33ABC03.DETAM,DISP=(,CATLG,DELETE),
#--- 0067 // UNIT=3390,SPACE=(CYL,(250,200),RLSE),VOL=SER=HHSDB1,
#--- 0068 // DCB=(LRECL=133,RECFM=FBA,BLKSIZE=26600)
#--- *---------------------------------------------------------------
#--- * CONVERSION PARAMETERS
#--- * Program Path : $PRGDIR
#--- * File Path : $MVSDATA
#--- * temp. files : $TEMPDIR
#--- * log directory : /var/log/MVS
#--- * process ddnames: shell vars
#--- * process HLQ : as file
#--- * process DISP= : relax
#--- *---------------------------------------------------------------
#--- initializations
set -a
rc=0
highest_rc=0
MSGLOG=/var/log/MVS/MVS.log
SAVEPATH=$PATH
#--- a simple WTO function :
function WTO() {
echo "$(date +%D) $(date +%T) $2" | write "$1"
}
#--- the ProcExit function :
function ProcExit() {
#--- arg 1 : the notify name, if any
#--- remove temp. files
rm -f $TEMPDIR/$$.*
#--- notify :
[ "$1" ] && WTO "$1" "JOB $JOBNAME ENDED, rc=$highest_rc"
#--- reset JOBLIB
unset JOBLIB
#--- reset PROCLIB
DO_UNSET PROCLIB
#--- exit job
echo "$(date +%D) $(date +%T) JOB H86BN55 ENDED." >> $MSGLOG
exit $highest_rc
}
#--- the Missing_Dataset function :
function Missing_Dataset() {
#--- arg 1 : the stepname
#--- arg 2 : the missing dataset name
#--- arg 3 : the notify name, if any
echo "$(date +%D) $(date +%T) JOB H86BN55 ERROR STEP $1 : Missing dataset $2, Abend 8." >> $MSGLOG
[ $highest_rc -lt 8 ] && highest_rc=8
ProcExit $3
}
#--- A small, simple IDCAMS
function IDCAMS() {
echo "#--- please contact HHnS if you are interested ---"
return 0
}
#--- An IEFBR14 that does nothing
function IEFBR14() {
exit 0
}
#--- ------------------------------------------
#--- start of job H86BN55
#--- ------------------------------------------
JOBNAME=H86BN55
echo "$(date +%D) $(date +%T) JOB H86BN55 STARTING." >> $MSGLOG
#--- 0001 //H86BN55 JOB (H33D747R),'AJC100M0',COND=(4,LT),REGION=0M,
#--- 0002 // MSGCLASS=H,MSGLEVEL=(1,1),CLASS=A
#--- class : A
#--- msgclass : H
#--- 0003 //JOBLIB DD DSN=SYS1.DSNDB01.SDSNLOAD,DISP=SHR
#--- 0004 // DD DSN=HH123B.BATCH.LOAD,DISP=SHR
#--- 0005 // DD DSN=HH123B.CICS.SPITAB2.LOADLIB,DISP=SHR
#--- 0006 // DD DSN=SYS1.VSCOLIB,DISP=SHR
#--- 0007 // DD DSN=SYS1.VSCLLIB,DISP=SHR
#--- 0008 // DD DSN=SYS1.CFT230.LOAD,DISP=SHR
#--- joblib : $PRGDIR/DSK SYS1.DSNDB01.SDSNLOAD:
#--- $PRGDIR/HH123B.BATCH.LOAD:
#--- $PRGDIR/HH123B.CICS.SPITAB2.LOADLIB:
#--- $PRGDIR/SYS1.VSCOLIB:
#--- $PRGDIR/SYS1.VSCLLIB:$PRGDIR/SYS1.CFT230.LOAD
JOBLIB=$PRGDIR/DSK SYS1.DSNDB01.SDSNLOAD
JOBLIB=$JOBLIB:$PRGDIR/HH123B.BATCH.LOAD:$PRGDIR/HH123B.CICS.SPITAB2.LOADLIB
JOBLIB=$JOBLIB:$PRGDIR/SYS1.VSCOLIB:$PRGDIR/SYS1.VSCLLIB:$PRGDIR/SYS1.CFT230.LOAD
#--- ------------------------------------------
#--- start of step DELFICH
#--- ------------------------------------------
#--- 0009 //DELFICH EXEC PGM=IDCAMS
#--- type : EXECPGM
#--- pgmname : IDCAMS
#--- 0010 //SYSPRINT DD SYSOUT=*
#--- start of dd SYSPRINT
#--- this file is a spool file
#--- this file is a work file
#--- this file is shell variable
SYSPRINT="$TEMPDIR/$$.H86BN55_DELFICH_SYSPRINT"
#--- this file is redirected as standard output
#--- end of dd SYSPRINT
#--- 0011 //SYSIN DD *
#--- 0012 DELETE HH123B.X.H33ABC03.DETAS1
#--- 0013 DELETE HH123B.X.H33ABC03.DETAS1.CFT
#--- 0014 DELETE HH123B.X.H33ABC03.DETAS2
#--- 0015 DELETE HH123B.X.H33ABC03.DETAS3
#--- 0016 DELETE HH123B.X.H33ABC03.DETAP
#--- 0017 DELETE HH123B.X.H33ABC03.DETAPP
#--- 0018 DELETE HH123B.X.H33ABC03.DETAM
#--- 0019 DELETE HH123B.X.H33ABC03.EDITAPP
#--- 0020 IF MAXCC=8 THEN SET MAXCC=4
#--- start of dd SYSIN
#--- this inline stream is redirected as standard input
#--- end of dd SYSIN
#--- launch program IDCAMS
echo "$(date +%D) $(date +%T) JOB H86BN55 STEP DELFICH STARTING." >> $MSGLOG
PATH="$STEPLIB:$JOBLIB:$SAVEPATH" \
IDCAMS > $SYSPRINT 2>> $MSGLOG <<DELFICH_EOF
DELETE HH123B.X.H33ABC03.DETAS1
DELETE HH123B.X.H33ABC03.DETAS1.CFT
DELETE HH123B.X.H33ABC03.DETAS2
DELETE HH123B.X.H33ABC03.DETAS3
DELETE HH123B.X.H33ABC03.DETAP
DELETE HH123B.X.H33ABC03.DETAPP
DELETE HH123B.X.H33ABC03.DETAM
DELETE HH123B.X.H33ABC03.EDITAPP
IF MAXCC=8 THEN SET MAXCC=4
DELFICH_EOF
#--- process return code :
rc=$?
rc_DELFICH=$rc
[ $rc -gt $highest_rc ] && highest_rc=$rc
#--- print dataset $SYSPRINT :
echo $SYSPRINT - $(date) | lpr -J H86BN55 -P LPD_CLASS_A
[ -f $SYSPRINT ] && lpr -P LPD_CLASS_A $SYSPRINT
#--- unset Shell var $SYSPRINT :
unset SYSPRINT
#--- unset Shell var $SYSIN :
unset SYSIN
#--- reset PATH
PATH=$PATH
#--- reset STEPLIB
unset STEPLIB
#--- ------------------------------------------
#--- end of step
#--- ------------------------------------------
echo "$(date +%D) $(date +%T) JOB H86BN55 STEP DELFICH ENDED, RC=$rc." >> $MSGLOG
#--- ------------------------------------------
#--- start of step EDITION
#--- ------------------------------------------
#--- 0025 //EDITION EXEC PGM=IKJEFT01,REGION=0M
#--- type : EXECPGM
#--- pgmname : IKJEFT01
#--- env : REGION="0M"
#--- 0026 //SPI2MSTR DD DSN=HH123B.CICS.SPITAB2.SPI2MSTR,DISP=SHR
#--- start of dd SPI2MSTR
#--- this file is shell variable
SPI2MSTR="$MVSDATA/HH123B.CICS.SPITAB2.SPI2MSTR"
#--- end of dd SPI2MSTR
#--- 0027 //FEDT DD DSN=HH123B.K.H33ABC03.EDITION.SAVE(0),DISP=SHR
#--- start of dd FEDT
#--- this file is generation '0' of dataset 'HH123B.K.H33ABC03.EDITION.SAVE'
#--- this file is shell variable
FEDT="$(GET_GDG $MVSDATA/HH123B.K.H33ABC03.EDITION.SAVE 0)"
#--- end of dd FEDT
#--- 0028 //DETAS1 DD DUMMY,
#--- 0029 // DCB=(LRECL=160,RECFM=FBA,BLKSIZE=0)
#--- start of dd DETAS1
#--- this file is an empty file
#--- this file is shell variable
DETAS1="/dev/null"
#--- end of dd DETAS1
#--- 0030 //DETAPP DD DUMMY,
#--- 0031 // DCB=(LRECL=175,RECFM=FBA,BLKSIZE=0)
#--- start of dd DETAPP
#--- this file is an empty file
#--- this file is shell variable
DETAPP="/dev/null"
#--- end of dd DETAPP
#--- 0032 //DETAS2 DD DUMMY,
#--- 0033 // DCB=(LRECL=160,RECFM=FBA,BLKSIZE=0)
#--- start of dd DETAS2
#--- this file is an empty file
#--- this file is shell variable
DETAS2="/dev/null"
#--- end of dd DETAS2
#--- 0034 //DETAS3 DD DUMMY,
#--- 0035 // DCB=(LRECL=160,RECFM=FBA,BLKSIZE=0)
#--- start of dd DETAS3
#--- this file is an empty file
#--- this file is shell variable
DETAS3="/dev/null"
#--- end of dd DETAS3
#--- 0036 //DETAP DD DUMMY,
#--- 0037 // DCB=(LRECL=160,RECFM=FBA,BLKSIZE=0)
#--- start of dd DETAP
#--- this file is an empty file
#--- this file is shell variable
DETAP="/dev/null"
#--- end of dd DETAP
#--- 0038 //DETAM DD DSN=HH123B.X.H33ABC03.DETAM,
#--- 0039 // VOL=SER=HHSDB1,
#--- 0040 // DISP=(NEW,CATLG,CATLG),
#--- 0041 // UNIT=3390,SPACE=(CYL,(300,150),RLSE),
#--- 0042 // DCB=(LRECL=160,RECFM=FBA,BLKSIZE=0)
#--- start of dd DETAM
#--- this file is shell variable
DETAM="$MVSDATA/HH123B.X.H33ABC03.DETAM"
#--- end of dd DETAM
#--- 0043 //SYSTSPRT DD SYSOUT=*
#--- start of dd SYSTSPRT
#--- this file is a spool file
#--- this file is a work file
#--- this file is shell variable
SYSTSPRT="$TEMPDIR/$$.H86BN55_EDITION_SYSTSPRT"
#--- this file is redirected as standard output
#--- end of dd SYSTSPRT
#--- 0044 //SYSPRINT DD SYSOUT=*
#--- start of dd SYSPRINT
#--- this file is ignored in this step
#--- 0045 //SYSDBOUT DD SYSOUT=*
#--- start of dd SYSDBOUT
#--- this file is a spool file
#--- this file is a work file
#--- this file is shell variable
SYSDBOUT="$TEMPDIR/$$.H86BN55_EDITION_SYSDBOUT"
#--- end of dd SYSDBOUT
#--- 0046 //SYSOUT DD SYSOUT=*
#--- start of dd SYSOUT
#--- this file is ignored in this step
#--- 0047 //SYSTSIN DD *
#--- 0048 DSN SYSTEM (DB01)
#--- 0049 RUN PROGRAM(ABCCPT00) PLAN(ABCCPT00) LIB('HH123B.BATCH.LOAD')
#--- 0050 END
#--- start of dd SYSTSIN
#--- this inline stream is redirected as standard input
#--- end of dd SYSTSIN
#--- 0052 //SYSIN DD DISP=SHR,DSN=HH123B.DATE.PARM(DATE5)
#--- start of dd SYSIN
#--- this file is a member of PDS 'HH123B.DATE.PARM'
#--- this file is shell variable
SYSIN="$MVSDATA/HH123B.DATE.PARM/DATE5"
#--- end of dd SYSIN
#--- launch program IKJEFT01
echo "$(date +%D) $(date +%T) JOB H86BN55 STEP EDITION STARTING." >> $MSGLOG
PATH="$STEPLIB:$JOBLIB:$SAVEPATH" \
REGION="0M" \
IKJEFT01 > $SYSTSPRT 2>> $MSGLOG <<EDITION_EOF
DSN SYSTEM (DB01)
RUN PROGRAM(ABCCPT00) PLAN(ABCCPT00) LIB('HH123B.BATCH.LOAD')
END
EDITION_EOF
#--- process return code :
rc=$?
rc_EDITION=$rc
[ $rc -gt $highest_rc ] && highest_rc=$rc
#--- unset Shell var $SPI2MSTR :
unset SPI2MSTR
#--- unset Shell var $FEDT :
unset FEDT
#--- unset Shell var $DETAS1 :
unset DETAS1
#--- unset Shell var $DETAPP :
unset DETAPP
#--- unset Shell var $DETAS2 :
unset DETAS2
#--- unset Shell var $DETAS3 :
unset DETAS3
#--- unset Shell var $DETAP :
unset DETAP
#--- unset Shell var $DETAM :
unset DETAM
#--- print dataset $SYSTSPRT :
echo $SYSTSPRT - $(date) | lpr -J H86BN55 -P LPD_CLASS_A
[ -f $SYSTSPRT ] && lpr -P LPD_CLASS_A $SYSTSPRT
#--- unset Shell var $SYSTSPRT :
unset SYSTSPRT
#--- print dataset $SYSDBOUT :
echo $SYSDBOUT - $(date) | lpr -J H86BN55 -P LPD_CLASS_A
[ -f $SYSDBOUT ] && lpr -P LPD_CLASS_A $SYSDBOUT
#--- unset Shell var $SYSDBOUT :
unset SYSDBOUT
#--- unset Shell var $SYSTSIN :
unset SYSTSIN
#--- unset Shell var $SYSIN :
unset SYSIN
#--- reset PATH
PATH=$PATH
#--- reset STEPLIB
unset STEPLIB
#--- ------------------------------------------
#--- end of step
#--- ------------------------------------------
echo "$(date +%D) $(date +%T) JOB H86BN55 STEP EDITION ENDED, RC=$rc." >> $MSGLOG
#--- ------------------------------------------
#--- start of step DELMICRO
#--- ------------------------------------------
#--- 0057 //DELMICRO EXEC PGM=IDCAMS
#--- type : EXECPGM
#--- pgmname : IDCAMS
#--- 0058 //SYSPRINT DD SYSOUT=*
#--- start of dd SYSPRINT
#--- this file is a spool file
#--- this file is a work file
#--- this file is shell variable
SYSPRINT="$TEMPDIR/$$.H86BN55_DELMICRO_SYSPRINT"
#--- this file is redirected as standard output
#--- end of dd SYSPRINT
#--- 0059 //SYSIN DD *
#--- 0060 DEL HH123B.HHSCOMP.H33ABC03.DETAM
#--- 0061 IF MAXCC=8 THEN SET MAXCC=4
#--- start of dd SYSIN
#--- this inline stream is redirected as standard input
#--- end of dd SYSIN
#--- launch program IDCAMS
echo "$(date +%D) $(date +%T) JOB H86BN55 STEP DELMICRO STARTING." >> $MSGLOG
PATH="$STEPLIB:$JOBLIB:$SAVEPATH" \
IDCAMS > $SYSPRINT 2>> $MSGLOG <<DELMICRO_EOF
DEL HH123B.HHSCOMP.H33ABC03.DETAM
IF MAXCC=8 THEN SET MAXCC=4
DELMICRO_EOF
#--- process return code :
rc=$?
rc_DELMICRO=$rc
[ $rc -gt $highest_rc ] && highest_rc=$rc
#--- print dataset $SYSPRINT :
echo $SYSPRINT - $(date) | lpr -J H86BN55 -P LPD_CLASS_A
[ -f $SYSPRINT ] && lpr -P LPD_CLASS_A $SYSPRINT
#--- unset Shell var $SYSPRINT :
unset SYSPRINT
#--- unset Shell var $SYSIN :
unset SYSIN
#--- reset PATH
PATH=$PATH
#--- reset STEPLIB
unset STEPLIB
#--- ------------------------------------------
#--- end of step
#--- ------------------------------------------
echo "$(date +%D) $(date +%T) JOB H86BN55 STEP DELMICRO ENDED, RC=$rc." >> $MSGLOG
#--- ------------------------------------------
#--- start of step EDDETAM
#--- ------------------------------------------
#--- 0063 //EDDETAM EXEC PGM=ABCSOUED
#--- type : EXECPGM
#--- pgmname : ABCSOUED
#--- 0064 //SYSPRINT DD SYSOUT=*
#--- start of dd SYSPRINT
#--- this file is a spool file
#--- this file is a work file
#--- this file is shell variable
SYSPRINT="$TEMPDIR/$$.H86BN55_EDDETAM_SYSPRINT"
#--- this file is redirected as standard output
#--- end of dd SYSPRINT
#--- 0065 //ENTREE DD DSN=HH123B.X.H33ABC03.DETAM,DISP=SHR
#--- start of dd ENTREE
#--- this file is shell variable
ENTREE="$MVSDATA/HH123B.X.H33ABC03.DETAM"
#--- end of dd ENTREE
#--- 0066 //SORTIE DD DSN=HH123B.HHSCOMP.H33ABC03.DETAM,DISP=(,CATLG,DELETE),
#--- 0067 // UNIT=3390,SPACE=(CYL,(250,200),RLSE),VOL=SER=HHSDB1,
#--- 0068 // DCB=(LRECL=133,RECFM=FBA,BLKSIZE=26600)
#--- start of dd SORTIE
#--- this file is shell variable
SORTIE="$MVSDATA/HH123B.HHSCOMP.H33ABC03.DETAM"
#--- this file will be removed at end of step if Abnormal End
#--- end of dd SORTIE
#--- launch program ABCSOUED
echo "$(date +%D) $(date +%T) JOB H86BN55 STEP EDDETAM STARTING." >> $MSGLOG
PATH="$STEPLIB:$JOBLIB:$SAVEPATH" \
ABCSOUED > $SYSPRINT 2>> $MSGLOG
#--- process return code :
rc=$?
rc_EDDETAM=$rc
[ $rc -gt $highest_rc ] && highest_rc=$rc
#--- print dataset $SYSPRINT :
echo $SYSPRINT - $(date) | lpr -J H86BN55 -P LPD_CLASS_A
[ -f $SYSPRINT ] && lpr -P LPD_CLASS_A $SYSPRINT
#--- unset Shell var $SYSPRINT :
unset SYSPRINT
#--- unset Shell var $ENTREE :
unset ENTREE
#--- remove dataset $SORTIE if abnormal end :
[ $rc -ne 0 ] && [ -f $SORTIE ] && rm -f $SORTIE
#--- unset Shell var $SORTIE :
unset SORTIE
#--- reset PATH
PATH=$PATH
#--- reset STEPLIB
unset STEPLIB
#--- ------------------------------------------
#--- end of step
#--- ------------------------------------------
echo "$(date +%D) $(date +%T) JOB H86BN55 STEP EDDETAM ENDED, RC=$rc." >> $MSGLOG
#--- ------------------------------------------
#--- End of Job :
#--- ------------------------------------------
ProcExit
#--- ------------------------------------------
#-----------------------------------------------------------------
#- Generated 16/10/06 at 12:37:46
#- By A.C.M.U. - (C) HHNS 1999-2007 - www.hhns.fr -
#-----------------------------------------------------------------
|