Go to LeighWeb Home Page            

Back To LeighWeb Mainframe Utilities Page

View the documentation associated with this module

/* REXX ***************************************************************/

Say " "
Say " "
Say " "
Say " "
Say " "
Say " "
Say " "
Say " "
Say " "
Say " "
Say " "
Say "This utility is no longer functional nor supported."
Say " "
Say "Please use the option from the =D (DBA/MQSeries Tools) Panel."
Say " "
Say "Please see one of the DBA's for additional help."
Say " "
Say " "
Say " "
Say " "
Say " "
Say " "
Say " "
Say " "
Say " "

exit

/* UTILITY: DBSETUP                                                   */
/* AUTHOR: DAVID LEIGH                                                */
/* FUNCTION: THIS UTILITY CONTROLS FILE TAILORING OF A JOB WHICH WILL */
/*           CREATE A PROGRAMMER'S TEST DB2 ENVIRONMENT IN THIER      */
/*           DATABASE BASED ON SOME CRITERIA PASSED TO THIS EXEC.  IF */
/*           THIS EXEC DOES NOT GET EVERYTHING IT NEEDS, IT WILL POP  */
/*           UP A PANEL TO PROMPT FOR IT.  CONSEQUENTLY IT CAN BE     */
/*           CALLED BY OTHER PROCESSES THAT PASS THE REQUISITE        */
/*           INFORMATION VIA THE ISPF SHARED PROFILE POOL.            */
/**********************************************************************/
/*
M = SYSVAR(SYSUID)¦¦' USED DBSETUP ON '¦¦DATE('U')¦¦' '¦¦TIME()
"SEND '" M "' US(S@USMT) LOGON"
"SEND '" M "' US(D@USPH) LOGON"
*/
ADDRESS ISPEXEC
"CONTROL ERRORS RETURN"

USERDB = SYSVAR(SYSUID) ¦¦ 'DB'
"SELECT PGM(USERINFO) PARM("SYSVAR(SYSUID)")"

"VGET MJOBPFX DATABASE CREATOR APPLNAME",
      "JCLREVEW NUMACCTS TBLSDROP DBSETUP DEBUG) SHARED"

IF DBSETUP = AUTO THEN
    DO
        IF JOBPFX   = ''  THEN JOBPFX   = 'UF'
        IF DATABASE = ''  THEN DATABASE = USERDB
        IF CREATOR  = ''  THEN CREATOR  = SYSVAR(SYSUID)
        IF JCLREVEW = ''  THEN JCLREVEW = 'Y'
        IF NUMACCTS = ''  THEN NUMACCTS = 1000
        IF TBLSDROP = ''  THEN TBLSDROP = 'N'
        "VPUT (JOBPFX DATABASE CREATOR APPLNAME",
              "JCLREVEW NUMACCTS TBLSDROP DBSETUP DEBUG) SHARED"
    END
