|
Back To LeighWeb Mainframe Utilities Page
View the documentation associated with this module
/* REXX ***************************************************************/
/* UTILITY: SYNCVARS */
/* AUTHOR: DAVID LEIGH */
/* FUNCTION: THIS UTILITY TAKES INPUT OF A QUEUE OF VARIABLES AND */
/* SETS THAT VARIABLE'S VALUE IN ALL OTHER ISPF PROF. POOLS.*/
/**********************************************************************/
/**********************************************************************/
/* INITIALIZATION */
/**********************************************************************/
ARG EXCLUDE
ADDRESS ISPEXEC
NUMVARS = QUEUED()
IF NUMVARS = 0 THEN
DO
ZEDLMSG = 'ENTER NAME OF VARIABLE TO',
'"SYNC" WITHIN ALL YOUR PROFILES',
'OR DATASET NAME CONTAINING 1 VARIABLE NAME',
'PER RECORD'
"SETMSG MSG(UTLZ000W)"
"ADDPOP COLUMN(4) ROW(3)"
DO FOREVER
"DISPLAY PANEL(SYNCVARS)"
SELECT
WHEN RC = 0 & PANELVAR > '' &PANELDSN > '' THEN DO
ZEDLMSG = 'A VARIABLE AND A DATASET CANNOT BOTH',
'BE SPECIFIED'
"SETMSG MSG(UTLZ001W)"
ITERATE
END
WHEN RC = 0 & PANELVAR > '' THEN DO
NUMVARS = 1
QUEUE PANELVAR
LEAVE
END
WHEN RC = 0 & PANELDSN > '' THEN DO
IF SYSDSN("'"PANELDSN"'") ¬= OK THEN
DO
Y = SYSDSN("'"PANELDSN"'")
ZEDLMSG = '"'PANELDSN'" PROBLEM: 'Y
"SETMSG MSG(UTLZ001W)"
ITERATE
END
ADDRESS TSO
DUMMY = OUTTRAP(NULL)
"FREE DD(TEMPDD)"
"ALLOCATE DD(TEMPDD) DSN('"PANELDSN"') SHR"
DROP NULL.
"EXECIO * DISKR TEMPDD (FINIS"
NUMVARS = QUEUED()
ADDRESS ISPEXEC
LEAVE
END
WHEN RC = 8 THEN DO
ZEDLMSG = '"END" SELECTED - NO SYNCVARS',
'PROCESSING PERFORMED'
"SETMSG MSG(UTLZ001W)"
"REMPOP"
EXIT
END
WHEN RC = 0 THEN NOP
OTHERWISE DO
ZEDLMSG = 'RC FROM ISPF DISPLAY OF PANEL',
'"SYNCVARS" WAS' RC
"SETMSG MSG(UTLZ001W)"
"REMPOP"
EXIT 12
END
END
END
"REMPOP"
END
"TBCREATE TEMPPASS NOWRITE REPLACE KEYS() NAMES(VAR VARVAL)"
NUMADDED = 0
DO I = 1 TO NUMVARS
PULL VAR
VAR = STRIP(VAR,B,' ')
"VGET" VAR "PROFILE"
IF RC = 0 THEN
DO
INTERPRET "VARVAL = VALUE(VAR)"
"TBADD TEMPPASS"
NUMADDED = NUMADDED + 1
END
END
IF NUMADDED = 0 THEN
DO
ZEDLMSG = 'NONE OF THE VARIABLES SPECIFIED EXIST IN THIS',
'PROFILE....NO PROCESSING PERFORMED'
"SETMSG MSG(UTLZ001W)"
EXIT
END
/**********************************************************************/
/* POINT TO THE DATASET TO BE PROCESSED AND DO A PRIMING MEMBER READ */
/**********************************************************************/
"ADDPOP COLUMN(20) ROW(10)"
"LMINIT DATASET('"SYSVAR(SYSUID)".ISPF.ISPPROF') DATAID(DID) ENQ(SHRW)"
"VGET ZAPPLID"
"LMOPEN DATAID("DID")"
"LMMLIST DATAID("DID") MEMBER(MBR) OPTION(LIST)"
/**********************************************************************/
/* LOOP THROUGH THE PROFILE MEMBERS AND CALL SYNCVAR2 TO DO THE UPDATE*/
/**********************************************************************/
DO WHILE RC = 0
MBR = STRIP(MBR)
IF POS('PROF',MBR) = LENGTH(MBR) - 3 THEN
DO
APPL = SUBSTR(MBR,1,POS('PROF',MBR)-1)
IF APPL ¬= 'ISPS' &,
POS(APPL,EXCLUDE) = 0 &,
APPL ¬= ZAPPLID THEN
DO
APPL = "NEWAPPL("APPL")"
"CONTROL DISPLAY LOCK"
"DISPLAY PANEL(SYNCVAR2)"
"SELECT CMD(%SYNCVAR2)" APPL
END
END
"LMMLIST DATAID("DID") MEMBER(MBR) OPTION(LIST)"
END
/**********************************************************************/
/* CLEAN UP AND LET THE USER KNOW WHERE THE OUTPUT IS. */
/**********************************************************************/
"LMMLIST DATAID("DID") MEMBER(MBR) OPTION(FREE)"
"LMCLOSE DATAID("DID")"
"LMFREE DATAID("DID")"
"REMPOP"
|
|