Just to clarify - the TSO CLIST manual has the SPROC code in it as a sample for 
CLIST coding

http://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.ikjb800/sproc.htm

in the past I did copy this and it did run correctly.  But I think it may need 
to run in TSO READY mode.

Are you looking for something that can run under ISPF to reallocate/concatenate 
to SYSPROC, SYSEXEC, etc...


Lizette


> -----Original Message-----
> From: IBM Mainframe Discussion List [mailto:[email protected]] On
> Behalf Of Mike Myers
> Sent: Wednesday, November 30, 2016 11:30 AM
> To: [email protected]
> Subject: Re: concat
> 
> Mark:
> 
> I have a REXX procedure I wrote many years ago that does the job. I can say
> that it works on z/OS 2.1, but don't have access to a 2.2 system, although I
> can see no reason why it won't run there.
> 
> I don't believe that we can attach files on this listserv, so here it is in
> source form:
> 
> /* rexx */
>   /* ----------------------------------------------------------------
>      Syntax:
>           %ralok dsname filename <top | bottom | replace>
> 
>      This REXX procedure can be used to alter the existing allocation
>      for the file identified in the second operand. The data set
>      whose name is supplied as the first operand will be inserted
>      into the existing allocation (or replace it), depending on the
>      value of the third operand (as follows):
> 
>           top       - inserts the data set named as the first data
>                       set in the concatenation for the file
> 
>           bottom    - inserts the data set named as the last data
>                       set in the concatenation for the file
> 
>           replace   - inserts the data set named as the only data set
>                       allocated to the file
> 
>      arguments:
>           dsname    - the name of the data set to be used in altering
>                       the concatenation for the file.
> 
>           filename  - the ddname of the file whose concatenation is
>                       to be altered.
> 
>           <top | bottom | replace> - explained above - determines
>                       where in the concatenation order the data set
>                       is placed. The default is top.
> ---------------------------------------------------------------- */
>   /* ----------------------------------------------------------------
>      Obtain the parameters.
> ---------------------------------------------------------------- */
>      parse upper arg dsname filename option .
>      if length(dsname) = 0 then , /* Dsname and file are required.    */
>        if length(filename) = 0 then do
>          say 'You must provide a data set name and a file name.'
>          say 'Syntax: ralok dsname filename <TOP|BOTTOM|REPLACE>'
>        exit 20
>      end
>   /* ----------------------------------------------------------------
>      Initialize variables.
> ---------------------------------------------------------------- */
>      dsnames = ''                /* List of allocated data sets       */
>      found = 0                   /* Set file found indicator off      */
>      if length(option) = 0 then option = 'TOP'
>   /* ----------------------------------------------------------------
>      Act on the option specified.
> ---------------------------------------------------------------- */
>      select
>        when option = 'REPLACE' then do  /* Replace entire allocation. */
>          address TSO 'ALLOC F('filename') DA('dsname') SHR REUSE'
>          say 'Data set: 'dsname' replaces allocation for file:' filename
>          exit rc
>        end
>        when (option = 'TOP' | option = 'BOTTOM') then do
>   /* ----------------------------------------------------------------
>      Enable SYSOUT trapping. Results go in the array named lista.
> ---------------------------------------------------------------- */
>          x = outtrap(lista.)     /* Trap output from LISTA command.   */
>          address TSO 'LISTALC ST'
>          x = outtrap(off)        /* Disable output trapping.          */
>          if lista.0 = 0 then exit /* No output from LISTALC, quit.    */
>       /* ----------------------------------------------------------------
>          Find the desired file in the LISTA output.
> ---------------------------------------------------------------- */
>          do line = 2 to lista.0  /* skip command and header lines     */
>         /* --------------------------------------------------------------
>            Process terminal file entry or null file entry.
> -------------------------------------------------------------- */
>            if (substr(lista.line,1,8) \= 'TERMFILE') & ,
>               (substr(lista.line,1,8) \= 'NULLFILE') then do
>              parse var lista.line ddname .
>              ddname = strip(ddname)                /* Remove blanks   */
>              if filename = ddname then do  /* Matches input filename  */
>                line = line - 1             /* Back up one line.       */
>                parse var lista.line name . /* Isolate the dsname      */
>                dsnames = "'"strip(name)"'" /* Assign it to the list   */
>                found = 0                   /* Found = 1 when the next
>                                               file (ddname) is found. */
>                line = line + 1             /* Back to current line.   */
>                do until found            /* Continue to next file.    */
>                  line = line + 2         /* Check for next file       */
>                  if line <= lista.0 then , /* Don't go past end of
>                                               LISTA output listing.   */
>                    if substr(lista.line,1,8) \= '        ' then ,
>                      found = 1           /* Next file name found      */
>                    else do               /* Add another data set name */
>                      line = line - 1     /* Back up one line          */
>                      parse var lista.line name . /* Get dataset name  */
>                      dsnames = dsnames "'"strip(name)"'" /* Add it.   */
>                      line = line + 1     /* Go next line.             */
>                    end
>                  else found = 1          /* end of lista output.      */
>                end
>              end
>            end
>          end
>       /* --------------------------------------------------------------
>          Add the data set name to the top or bottom of the data set
>          names already allocated to the file and redo the allocation.
> -------------------------------------------------------------- */
>          if option = 'TOP' then dsnames = dsname dsnames
>          else dsnames = dsnames dsname   /* Add dsname to name list.  */
>          address tso 'ALLOC F('filename') DA('dsnames') SHR REUSE'
>          if rc = 0 then say 'Data set 'dsname' allocated at the 'option ,
>            'of the concatenation order for file: 'filename
>        end
>        otherwise say 'Invalid option: 'option' only TOP, BOTTOM or ',
>          'REPLACE allowed.'
>      end
>   /* ----------------------------------------------------------------
>      End of processing, set up to execute REXX procedures and leave.
> ---------------------------------------------------------------- */
>      address TSO 'EXECUTIL SEARCHDD(YES)'
> 
> Mike Myers
> Mentor Services Corporation
> 
> On 11/30/2016 11:19 AM, Steely.Mark wrote:
> > Would anyone be able to provide a way to concatenate a library to the
> SYSPROC allocation.
> >
> > I have tried the concat program from the CBT tape file 134 that abend with a
> S0c4.
> > I have tried a rexx exec called ALLOCREX. This sort of works ( it adds my ds
> to SYSPROC) but does not keep the same setup of SYSPROC before the addition.
> > I have tried clist SPROC from IBM but for some reason it is not working.
> >
> >
> >
> > Does anyone have something they can share for z/os V2.2.
> >
> > Thanks
> >

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

Reply via email to