ELSE
  DO WHILE GENJCL ¬= 'Y'
    "DISPLAY PANEL(DBSETUP)"
    IF RC = 8 THEN EXIT
    ERRFIELD = ''
    PARSE VAR DATABASE DFLD1 7 DFLD2 2 DFLD3 3 DREST
    PARSE VAR DATABASE 1 DFLD4 6 DFLD5
    PARSE VAR CREATOR CFLD1 7 CFLD2 1 CFLD3 6 CFLD4
    IF DFLD3 = '@' THEN
      DO
       IF DFLD2 = 'DB' THEN
         DO
          IF CFLD2 > '' THEN
             DO
               ZEDLMSG = 'CREATOR MUST EQUAL YOUR TSO ID -',
                   'CORRECT CREATOR ENTRY AND RETRY'
               "SETMSG MSG(UTLZ001W)"
               ERRFIELD = 'CREATOR'
               ITERATE
             END
          ELSE NOP
          IF DFLD1 ¬= CFLD1 THEN
             DO
               ZEDLMSG = 'FIRST SIX BYTES OF DATABASE/CREATOR MUST =',
                    ' TSO ID. CORRECT DATABASE/CREATOR ENTRY AND RETRY'
               "SETMSG MSG(UTLZ001W)"
               ERRFIELD = 'DATABASE'
               ITERATE
             END
          ELSE NOP
         END
       ELSE
          IF DFLD2 ¬= 'DB' THEN
             DO
               ZEDLMSG = 'DATABASE MUST EQUAL TSO ID FOLLOWED BY 'DB'',
                  '. CORRECT DATABASE ENTRY AND RETRY'
               "SETMSG MSG(UTLZ001W)"
               ERRFIELD = 'DATABASE'

               ITERATE
             END
          ELSE NOP
      END
    ELSE
       IF DFLD4 = 'USMST' THEN
         DO
          IF CFLD3 ¬= 'USSTR' THEN
             DO
               ZEDLMSG = 'CREATOR NAMING CONVENTION USSTR*** .',
                   'CORRECT CREATOR ENTRY AND RETRY.'
               "SETMSG MSG(UTLZ001W)"
               ERRFIELD = 'CREATOR'
               ITERATE
             END
          ELSE NOP
          IF DFLD5 ¬= CFLD4 THEN
             DO
               ZEDLMSG = 'DATABASE/CREATOR MISMATCH. MUST END WITH',
                   'SAME 3 CHARACTERS. CORRECT AND RETRY.'
               "SETMSG MSG(UTLZ001W)"
               ERRFIELD = 'DATABASE'
               ITERATE
             END
          ELSE NOP
         END
       ELSE
          DO
            ZEDLMSG = 'DATABASE NAMING CONVENTION - USMST***.',
                'CORRECT DATABASE ENTRY AND RETRY.'
               "SETMSG MSG(UTLZ001W)"
               ERRFIELD = 'DATABASE'
               ITERATE
          END
    IF GRPID > '' THEN
      DO
        "TBCREATE TEMPDBST NOWRITE REPLACE KEYS(GRPID) NAMES(PRTROWS)"
        DB2SSID = "DSNP"
        SQLQUERY = "SELECT A.GRP_ID,",
                   "       B.CARD",
                   "  FROM USSTRP00.ADM40T_GRPPROF A,",
                   "       SYSIBM.SYSTABLES B",
                   " WHERE A.GRP_TYPE = 'SVCR'",
                   "   AND A.DB2_QUALIFIER = B.CREATOR",
                   "   AND B.NAME = 'PRT01T_PARTICIPANT'",
                   " ORDER BY B.CARD,",
                   "          A.GRP_ID"
        ADDRESS LINK "REXXSQL"
        SQLRC = RC
        IF SQLRC <> 0 THEN
          DO
            SAY "BAD SQLCODE VERIFYING GROUP ID:" SQLRC
            EXIT SQLRC
          END
        DO I = 1 TO _NROWS
          GRPID = STRIP(GRP_ID.I)
          PRTROWS = STRIP(CARD.I)
          "TBADD TEMPDBST"
        END
        "VGET GRPID SHARED"
        "TBGET TEMPDBST"
        IF RC > 0 THEN
          DO
            ZTDSELS = ''
            "ADDPOP ROW(1) COLUMN(44)"
            DO WHILE ZTDSELS ¬= 1 & RC < 8
              ZEDLMSG = 'PLEASE SELECT 1 VALID GROUP ID'
              "TBDISPL TEMPDBST PANEL(DBSETPOP)",
                               "AUTOSEL(YES) MSG(UTLZ000)"
            END
            IF ZTDSELS = 0 THEN
              DO
                GRPID = ''
                GENJCL = 'N'
              END
            "REMPOP ALL"
          END
      END
  END

