LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (April 2010, week 2)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Mon, 12 Apr 2010 13:33:49 -0400
Reply-To:     Nathaniel Wooding <nathaniel.wooding@DOM.COM>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         Nathaniel Wooding <nathaniel.wooding@DOM.COM>
Subject:      Re: MVS Filename vs DD DSNAME=
Comments: To: "Data _null_;" <iebupdte@gmail.com>
In-Reply-To:  <g2hce1fb7451004120910l10bb5ae3le776694fc1627aa0@mail.gmail.com>
Content-Type: text/plain; charset="us-ascii"

Cut from the job log using the code in the previous post:

62 IEF645I INVALID REFERBACK IN THE DSNAME FIELD

I dusted off my ancient copy of Gary DeWard Brown and found in the section on DD cards statements claiming that one could refer to a dd card from a previous job step. The following should work:

//STEP1 EXEC SAS //IN DD DSN=OOOCTA.DATALIB.DATA,DISP=OLD DATA ; //STEP2 EXEC SAS //IN2 DD DSN=*.STEP1.IN,DISP=OLD

But I still get error JCL error messaged. However, in the grand scheme of things, there is not much point in doing this unless you want to refer to a temporary data set whose name is created by the system during execution.

Nat

-----Original Message----- From: Data _null_; [mailto:iebupdte@gmail.com] Sent: Monday, April 12, 2010 12:10 PM To: Nathaniel Wooding (Services - 6) Cc: SAS-L@listserv.uga.edu Subject: Re: MVS Filename vs DD DSNAME=

I recall something about referback and/or pass. It has been too long since I used I've used a real computer.

See IN2 below that refers back to DD IN in step 1.

//TOG19841 JOB (7000SC,IN14),'WOODING ',CLASS=T,MSGCLASS=X, // MSGLEVEL=(1,1),NOTIFY=TOG1984,SCHENV=ANY //STEP1 EXEC SAS //IN DD DSN=OOOCTA.DATALIB.DATA,DISP=OLD DATA ; //STEP2 EXEC SAS //OUT DD DSN=TOG1984.DATALIB.SEQ,DISP=OLD //IN2 DD DSN=*.IN PROC SOURCE INDD=IN2 OUTDD=OUT ; SELECT P: ;

