By coding
   IF WORD(RESP.1,1) = 'HCPCSP053E' THEN
you depend in CP SET EMSG ON
Why not simply testing the returncode?

And, the test with the LINK, is a LINK without a minidisk address:
  'PIPE CP LINK ' cw
  if rc=22 then ... user exists ...
  if rc=53 then ... user not in CP directory

Side remarks:

   1. an EXEC coded in uppercase is far less readable than mixed case.
   2. your exec doesn't include an ADDRESS COMMAND

So, I'll recommend you read the "Advanced REXX telecourse" I wrote with a
collegue:
    http://www.vm.ibm.com/download/packages/descript.cgi?TCVM1


2007/10/25, Dave Hansen <[EMAIL PROTECTED]>:
>
> Hello again,
>
>   OK, I did some pondering.  I wanted to suppress the CP command and
> SETtting CMSTYPE of coarse did suppress it.  so I used the PIPE approach.  I
> would hope that userids should not match literals lke DISK or NOLOG, but I
> liked the 'NOT IN CP DIRECTORY' message from the spool command.  I could
> link a disk, but that assumes a 191 and most service machine do have a
> 191.  I always like it when other post what they have come up with so here
> goes:
>
>    /* REXX */
> /* GET RDR FILES FOR LAST TWO DAYS FROM DIFFERENT SOURCES */
> TRACE N
> ARG INPUT
> IW = WORDS(INPUT)
> TODAY = DATE(J)
> YESTERDAY = TODAY -1
> YESTERDAY = RIGHT(YESTERDAY,5,'0')
> TODAY = DATE(U,TODAY,J)
> YESTERDAY = DATE(U,YESTERDAY,J)
> TODAY = SUBSTR(TODAY,1,5)
> YESTERDAY = SUBSTR(YESTERDAY,1,5)
> IF IW = 0 THEN DO
>                SAY 'NO PARAMETERS PASSED'
>                EXIT
>                END
>            ELSE 'CP DEF PUN 01D'
> DO X=1 TO IW
>    CW = WORD(INPUT,X)
>    CW = STRIP(CW)
>    'PIPE CP SPOOL 01D TO' CW '| STEM RESP.'
>    IF WORD(RESP.1,1) = 'HCPCSP053E' THEN DO
>                                          SAY CW 'IS NOT A VALID USERID'
>                                          ITERATE
>                                          END
>    'Q RDR' CW 'ALL (STACK'
>    QR = QUEUED()
>    DO Y=1 TO QR
>       PARSE UPPER PULL RF
>       RF = STRIP(RF)
>       IF (WORD(RF,8) = TODAY) && (WORD(RF,8) = YESTERDAY)
>                     THEN 'TRANSFER' CW 'RDR' WORD(RF,2) 'TO * RDR'
>    END /* DO Y */
> END /* DO X */
> 'CP DET 01D'
>
>
>    You may pass multiple service machine names to this, so the CP DEF and
> CP DET are only done once.  I will use it a disaster recovry to collect all
> the recent consoles.
>
>
>
>       Thanks again,  Dave H.
>



-- 
Kris Buelens,
IBM Belgium, VM customer support

Reply via email to