I use the attached CLIST to change the concatenations of any of the DDNAMEs, 
except for STEPLIB.  I use an main CLIST that is invoked at login time to add 
to several of the pre-Allocated DDNAMEs and create a few.  The $Realloc.txt is 
some simple documentation I found for the CLIST.

Al Nims
Systems Admin/Programmer 3
UFIT
University of Florida
(352) 273-1298

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf 
Of Edward Finnell
Sent: Wednesday, November 30, 2016 5:26 PM
To: [email protected]
Subject: Re: concat

Attachments are permitted for .txt. 
 
 
In a message dated 11/30/2016 12:30:40 P.M. Central Standard Time, 
[email protected] writes:

I don't  believe that we can attach files on this listserv, so here it is in 
source  form:



----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN
PROC 1 DS FIRST LAST ADD REPLACE NOLIST LIST NOPROMPT PROMPT SHR OLD -
       HELP DELETE DDNAME(SYSPROC) DISP(SHR) DEBUG NOERROR
CONTROL NOFLUSH
IF &DS = HELP OR &HELP = HELP THEN DO
   HELP REALLOC
   EXIT CODE(0)
   END
IF &OLD = OLD THEN SET DISP = OLD
IF &PROMPT = PROMPT THEN DO
   SET LIST = LIST
   ISPEXEC CONTROL DISPLAY LINE
   END
IF &LIST = LIST THEN CONTROL LIST NOFLUSH
SET SYSOUTTRAP = 1000
LISTA ST
SET SYSOUTTRAP = 0
SET FOUND = NO
SET DSFOUND = NO
SET CONCAT = &STR()
SET PREF = &SYSPREF..
SET PREFL = &LENGTH(&STR(&PREF))
IF &SUBSTR(1:1,&DS) = ' THEN SET DS1 = &DS
ELSE IF &SYSPREF = THEN SET DS1 = '&DS'
ELSE SET DS1 = '&SYSPREF..&DS'
SET I = 1
DO WHILE &STR(&FOUND) = NO AND &SYSOUTLINE >= &I
   SET DDN = &&SYSOUTLINE&I..
   IF &DEBUG. = DEBUG THEN WRITE DEBUG DDN IS &DDN.
   IF &LENGTH(&STR(&DDN)) > 9 THEN -
      IF &STR(&SUBSTR(2:10,&DDN)) = &STR( &DDNAME) THEN DO
         SET FOUND = YES
         SET I = &I - 1
         SET DSN = &&SYSOUTLINE&I..
         IF &DEBUG. = DEBUG THEN WRITE DEBUG DSN IS &DSN.
         IF &LIST = LIST THEN WRITE &DDNAME ALLOCATION IS
         IF &LIST = LIST THEN WRITE    '&DSN'
         SET DS2 = '&DSN'
         IF &LENGTH(&DSN) > &PREFL THEN -
            IF &SUBSTR(1:&PREFL,&DSN) = &STR(&PREF) THEN DO
               SET DSN = &SUBSTR(&EVAL(&PREFL+1):&LENGTH(&DSN),&DSN)
               IF &DEBUG. = DEBUG THEN WRITE DEBUG DSN IS &DSN.
               END
            ELSE DO
               SET DSN = '&DSN'
               IF &DEBUG. = DEBUG THEN WRITE DEBUG DSN IS &DSN.
               END
         ELSE DO
            SET DSN = '&DSN'
            IF &DEBUG. = DEBUG THEN WRITE DEBUG DSN IS &DSN.
            END
         IF &REPLACE = AND &DS1 ^= &DS2 THEN SET CONCAT = &DSN
         IF &DS1 = &DS2 THEN SET DSFOUND = YES
         END
      ELSE SET I = &I + 1
   ELSE SET I = &I + 1
   END
