[Date Prev][Date Next][Thread Prev][Thread Next]
[Author Index] [Date Index] [Thread Index]
[SQR-USERS Info] [SQRUG Home Page]

Re: Search directories for SQR on MVS



Hello Holly,

We added a FileAid step to the SQR JCL that can search a group of
PDSs and pull the desired member from the first PDS that contains
that member.

The extracted member is output to a temporary PDS which is then
input to SQR on the SQRIN DD.

You'll notice too (as you're probably already aware), that you
are able to concatenate PDSs on the SQRINC DD.

I'm attaching a copy of the Proc and the calling JCL.



-----Original Message-----
From: Discussion of SQR, SQRIBE Technologies's database reporting
language [mailto:SQR-USERS@list.iex.net]On Behalf Of Holly N.
Reid
Sent: Thursday, April 08, 1999 3:23 PM
To: Multiple recipients of list SQR-USERS
Subject: Search directories for SQR on MVS


Is there a way to first search one directory, then if its not
found there
search another directory for an SQR?
I've heard that you can't do this on MVS.  You can do it on every
other
environment, so I'm hoping this is not
true.

Please respond.

Thanks,

Holly N. Reid
Elleon Dier, Inc.
elleond@bellsouth.net
++SQRF  SQR SHELL - OUTPUT TYPE IS FILE
//%OPRID%%SFX%  JOB %JOBACCT%,'DEV750 SQR FILE',CLASS=F,MSGCLASS=8
//%PRCSNAME% EXEC PSSQRFT,
//             SQRID='%PRCSNAME%',
//             PSHLQ=AMTOIFS,
//             OUTNODE='%OUTDEST%.%OPRID%',
//             PRCSNAME='%PRCSNAME%',
//             ENV=FSDEV,
//             DBENV=I
//COPY.SYSIN  DD *
$$DD01 COPY MEMBER=%PRCSNAME%
/*
//SQR.SYSIN DD *
%SQRPARMS%
/*
//*
//*
//*********************************************************************
//*  THIS STEP WILL ENSURE TO UPDATE THE STATUS OF THE PROCESS INSTANCE
//*  TO AN 'ERROR' WHEN THE ABOVE SQR PROGRAM ABNORMALLY TERMINATED
//*
//*  AS CONDITION PARAMETER STATES, THIS STEP WILL ONLY RUN WHEN THE
//*  PREVIOUS STEP RECEIVED A RETURN CODE OTHER THAN 0 OR 4
//*
//*  THE LAST PARAMETER IS USED TO SPECIFY THE JCL JOB NAME IN THE
//*  MESSAGE TEXT OF PROCESS MONITOR
//*********************************************************************
//PTRCSERR EXEC PSSQRFT,
//             SQRID=PTRCSERR,
//             OUTNODE='%OUTDEST%.%OPRID%',
//             PSHLQ=AMTOIFS,
//             PRCSNAME='%PRCSNAME%',
//             ENV=FSDEV,
//             DBENV=I,
//             COND=((0,EQ),(4,EQ),EVEN)
//COPY.SYSIN  DD *
$$DD01 COPY MEMBER=PTRCSERR
/*
//SQR.SYSIN  DD *
%SQRPARMS%
%OPRID%%SFX%
/*
//
//PSFTSQRF PROC DB2LOAD='AMPSTDB2.SDSNLOAD',  DB2 LOAD LIB
//      DB2EXIT='AMPMDB2.SDSNEXIT',           DB2 LOAD LIB
//      SQRHLQ='AMTOIFS.SQR411.SQR',          SQR HLQ FOR LOAD, ERRDAT, IB
//*                                                  LINKLIB            IB
//      PSHLQ=,                               SQR,SQC PARMS LIB
//      REL=FS750,                            PEOPLESOFT VERSION
//      OUTNODE=,
//      PRCSNAME=,
//      ENV=,
//      DBENV=,
//      PRMID=NOPARMS,                        SQR PARM ID
//      SYSO=*,                               SYSOUT
//      SQRID=                                SQR MEMBER ID
//********************************************************************
//*  CHANGED DEFAULT OUTPUT DATASET FROM PDS TO SEQUENTIAL DATASET.  *
//*  PDS CAUSING SHARING PROBLEMS WHEN ONE PERSON IS LOOKING AT      *
//*  REPORT OUTPUT AND SOMEONE ELSE IS TRYING TO RUN A JOB.          *
//*  SEQUENTIAL DATASETS SHOULD REDUCE THIS CONTENTION IF THERE IS   *
//*  MORE THAN ONE OUTPUT DATASET.                                   *
//********************************************************************
//DELOUT   EXEC PGM=IEFBR14
//DD1      DD DSN=&OUTNODE..&ENV..&PRCSNAME,
//            DISP=(MOD,DELETE,DELETE),
//            SPACE=(TRK,(1,1),RLSE)
//********************************************************************
//********************************************************************
//*  ADDED A STEP TO CONCATENATE INPUT SOURCE LIBRARIES              *
//*  FILEAID WILL COPY THE MEMBER IT FINDS FIRST TO THE TEMP PDS     *
//********************************************************************
//COPY     EXEC PGM=FILEAID
//DD01     DD DSN=&PSHLQ..&REL..&ENV..SQRSRC,
//            DISP=(SHR,KEEP,KEEP)
//         DD DSN=&PSHLQ..&REL..SQRSRC,
//            DISP=(SHR,KEEP,KEEP)
//DD01O    DD DSN=&&TEMPPDS,
//            DISP=(NEW,PASS,DELETE),
//            UNIT=DISK,
//            SPACE=(TRK,(2,1,1),RLSE),
//            DCB=(RECFM=VB,LRECL=256,BLKSIZE=15476)
//SYSPRINT DD SYSOUT=&SYSO
//SYSOUT   DD SYSOUT=&SYSO
//SYSUDUMP DD SYSOUT=&SYSO
//SYSIN    DD DUMMY
//*
//SQR      EXEC PGM=IKJEFT01
//STEPLIB  DD DSN=&DB2EXIT.,DISP=SHR
//*        DD DSN=&SQRHLQ..LOAD,DISP=SHR
//         DD DSN=AMPACNFG.TEST.DENU.STD.LOADIFS,DISP=SHR
//         DD DSN=&DB2LOAD.,DISP=SHR
//SYSPRINT DD SYSOUT=&SYSO
//SYSTSPRT DD SYSOUT=&SYSO
//*********************************************************************
//* UNCOMMENT CTRANS BELOW IF GET ERROR: UNABLE TO LOAD RUNTIME I/O
//*     MODULE.  SET TO MITI-DELIVERED LINKLIB WHICH CONTAINS DYNAMIC
//*     C RUNTIME LIBRARY.
//*********************************************************************
//CTRANS   DD DSN=&SQRHLQ..LINKLIB,DISP=SHR
//SQRDIR   DD DSN=&SQRHLQ..ERRDAT,DISP=SHR
//SQRINC   DD DSN=&PSHLQ..&REL..&ENV..SQRINC,DISP=SHR
//         DD DSN=&PSHLQ..&REL..SQRINC,DISP=SHR
//SYSTERM  DD SYSOUT=&SYSO
//SYSOUT   DD SYSOUT=&SYSO
//DBGLOG   DD SYSOUT=&SYSO
//SYSTMPDB DD UNIT=DISK,SPACE=(TRK,25)  VS1 ONLY
//SQRIN    DD DSN=&&TEMPPDS(&SQRID),DISP=(SHR,PASS)
//SYSTERM  DD SYSOUT=&SYSO
//SQROUT   DD DSN=&OUTNODE..&ENV..&PRCSNAME,
//            DISP=(NEW,CATLG,DELETE),
//            UNIT=DISK,
//            VOL=SER=IFS004,
//            SPACE=(TRK,(10,5),RLSE),
//            DCB=(RECFM=VB,LRECL=15472,BLKSIZE=15476)
//SYSERR   DD SYSOUT=&SYSO
//SYSTSIN  DD DSN=&PSHLQ..&REL..PARMLIB(SQRPARM&DBENV),DISP=SHR
//SYSIN    DD DSN=&PSHLQ..&REL..PARMLIB(&PRMID),DISP=SHR
//MAXIN    DD DSN=&PSHLQ..&REL..PARMLIB(ALLMAXES),DISP=SHR
//SQRINI   DD DSN=&PSHLQ..&REL..SQRSRC(PSSQRINI),DISP=SHR
//*
//DELETE   EXEC PGM=IEFBR14
//DD1      DD DSN=&&TEMPPDS,
//            DISP=(MOD,DELETE,DELETE),
//            SPACE=(TRK,(1,1,1),RLSE)