Mainframe Utility: EXPERT

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.
            


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.