Return to Mainframe Utilities Page
Module
/******************************************************************/
/* CLIST EXPERT - THIS CLIST SCANS THE CAS EXPERT LIST AND */
/* RETURNS THE LINE CONTAINING THE STRING SELECTED. */
/* THE GROUP EXPERT LIST IS IN SLSS.WORK.LIST */
/* IN MEMBER "EXPERT". */
/******************************************************************/
PROC 1 NAME_TO_SEARCH_FOR +
COMMON('''SLSS.WORK.LIST(EXPERT)''')
/**** SET MESSAGE DISPLAY ON/OFF BASED ON THE DEBUG SWITCH ***/
ISPEXEC VGET (DBGSWTCH) PROFILE
IF &DBGSWTCH = &STR(ON) THEN CONTROL MSG LIST CONLIST SYMLIST NOFLUSH
ELSE CONTROL NOMSG NOLIST NOFLUSH NOPROMPT
IF &NAME_TO_SEARCH_FOR = &STR(HELP) THEN GOTO HELPSEC
IF &NAME_TO_SEARCH_FOR = THEN +
DO
WRITE ENTER A STRING TO SEARCH FOR IN THE EXPERT LIST.
WRITENR STRING ==>
READ NAME_TO_SEARCH_FOR
IF &NAME_TO_SEARCH_FOR = THEN +
DO
SET ZEDLMSG = &STR(NO STRING ENTERED *** )+
&STR(PROCESSING TERMINATED)
ISPEXEC SETMSG MSG(UTLZ001)
EXIT
END
END
CLEAR
WRITE *** SCANNING EXPERT LISTS FOR &NAME_TO_SEARCH_FOR ***
IF &SYSINDEX(&STR('),&STR(&COMMON)) = 0 AND +
&STR(&COMMON) > THEN +
SET COMMON = &STR('&COMMON')
IF &SYSDSN('&SYSUID..EXPERT') = OK THEN +
SET EXPERTDSN = &STR(&COMMON '&SYSUID..EXPERT')
ELSE +
SET EXPERTDSN = &STR(&COMMON)
IF &STR(&EXPERTDSN) = THEN +
DO
SET ZEDLMSG = &STR(*** NO EXPERT DATASETS TO SEARCH ***)
ISPEXEC SETMSG MSG(UTLZ001)
EXIT
END
FREE DDNAME(EXPERT)
ALLOCATE DDNAME(EXPERT) +
DSNAME(&EXPERTDSN) +
SHR KEEP
OPENFILE EXPERT INPUT
SET EOF = NO
ERROR DO
IF &LASTCC = 400 THEN +
DO
SET EOF = YES
RETURN
END
ELSE +
DO
CLEAR
WRITE
WRITE *** UNEXPECTED ERROR IN CLIST EXPERT ***
WRITE
WRITE *** RETURN CODE WAS : &LASTCC ***
WRITE
WRITE *** PROGRAM VARIABLES ARE :
WRITE A = &A
WRITE B = &B
WRITE EOF = &EOF
WRITE EXPERT = &EXPERT
CLOSFILE EXPERT
FREE DDNAME(EXPERT)
EXIT
END
END
GETFILE EXPERT
SET A = 0
/**********************************************************************
/* WRITE MATCHING LINES FROM THE EXPERT DATASET(S). *
/**********************************************************************
DO WHILE &EOF = NO
IF &SYSINDEX(&STR(&NAME_TO_SEARCH_FOR),&STR(&EXPERT)) > 0 AND +
&SUBSTR(1:1,&STR(&EXPERT)) ¬= &STR(*) THEN +
DO
WRITE &EXPERT
SET A = &A + 1
END
GETFILE EXPERT
END
ERROR OFF
CLOSFILE EXPERT
FREE DDNAME(EXPERT)
/**********************************************************************
/* WRITE MATCHING LINES FROM THE EXPERT LINES IN THE PROJECT *
/* TABLE. *
/**********************************************************************
/* ISPEXEC CONTROL ERRORS RETURN
/* ISPEXEC TBOPEN PROJECT NOWRITE
/* IF &LASTCC > 4 THEN GOTO CONTINUE
/*
/* ISPEXEC TBTOP PROJECT
/* ISPEXEC TBSKIP PROJECT NUMBER(1)
/* SET SAVECC = &LASTCC
/*
/* DO WHILE &SAVECC = 0
/* IF (&SYSINDEX(&STR(&NAME),&STR(&PRJPARM)) > 0 OR +
/* &SYSINDEX(&STR(&NAME),&STR(&PRJQUAL)) > 0) AND +
/* &STR(&PRJELEM) = &STR(EXPERT #) THEN +
/* DO
/* SET A = &A + 1
/* IF &TESTPROD = T THEN +
/* WRITE DSEC STAFF EXT : &PRJQUAL ===== &PRJPARM
/* ELSE +
/* WRITE ACCOUNT STAFF EXT : &PRJQUAL ===== &PRJPARM
/* END
/* ISPEXEC TBSKIP PROJECT NUMBER(1)
/* SET SAVECC = &LASTCC
/* END
/*
/* ISPEXEC TBEND PROJECT
CONTINUE: +
IF &A = 0 THEN +
WRITE *** NO EXPERT INFO FOUND FOR &NAME_TO_SEARCH_FOR ***
EXIT
HELPSEC: +
CLEAR
WRITE *** HELP FOR THE EXPERT CLIST ***
WRITE
WRITE THIS CLIST ALLOWS THE USER TO LIST EXPERT INFORMATION BY
WRITE PASSING A STRING TO THE CLIST AND THE CLIST WILL SEARCH THE
WRITE PROJECT EXPERT LIST AND THE INDIVIDUALS PHONE LIST (IF ONE EXISTS).
WRITE
WRITE BASIC SYNTAX :
WRITE
WRITE COMMAND ===> TSO EXPERT
WRITE
WRITE WITH THIS SYNTAX, YOU WILL BE PROMPTED FOR A STRING TO SEARCH FOR.
WRITE
WRITE TO PASS THE INFORMATION AT EXECUTION TIME :
WRITE
WRITE COMMAND ===> TSO EXPERT SMITH
WRITE
WRITE THIS WILL DISPLAY ANY LINES CONTAINING THE STRING "SMITH".
WRITE
WRITE YOU COULD ALSO USE A STRING OF A NUMBER OR PARTIAL NAME, OR A
WRITE DESCRIPTION THAT IS STORED IN THE EXPERT LIST (E.G. "SUPPORT")
WRITE
WRITE SPECIAL NOTES : THE PROJECT EXPERT LIST CONSISTS OF THE FOLLOWING
WRITE DATASET(S):
WRITE
WRITE &STR(&COMMON)
WRITE
WRITE IF YOU WANT A PERSONAL LIST, YOU MUST CREATE A
WRITE DATASET CALLED :
WRITE '&SYSUID..EXPERT'
WRITE THIS DATASET SHOULD BE AN 80 BYTE RECORD TO
WRITE DISPLAY THE INFORMATION PROPERLY.
WRITE
WRITE IN YOUR PERSONAL EXPERT LIST DATASET, AN "* "
WRITE IN THE FIRST COLUMN WILL INDICATE A "COMMENT"
WRITE LINE. COMMENT LINES ARE NOT SCANNED FOR THE
WRITE SEARCH STRING. THIS CAN HELP YOU IN THE
WRITE MAINTENANCE OF YOUR PERSONAL EXPERT LIST BY
WRITE ENABLING YOU TO "SECTION" YOUR EXPERT INTO
WRITE DIFFERENT GROUPS.
WRITE
WRITE *** END OF HELP *** NO PROCESSING PERFORMED ***
EXIT
Documentation
The EXPERT utility scans SLSS.WORK.LIST(EXPERT) and displays all the lines in
which the argument string passed at invocation time is found.
SLSS.WORK.LIST(EXPERT) contains a list of who is an "expert" or considers
themselves knowledgeable about a specific technical dicipline or specific type
of hardware/software.
What the EXPERT utility allows you to do is to type in the name of a given
technical dicipline or software (e.g. CICS, JCL, COBOL, TSO, etc.), and a list
of those people who consider themselves at least knowledgeable about that
subject area will be displayed to you. You could also use EXPERT in a
"converse" way and type in a name (e.g. Nuechterlein) and find out what that
person is an expert in.
You may also maintain your own personal expert list in addition to the common
one if you wish. If you have a sequential 80 byte dataset named
yourtsouserid.EXPERT, the EXPERT utility will scan it as well as the one in
SLSS.WORK.LIST(EXPERT).
It should also be noted that EXPERT will ignore lines with a "*" in column one
in both the common and personal expert lists. This allows for "commenting" or
"annotateing" of these lists as you desire.
To invoke EXPERT, you can type TSO EXPERT xxxxxx (where "xxxxxx" is the subject
matter you're interested in) at any ISPF command line and press ENTER. That's
it.

0 Comments