EDITDONE = 'N'
  DO WHILE EDITDONE ¬= 'Y'
    "DISPLAY PANEL(DBSETUP)"
    IF RC = 8 THEN EXIT
    ERRFIELD = ''
    PARSE VAR DATABASE DFLD1 7 DFLD2 2 DFLD3 3 DREST
    PARSE VAR DATABASE 1 DFLD4 6 DFLD5
    PARSE VAR CREATOR CFLD1 7 CFLD2 1 CFLD3 6 CFLD4
    IF DFLD3 = '@' THEN
      DO
       IF DFLD2 = 'DB' THEN
         DO
          IF CFLD2 > '' THEN
             DO
               ZEDLMSG = 'CREATOR MUST EQUAL YOUR TSO ID -',
                   'CORRECT CREATOR ENTRY AND RETRY'
               "SETMSG MSG(UTLZ001W)"
               ERRFIELD = 'CREATOR'
               ITERATE
             END
          ELSE NOP
          IF DFLD1 ¬= CFLD1 THEN
             DO
               ZEDLMSG = 'FIRST SIX BYTES OF DATABASE/CREATOR MUST =',
                    ' TSO ID. CORRECT DATABASE/CREATOR ENTRY AND RETRY'
               "SETMSG MSG(UTLZ001W)"
               ERRFIELD = 'DATABASE'
               ITERATE
             END
          ELSE NOP
         END
       ELSE
          IF DFLD2 ¬= 'DB' THEN
             DO
               ZEDLMSG = 'DATABASE MUST EQUAL TSO ID FOLLOWED BY 'DB'',
                  '. CORRECT DATABASE ENTRY AND RETRY'
               "SETMSG MSG(UTLZ001W)"
               ERRFIELD = 'DATABASE'
               ITERATE
             END
          ELSE NOP
      END
    ELSE
       IF DFLD4 = 'USMST' THEN
         DO
          IF CFLD3 ¬= 'USSTR' THEN
             DO
               ZEDLMSG = 'CREATOR NAMING CONVENTION USSTR*** .',
                   'CORRECT CREATOR ENTRY AND RETRY.'
               "SETMSG MSG(UTLZ001W)"
               ERRFIELD = 'CREATOR'
               ITERATE
             END
          ELSE NOP
          IF DFLD5 ¬= CFLD4 THEN
             DO
               ZEDLMSG = 'DATABASE/CREATOR MISMATCH. MUST END WITH',
                   'SAME 3 CHARACTERS. CORRECT AND RETRY.'
               "SETMSG MSG(UTLZ001W)"
               ERRFIELD = 'DATABASE'
               ITERATE
             END
          ELSE NOP
         END
       ELSE
          DO
            ZEDLMSG = 'DATABASE NAMING CONVENTION - USMST***.',
                'CORRECT DATABASE ENTRY AND RETRY.'
               "SETMSG MSG(UTLZ001W)"
               ERRFIELD = 'DATABASE'
               ITERATE
          END
  EDITDONE = 'Y'
  END

TEMPFILE = SYSVAR(SYSUID) ¦¦ '.TEMP.DBSETUP.JCL'
ADDRESS TSO
DUMMY = OUTTRAP('NULL.')
"FREE DD(ISPFILE)"
"DELETE '"TEMPFILE"'"
"ALLOCATE DD(ISPFILE) DSN('"TEMPFILE"')" ,
                     "NEW CATALOG" ,
                     "UNIT(SYSDA) VOLUME(WRK$$$)" ,
                     "SPACE(1,1) TRACKS RELEASE" ,
                     "RECFM(F B) LRECL(80) DSORG(PS)"
DROP NULL.

ADDRESS ISPEXEC
"FTOPEN"
"FTINCL DBSETUP"
SAVERC = RC
"FTCLOSE"
ADDRESS TSO "FREE DD(ISPFILE)"

IF SAVERC > 0 THEN
    DO
        ZEDLMSG = 'FILE TAILORING OF THE "DBSETUP" SKELETON FAILED',
                  'WITH RC =' SAVERC
        "SETMSG MSG(UTLZ001W)"
        "EDIT DATASET('"TEMPFILE"')"
    END
ELSE IF JCLREVEW = 'Y' THEN
    DO
        ZEDLMSG = 'YOU MUST SUBMIT THIS JCL YOURSELF'
        "SETMSG MSG(UTLZ000W)"
        "EDIT DATASET('"TEMPFILE"')"
    END
ELSE
    DO
        ADDRESS TSO "SUBMIT '"TEMPFILE"'"
        ZEDLMSG = 'DBSETUP JOB SUBMITTED'
        "SETMSG MSG(UTLZ000W)"
    END

EXIT SAVERC