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 (January 2009, week 4)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:   Thu, 22 Jan 2009 20:08:01 -0500
Reply-To:   David Gelb <djgelb@HOTMAIL.COM>
Sender:   "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:   David Gelb <djgelb@HOTMAIL.COM>
Subject:   Re: Obtaining NOTIFY= in a batch MVS job?

I looked on bit.listserv.ibm-main, and could not find anything indicating that that parameter is in a Z/OS data area/control block (though find needed data elements in IBM's documentation of control blocks in notoriously difficult).

In the context of someone asking about how to obtain JCL SET= parameters from data area/control blocks, someone answered "can't be done, data not stored in memory, only in JES SPOOL", and someone else gave a sample on how to scrape using SDSF.

I know what is below is ugly, but it seems to work: **********************************************************

DATA _NULL_; ASCBADDR=PEEK(548,4); ASSBADDR=PEEK(ASCBADDR+336,4); JSABADDR=PEEK(ASSBADDR+168,4); JOBID=PEEKC(JSABADDR+20,8); JOBNM=PEEKC(JSABADDR+28,8); CALL SYMPUT('JOBID',COMPRESS(JOBID)); CALL SYMPUT('JOBNM',COMPRESS(JOBNM)); RUN; FILENAME ISFIN '&TEMP1' RECFM=FB LRECL=80 ; FILENAME ISFOUT '&TEMP2' RECFM=VB LRECL=450; FILENAME REPORT '&TEMP3' RECFM=VB LRECL=180; DATA _NULL_ ; FILE ISFIN; PUT "OWNER &SYSUID" / "PREFIX &JOBNM" / "DA " / "S &JOBNM &JOBID" / "F &JOBNM" / "++?" / "F JESJCL" / "++S" / "PRINT FILE REPORT" / "PRINT" / "PRINT CLOSE" / "END"; RUN ;

OPTIONS PARM='++120,450';

PROC SDSF; RUN;

DATA _NULL_; INFILE REPORT; INPUT; NPOS=INDEX(_INFILE_,'NOTIFY='); IF NPOS>0 THEN DO; LENGTH NSTRING $9; NSTRING=SUBSTR(_INFILE_,NPOS+7,MIN(9,LENGTH(_INFILE_)-NPOS-6)); IF INDEX(NSTRING,',')>0 THEN COMMAPOS=INDEX(NSTRING,','); ELSE COMMAPOS=LENGTH(NSTRING)+1; NID=SUBSTR(NSTRING,1,COMMAPOS-1); CALL SYMPUT('NID',COMPRESS(NID)); END; RUN; %PUT &NID;

********************************************************************


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