On 4/12/10, Nathaniel Wooding <nathaniel.wooding@dom.com> wrote: > Dave > > I just concocted a simple two step job: > > //TOG19841 JOB (7000SC,IN14),'WOODING ',CLASS=T,MSGCLASS=X, > // MSGLEVEL=(1,1),NOTIFY=TOG1984,SCHENV=ANY > //STEP1 EXEC SAS > //IN DD DSN=OOOCTA.DATALIB.DATA,DISP=OLD > DATA ; > //STEP2 EXEC SAS > //OUT DD DSN=TOG1984.DATALIB.SEQ,DISP=OLD > PROC SOURCE INDD=IN OUTDD=OUT ; > SELECT P: ; > > > As you see, the first step uses JCL to allocate a partitioned data set; The second step refers to that previously allocate set and, if it were able to 'see' it, would have dumped members that start with 'P' into a flat file. However, the second step does not have access to files allocated in the first step as is shown by the log from step 2: > > 1 PROC SOURCE INDD=IN OUTDD=OUT ; > 2 SELECT P: ; > ERROR: NO LOGICAL ASSIGN FOR FILENAME IN. > ERROR: NO LOGICAL ASSIGN FOR FILENAME IN. > ERROR: NO LOGICAL ASSIGN FOR FILENAME IN. > ERROR: UNABLE TO OPEN INDD=IN. > ERROR: UNABLE TO OPEN INDD=IN. > ERROR: UNABLE TO OPEN INDD=IN. > > > So, in your second step, you must do all of the allocations that the step needs. > > Nat > > -----Original Message----- > From: SAS(r) Discussion [mailto:SAS-L@LISTSERV.UGA.EDU] On Behalf Of Dave Brewer > Sent: Monday, April 12, 2010 10:43 AM > To: SAS-L@LISTSERV.UGA.EDU > Subject: Re: MVS Filename vs DD DSNAME= > > Jack, > > There is no SAS log because the job fails with a JCL error. I am just > going to use JCL to allocate my transport file. > > Thank you so much for your assistance. > Dave > > On Mon, 12 Apr 2010 07:20:21 -0700, Jack Hamilton <jfh@STANFORDALUMNI.ORG> > wrote: > > >Could you post the SAS log for the step that creates the CPORT file? I > think it is not working correctly. > > > >It is possible that your site is set up in a way that disallows the use > of dynamic allocation, or handles it in a non-standard way. If so, > creating the CPORT file with JCL would be the best workaround. > > > >The IAT4401 message indicates that you're running on a JES3 system. I > have no experience with JES3, only with JES2. But a JES2 system would > handle this correctly, and cataloguing (or uncataloguing) a file inside a > program is a common technique. > > > >-- > >Jack Hamilton > >jfh@alumni.stanford.org > >Caelum non animum mutant qui trans mare currunt. > > > >On Apr 12, 2010, at 6:19 , Dave Brewer wrote: > > > >> Jack, > >> > >> I replaced the comma with a semicolon and got the same result: JCL > error. > >> > >> Here is a snippet from the JESMSGLG: > >> > >> 08:10:14 IAT4401 LOCATE FOR STEP=PKZIP DD=INPUT > DSN=S539DEB.TEST.CPORT > >> 08:10:14 IAT4404 DATASET NOT FOUND ON MAIN PROCESSOR > >> SYP > >> 08:10:14 IAT4801 JOB S539DEBX (JOB25167) EXPRESS CANCELED BY INTERPRETER > >> DSP > >> > >> I still think that JES internal reader scans the catalog looking for all > >> existing data sets and doesn't know that in Step 1 SAS is allocating a > new > >> data set. > >> > >> Again, thanks so much for your concern and help. > >> Davfe > >> > >> On Mon, 12 Apr 2010 06:00:37 -0700, Jack Hamilton > <jfh@STANFORDALUMNI.ORG> > >> wrote: > >> > >>> When I run your job under 9.1.3, I get syntax errors in the SAS code. > >> There's no semicolon at the end of the first statement, so this would > >> never have run. It also didn't like the DCB clause. > >>> > >>> The FILENAME statement failed, so the file was never created, so the > >> second step got a JCL error. > >>> > >>> I changed the SAS code to > >>> > >>> ===== > >>> FILENAME TRANFILE '.TEST.CPORT' > >>> DISP=(,CATLG,DELETE) > >>> LRECL=80 RECFM=FB BLKSIZE=8000 > >>> SPACE=(CYL,(250,25),RLSE); > >>> > >>> proc copy in=sashelp out=work; > >>> select class; > >>> run; > >>> > >>> PROC CPORT LIBRARY=work FILE=TRANFILE ; > >>> RUN; > >>> ===== > >>> > >>> It ran without error. > >>> > >>> When I ran it a second time, it got a JCL error (not catalogued 2), > >> because the //OUTPUT file already existed. > >>> > >>> Questions: > >>> > >>> 1) Are you sure that the code you sent us was the code you ran? > >>> > >>> 2) Did your first step run without error? > >>> > >>> 3) Did you get the same JCL error every time? > >>> > >>> > >>> I would make two changes to your job: > >>> > >>> 1) Allocate the CPORT file in JCL instead of with a FILENAME statement. > >>> > >>> 2) Put in a new first IEFBR14 step to delete the output files before > you > >> try to re-create them. > >>> > >>> > >>> -- > >>> Jack Hamilton > >>> jfh@alumni.stanford.org > >>> Caelum non animum mutant qui trans mare currunt. > >>> > >>> On Apr 12, 2010, at 5:10 , Dave Brewer wrote: > >>> > >>>> //STEP1 EXEC SAS,TIME=420 > >>>> //WORK DD UNIT=SYSDA,SPACE=(CYL,(2000,500)) > >>>> //LIBRARY DD DSN=MDPPRD.MDP.FMTLIB6,DISP=SHR > >>>> //SYSIN DD * > >>>> FILENAME TRANFILE '.TEST.CPORT' > >>>> DISP=(,CATLG,DELETE) > >>>> DCB=(LRECL=80,RECFM=FB,BLKSIZE=8000) > >>>> SPACE=(CYL,(250,25),RLSE), > >>>> LIBNAME CONCATLB > >>>> ( > >>>> 'MDPPRD.MDP.SAS.PMO10.QTR1', > >>>> 'MDPPRD.MDP.SAS.PBO10.QTR1', > >>>> ) DISP=SHR ; > >>>> PROC CPORT LIBRARY=CONCATLB FILE=TRANFILE ; > >>>> RUN; > >>>> //* > >>>> //* ------------------------------------------------------- * > >>>> //* THIS JOB SHRINKS A FILE * > >>>> //* ------------------------------------------------------- * > >>>> //* > >>>> //STEP2 EXEC PKZIP,DF=LB,REGION=0M,TIME=1440 > >>>> //SYSPRINT DD SYSOUT=* > >>>> //INPUT DD DSN=&SYSUID..TEST.CPORT,DISP=SHR > >>>> //OUTPUT DD DSN=S539DEB.TEST.ZIP, > >>>> // DISP=(,CATLG,DELETE), > >>>> // SPACE=(CYL,(100,10),RLSE) > >>>> //SYSIN DD * > >>>> -ACTION(ADD) > >>>> -ARCHOUTDD(OUTPUT) > >>>> -INDD(INPUT) > >>>> -TEMPSPACE(CYL) > >>>> -TEMPPRIMARY(1000) > >>>> -TEMPSECONDARY(50) > >>>> -TEMP_SPACE_MULTIVOL=Y > >>>> -TEMP_UNIT(SYSDA) > >>>> -DATA_STORAGE=25M > >>>> /* > >> > >> > >> > CONFIDENTIALITY NOTICE: This electronic message contains > information which may be legally confidential and or privileged and > does not in any case represent a firm ENERGY COMMODITY bid or offer > relating thereto which binds the sender without an additional > express written confirmation to that effect. The information is > intended solely for the individual or entity named above and access > by anyone else is unauthorized. If you are not the intended > recipient, any disclosure, copying, distribution, or use of the > contents of this information is prohibited and may be unlawful. If > you have received this electronic transmission in error, please > reply immediately to the sender that you have received the message > in error, and delete it. Thank you. >


Back to: Top of message | Previous page | Main SAS-L page