A little exec:

/***********************************************************************
* query if user is valid                                               *
***********************************************************************/
trace 'o'
parse upper arg
address command
logon. = ""
arg userid
    /* check pun */
    "PIPE CP DEFINE PUN 01D"
    "PIPE CP SPOOL 01D TO " userid
    sprc = rc
    "PIPE CP DETACH 01D"
    /* check link */
    "PIPE CP LINK " userid
    lnkrc = rc
    /* q user */
    "PIPE CP Q USER "userid" | STEM LOGON."
    logrc = rc
    fndrc = min(sprc,lnkrc)
/* determine userid status - LOGON.3 = DSC if disconnected, blank otherwise
*/
select
   when fndrc = 0 then select
      when logrc = 0 then found="VALID and Logged On "word(logon.1,3)
      when logrc = 45 then found="VALID and Not Logged On"
      otherwise nop
      end
   when fndrc = 53 then found="INVALID"
   when fndrc = 22 then found="VALID and set to NOLOG"
   otherwise nop
   end
/* display userid status and exit with rc for calling program */
/* 0 =  0+0   = Valid and logged on */
/* 45 = 0+45  = Valid and Not logged on */
/* 67 = 22+45 = Valid and set to nolog */
/* 98 = 53+45 = Invalid userid */
say "UserID "userid" is "found
exit fndrc+logrc

This electronic transmission and any documents accompanying this electronic 
transmission contain confidential information belonging to the sender.  This 
information may be legally privileged.  The information is intended only for 
the use of the individual or entity named above.  If you are not the intended 
recipient, you are hereby notified that any disclosure, copying, distribution, 
or the taking of any action in reliance on or regarding the contents of this 
electronically transmitted information is strictly prohibited.

Reply via email to