IF &FOUND = YES THEN DO
   DO WHILE &EVAL(&I+3) <= &SYSOUTLINE
      SET I = &I + 3
      SET DDN = &&SYSOUTLINE&I
      IF &DEBUG. = DEBUG THEN WRITE DEBUG DDN IS &DDN.
      IF &STR(&SUBSTR(1:3,&DDN)) = &STR() THEN DO
         IF &REPLACE = REPLACE AND &LAST = LAST THEN -
            SET CONCAT = &CONCAT&STR( ')&DSN'
         SET I = &I - 1
         SET DSN = &&SYSOUTLINE&I
         IF &DEBUG. = DEBUG THEN WRITE DEBUG DSN IS &DSN.
         IF &LIST = LIST THEN WRITE    '&DSN'
         SET DS2 = '&DSN'
         IF &LENGTH(&DSN) > &PREFL THEN -
            IF &SUBSTR(1:&PREFL,&DSN) = &STR(&PREF) THEN DO
               SET DSN = &SUBSTR(&EVAL(&PREFL+1):&LENGTH(&DSN),&DSN)
               IF &DEBUG. = DEBUG THEN WRITE DEBUG DSN IS &DSN.
               END
            ELSE DO
               SET DSN = '&DSN'
               IF &DEBUG. = DEBUG THEN WRITE DEBUG DSN IS &DSN
               END
         ELSE DO
            SET DSN = '&DSN'
            IF &DEBUG. = DEBUG THEN WRITE DEBUG DSN IS &DSN
            END
         IF &REPLACE = OR &LAST = THEN -
            IF &DS1 ^= &DS2 THEN SET CONCAT = &CONCAT &DSN
         IF &DS1 = &DS2 THEN SET DSFOUND = YES
         END
      ELSE SET I = &SYSOUTLINE
      END
   END
ELSE DO
   IF &LIST = LIST THEN WRITE &DDNAME IS NOT ALLOCATED.
   END
IF &LIST = LIST THEN DO
   IF &DELETE = DELETE THEN DO
      IF &DSFOUND = YES THEN WRITE &DS WILL BE DELETED FROM THE LIST.
      END
   ELSE IF &REPLACE = REPLACE THEN DO
      IF &LAST = LAST THEN WRITE THE LAST DATASET WILL BE REPLACED BY &DS..
      ELSE WRITE THE FIRST DATASET WILL BE REPLACED BY &DS..
      END
   ELSE DO
      IF &LAST = LAST THEN WRITE &DS WILL BE ADDED TO THE END OF THIS LIST.
      ELSE WRITE &DS WILL BE ADDED TO THE TOP OF THIS LIST.
      END
   END
IF &DELETE = DELETE THEN DO
   IF &DSFOUND = NO THEN DO
      IF &NOERROR ^= NOERROR THEN +
         WRITE DATASET &DS1 WAS NOT FOUND IN &DDNAME ALLOCATION.
      EXIT CODE(4)
      END
   SET CONCAT2 = &CONCAT
   END
ELSE IF &LAST = LAST THEN SET CONCAT2 = &CONCAT &DS
ELSE SET CONCAT2 = &DS &CONCAT
IF &PROMPT = PROMPT THEN DO
   WRITE ALLOCATION WILL BE CHANGED WITH THE FOLLOWING COMMAND:
   IF &CONCAT2 = THEN WRITE    FREE FI(&DDNAME)
   ELSE WRITE    ALLOC FI(&DDNAME) DS(&CONCAT2) &DISP
   WRITENR ENTER YES TO EXECUTE THIS COMMAND ===>
   READ
   IF &SYSDVAL ^= YES THEN EXIT CODE(0)
   END
IF &CONCAT2 = THEN FREE FI(&DDNAME)
ELSE ALLOC FI(&DDNAME) DS(&CONCAT2) &DISP REUSE
SET RC = &LASTCC
IF &RC ^= 0 THEN DO
   WRITE ALLOCATION FAILED, RETURN CODE &RC..
   IF &PROMPT = PROMPT THEN DO
      WRITE ALLOCATION WILL BE CHANGED WITH THE FOLLOWING COMMAND:
      WRITE    ALLOC FI(&DDNAME) DS(&CONCAT) &DISP
      WRITENR ENTER YES TO EXECUTE THIS COMMAND ===>
      READ
      IF &SYSDVAL ^= YES THEN EXIT CODE(0)
      END
   ALLOC FI(&DDNAME) DS(&CONCAT) &DISP REUSE
   SET RC = &LASTCC
   END
EXIT CODE(&RC)

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN
TSO  CLIST REALLOC                                            TSO  CLIST REALLOC

                                                          Author: Graeme McRae
                                                   formatted on  1995/04/01 
06:54
          Contact your local support team to update
          and maintain this if you need it.
--------------------------------------------------------------------------------
CLIST NAME.  REALLOC
users.       ISPF users to change ISPF concatenations
type.        TSO CLIST    resides in SYS1.TSOCLIST

--------------------------------------------------------------------------------
REALLOC  Reallocate ddname according to profile
--------------------------------------------------------------------------------
    related   ddname  pdsdd  proc (proc includes proc, clist, and panels) rename
--------------------------------------------------------------------------------

The  REALLOC clist command allows the ISPF user to reallocate the datasets for a
given ddname.

--------------------------------------------------------------------------------

                               Since square brackets are not available, optional
                                material is enclosed in European brackets <...>.
   REALLOC 'dsname' <...options...>

--------------------------------------------------------------------------------

Examples:

        REALLOC 'SYS1.TSOCLIST' first ddname(SYSPROC) add list
        REALLOC 'SYS1.TSOCLIST' first add           <same ending result as 
above>

===================> TSO HELP REALLOC  =================================

FUNCTION - &
   The %REALLOC clist adds, replaces, or deletes a dataset from  a  concatenated
   PDS  allocation.  If the dataset was already in the concatenation it will not
   be entered twice.

SYNTAX  -
         %REALLOC   'DSNAME'
                    DDNAME(DDNAME)
                    FIRST | LAST
                    ADD | REPLACE | DELETE
                    NOLIST | LIST | PROMPT

OPERANDS -
  DSNAME          THE DSNAME YOU WISH TO ADD OR DELETE
  DDNAME          THE DDNAME YOU WISH TO AFFECT
                  THE DEFAULT IS "SYSPROC". FOR CLISTS.
  FIRST           ADD OR REPLACE THE DATASET FIRST IN THE CONCATENATION
                  "FIRST" IS THE DEFAULT.
  LAST            ADD OR REPLACE THE DATASET AT THE END OF THE
                  CONCATENATION.
  ADD             ADD THIS DATASET TO THE CONCATENATION.
                  "ADD" IS THE DEFAULT.
  REPLACE         REPLACE THE FIRST OR LAST DATASET WITH THIS ONE.
  DELETE          DELETE THIS DATASET FROM THE CONCATENATION.
                  YOU MAY NOT USE FIRST OR LAST WITH DELETE.
  NOLIST          DO NOT LIST THE CONCATENATION.
                  "NOLIST" IS THE DEFAULT.
  LIST            LIST THE CURRENT CONCATENATION AND THE CHANGES AS
                  THEY ARE MADE.
  PROMPT          LIST THE CHANGES, AND PROMPT THE USER TO "OK" THEM

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to