| Date: | Thu, 11 Dec 2008 15:20:44 -0800 |
| Reply-To: | "Choate, Paul@DDS" <pchoate@DDS.CA.GOV> |
| Sender: | "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU> |
| From: | "Choate, Paul@DDS" <pchoate@DDS.CA.GOV> |
| Subject: | Re: Submitting JCL to MVS via PC remote connect RSUBMIT false
comment error question |
| In-Reply-To: | <30648bb30812111457n4270dc48idc5a9961a212285e@mail.gmail.com> |
| Content-Type: | text/plain; charset="us-ascii" |
Thanks Ian, Chang and Barry -
I wanted to be able to write the JCL to my TSO processor as-is without
changes - so I can simply drop the JCL I need in and let SAS do the rest
- I wound up doing what Ian also suggested - read it in SAS PC and move
it up to MVS as a SAS dataset, instead of RSUBMITting cards lines:
data temp.JCL;
input JCL $80.;
cards;
//WVRTP2D JOB (DSDBX0000T,DS80,20,5,0),'DDS IS',TIME=1,
// USER=DSPAULC,MSGCLASS=X,NOTIFY=DSPAULC
/*ROUTE PRINT U370
//*
//STEP1 EXEC PGM=IEBGENER
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
//*
//SYSUT1 DD DISP=SHR,DSN=DS.FPIBS.MED503BN.FED0203.MEDTRANS.JAN2004.T
//SYSUT2 DD DSN=DSPAULC.MED503BN.FED0203.MEDTRANS.JAN2004,
// DISP=(NEW,CATLG,DELETE),
// UNIT=(SYSDA,3),
// SPACE=(CYL,(250,50),RLSE),
// LABEL=(,,RETPD=30)
;
rsubmit;
filename TSO sysout=a pgm=intrdr recfm=fb lrecl=80;
data _null_;
set JCL;
file TSO;
put JCL;
run; endrsubmit;
btw - I define TEMP as my remote MVS temp workspace, so here the dataset
uploads during the first datastep.
Thanks to all you DataShapers out there. ;-)
Paul Choate
DDS Data Extraction
(916) 654-2160
-----Original Message-----
From: Ian Whitlock [mailto:iw1sas@gmail.com]
Sent: Thursday, December 11, 2008 2:58 PM
To: SAS(r) Discussion
Cc: Choate, Paul@DDS
Subject: Re: Submitting JCL to MVS via PC remote connect RSUBMIT false
comment error question
Summary: Hide /* from SAS or find better method of communication
iw-value=1
Paul,
My experience on MVS predates the term PC, so I would look to SAS ways
of hiding the problem.
rsubmit;
filename outrdr sysout=a pgm=intrdr recfm=fb lrecl=80;
data _null_;
infile cards;
file outrdr noprint notitles;
input;
_infile_ = translate(_infile_,"*","#") ;
put _infile_;
cards;
//WVRTP2D JOB (DSDBX0000T,DS80,20,5,0),'DDS IS',TIME=1,
// USER=DSPAULC,MSGCLASS=X,NOTIFY=DSPAULC
/#ROUTE PRINT U370
//STEP1 EXEC PGM=IEBGENER
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSUT1 DD DISP=SHR,DSN=DS.FPIBS.MED503BN.FED0203.MEDTRANS.JAN2004.T
//SYSUT2 DD DSN=DSPAULC.MED503BN.FED0203.MEDTRANS.JAN2004,
// DISP=(NEW,CATLG,DELETE),
// UNIT=(SYSDA,3),
// SPACE=(CYL,(250,50),RLSE),
// LABEL=(,,RETPD=30)
;
run; endrsubmit;
Another solution would be to omit the first "/" as understood and use
put "/" _infile_ ;
On the other hand using a CARDS statement seems like a pretty crude way
of
communicating. What about making it a SAS data set and transferring it
to
MVS? This sort of solution seems more robust. To me, it is just a
fortunate accident that the lines of your "cards" did not also get
mangled.
Ian Whitlock
===============
"Choate, Paul@DDS" <pchoate@DDS.CA.GOV> wrote in part:
Merry Christmas all -
My IS people moved a large number of flat MVS files to tape that I need
to read occasionally. I prefer to run things from PC SAS via remote
connect, which won't allow me to have direct tape access, so I wrote a
little code to copy the tapes to disk for a month so I can work with
them:
rsubmit;
filename outrdr sysout=a pgm=intrdr recfm=fb lrecl=80;
data _null_;
infile cards;
file outrdr noprint notitles;
input;
put _infile_;
cards;
//WVRTP2D JOB (DSDBX0000T,DS80,20,5,0),'DDS IS',TIME=1,
// USER=DSPAULC,MSGCLASS=X,NOTIFY=DSPAULC
/*ROUTE PRINT U370
//STEP1 EXEC PGM=IEBGENER
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSUT1 DD DISP=SHR,DSN=DS.FPIBS.MED503BN.FED0203.MEDTRANS.JAN2004.T
//SYSUT2 DD DSN=DSPAULC.MED503BN.FED0203.MEDTRANS.JAN2004,
// DISP=(NEW,CATLG,DELETE),
// UNIT=(SYSDA,3),
// SPACE=(CYL,(250,50),RLSE),
// LABEL=(,,RETPD=30)
;
run; endrsubmit;
This works like a charm, except my /*ROUTE PRINT card generates a
warning that the RSUBMIT is seeing an open SAS comment and the
ENDRSUBMIT isn't processed. I stopped the error by adding a DD comment
card //**/ to make SAS see an end to the supposed comment.
...
/*ROUTE PRINT U370
//**/
...
But this makes me wonder if there isn't a way for RSUBMIT to understand
the CARDS input correctly so it doesn't think the /*ROUTE PRINT card is
a SAS /* */ comment line.
Here is the log showing the error:
221 rsubmit;
NOTE: Remote submit to HHSDC commencing.
WARNING: Unclosed comment detected in current RSUBMIT. Comment
termination will be
assumed at end of this RSUBMIT block.
43 filename outrdr sysout=a pgm=intrdr recfm=fb lrecl=80;
44 data _null_;
45 infile cards;
46 file outrdr noprint notitles;
47 input;
48 put _infile_;
49 cards;
NOTE: The file OUTRDR is:
Dsname=DSPAULC.DSPAULC.TSU34098.INTRDR.?,
Unit=SYSOUT,Volume,Disp=MOD,Blksize=240,
Lrecl=80,Recfm=FB
NOTE: 13 records were written to the file OUTRDR.
NOTE: The DATA statement used 0.01 CPU seconds and 15393K.
NOTE: The address space has used a maximum of 884K below the line and
17840K above
the line.
63 ;
64 run; endrsubmit;
----------
180
ERROR 180-322: Statement is not valid or it is used out of proper order.
65 */
NOTE: Remote submit to HHSDC complete.
REMOTE(HHSDC): 12.22.07 JOB34329 $HASP165 WVRTP2D ENDED AT HWDC
MAXCC=0 CN(INTERNAL)
With the //**/ the log becomes:
227 rsubmit;
NOTE: Remote submit to HHSDC commencing.
66 filename outrdr sysout=a pgm=intrdr recfm=fb lrecl=80;
67 data _null_;
68 infile cards;
69 file outrdr noprint notitles;
70 input;
71 put _infile_;
72 cards;
NOTE: The file OUTRDR is:
Dsname=DSPAULC.DSPAULC.TSU34098.INTRDR.?,
Unit=SYSOUT,Volume,Disp=MOD,Blksize=240,
Lrecl=80,Recfm=FB
NOTE: 14 records were written to the file OUTRDR.
NOTE: The DATA statement used 0.01 CPU seconds and 15393K.
NOTE: The address space has used a maximum of 884K below the line and
17840K above
the line.
87 ;
88 run;
NOTE: Remote submit to HHSDC complete.
REMOTE(HHSDC): 12.27.52 JOB34367 $HASP165 WVRTP2D ENDED AT HWDC
MAXCC=0 CN(INTERNAL)
Thanks.
Paul Choate
DDS Data Extraction
(916) 654-2160
|