| Date: | Thu, 14 May 1998 11:47:19 -0400 |
| Reply-To: | "Dorfman, Paul" <pdorfma@UCS.ATT.COM> |
| Sender: | "SAS(r) Discussion" <SAS-L@UGA.CC.UGA.EDU> |
| From: | "Dorfman, Paul" <pdorfma@UCS.ATT.COM> |
| Subject: | Re: MVS TSO ALLOC GDG |
| Content-Type: | text/plain; charset="iso-8859-1" |
|---|
Schechter Robert RS <robert.schecter@PHWILM.ZENECA.COM>, in part, wrote:
>I'm trying to ALLOC the current generation of an existing GDG in SAS in
>the form :
> ===> TSO ALLOC F(OC) DA('MIS.SMUT01.IS.FCST.GTM(00)') SHR
>The SAS Companion for the MVS Environment, Version 6, Second Edition,
>pages 64-65, seems to state I've got the correct syntax. But I get the
>following error message:
> INVALID DATA SET NAME, 'MIS.SMUT01.IS.FCST.GTM(00)'
> REENTER THIS OPERAND+ -
> DA:
>This works:
>TSO ALLOC F(OC) DA('MIS.SMUT01.IS.FCST.GTM.G0003V00') SHR
>but I want this in production and I can't use the absolute form.
>Any ideas?
Bob,
FILENAME OC 'MIS.SMUT01.IS.FCST.GTM(0)' DISP=SHR;
works perfectly fine without any TSO, SYSTEM, or X command. I've treated
the topic a bit more extensively in the reply to Andrew Kowalczyk as of
March 24. For your convenience, below is a selective repost having to do
with creating of a new generation rather than using the most recent
existing one. Accidentally, it has some relevance to the recently asked
IDCAMS question.
//SASEXE EXEC SAS,OPTIONS='ERRORABEND SYSIN=SASCODE'
//SASCODE DD *,DLM='$$'
%LET GDGBASE = USERID.SAS.GDG;
/* DELETE-DEFINE A GDG BASE */
FILENAME SYSPRINT SYSOUT=*;
FILENAME SYSIN '&SYSIN' LRECL=80;
DATA _NULL_;
FILE SYSIN;
PUT @3 "DELETE &GDGBASE GDG PURGE FORCE"
/ @3 "DEFINE GDG(NAME(&GDGBASE) -"
/ @3 'LIMIT(10) NOEMPTY SCRATCH)';
RUN;
PROC IDCAMS; RUN;
/* ALLOCATE A NEW GENERATION */
FILENAME NEWGEN "&GDGBASE(+1)" DISP=NEW UNIT=3390
LRECL=80 RECFM=FB BLKSIZE=27920 SPACE=(TRK,(1,5),RLSE);
/* WRITE SOMETHING INTO THE NEW GENERATION */
DATA _ NULL_;
FILE "&GDGBASE(+1)";
DO I=1 TO 10; PUT 'TESTLINE ' I Z2.; END;
RUN;
Here is the output contents of sysprint:
IDCAMS SYSTEM SERVICES
DELETE USERID.SAS.GDG GDG PURGE FORCE
IDC0550I ENTRY (B) USERID.SAS.GDG DELETED
IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
DEFINE GDG(NAME(USERID.SAS.GDG) -
LIMIT(10) NOEMPTY SCRATCH)
IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 0
And here is the log:
2 %LET GDGBASE = USERID.SAS.GDG;
3
4 /* DELETE-DEFINE A GDG BASE */
5
6 FILENAME SYSPRINT SYSOUT=*;
7 FILENAME SYSIN '&SYSIN' LRECL=80;
8 DATA _NULL_;
9 FILE SYSIN;
10 PUT @3 "DELETE &GDGBASE GDG PURGE FORCE"
11 / @3 "DEFINE GDG(NAME(&GDGBASE) -"
12 / @3 'LIMIT(10) NOEMPTY SCRATCH)';
13 RUN;
NOTE: The file SYSIN is:
Dsname=SYS98083.T120434.RA000.USERIDT.SYSIN.H01,
Unit=3390,Volume=SSHR39,Disp=NEW,Blksize=27920,
Lrecl=80,Recfm=FB
NOTE: 3 records were written to the file SYSIN.
NOTE: The DATA statement used 0.04 CPU seconds and 2960K.
13
14 PROC IDCAMS; RUN;
NOTE: An external program, not a SAS procedure, is being executed.
NOTE: The PROCEDURE IDCAMS used 0.00 CPU seconds and 3116K.
14
15
16 /* ALLOCATE A NEW GENERATION */
NOTE: USERID.SAS.GDG(+1) has been created.
17
18 FILENAME NEWGEN "USERID.SAS.GDG(+1)" DISP=NEW UNIT=3390
19 LRECL=80 RECFM=FB BLKSIZE=27920
SPACE=(TRK,(1,5),RLSE
20
21 /* WRITE SOMETHING INTO THE NEW GENERATION */
22
23 DATA _NULL_;
24 FILE "USERID.SAS.GDG(+1)";
25 DO I=1 TO 10; PUT 'TESTLINE ' I Z2.; END;
26 RUN;
NOTE: The file "USERID.SAS.GDG(+1)" is:
Dsname=USERID.SAS.GDG.G0001V00,
Unit=3390,Volume=TST908,Disp=SHR,Blksize=27920,
Lrecl=80,Recfm=FB
Hope it helps. By the way, how has Zeneca been treating you?
Best personal regards,
Paul.
++++++++++++++++++++++++++++++
Paul M. Dorfman
Citibank UCS Decision Support Systems
Jacksonville, Fl
++++++++++++++++++++++++++++++
|