Endevor

Expand all | Collapse all

How to make output go out to a different DD name

  • 1.  How to make output go out to a different DD name

    Posted Nov 14, 2016 05:02 PM

    Hi need to put output go from a processor to special named DD sysout names. Instead of the list being buried in C1MSGS1. Any suggestions? I did this way back when and now I forgot how its done.



  • 2.  Re: How to make output go out to a different DD name

    Broadcom Employee
    Posted Nov 15, 2016 08:37 AM

    Hi Ron,

     

    Are you talking about this use of utility C1BM3000 in processor ?

     

    Example (Sample JCL)
    Sample JCL for the C1BM3000 utility is shown next. This JCL specifies a SCL input file, and the
    messages and Action Summary report are written to SYSOUT. A package ID is not specified, as
    indicated by the two commas between MSGOUT1 and MSGOUT2. The two commas are required.
    //C1BM3000 EXEC PGM=C1BM3000,PARM='SCLIN,MSGOUT1,,MSGOUT2'
    //STEPLIB  DD DSN=iprfx.iqual.CSIQAUTH,
    //         DISP=SHR
    //MSGOUT1  DD SYSOUT=*
    //MSGOUT2  DD SYSOUT=*
    //SYSABEND DD SYSOUT=*
    //SCLIN    DD DSN=uprfx.uqual.SCL,DISP=SHR
    //         DCB=(RECFM=FB,LRECL=80,BLKSIZE=6160,DSORG=PS)
    //

    Link to doc : https://docops.ca.com/ca-endevor-SCM/18/en/administrating/extended-processors/processor-utilities#ProcessorUtilities-C1BM3000Utility

    Regards,
    Ollivier


  • 3.  Re: How to make output go out to a different DD name

    Posted Nov 15, 2016 10:25 AM

    What we are looking to do is to have certain steps which review the source code and issue possible warning or error. This is internal / site specific scans that check the source adhere to site standards. These will NOT fail the processor run, but currently the info is dumped into the middle of element listing via Conlist. What is being looked for is for the output to go out to the person's job with the sysout with specific names. If it is a site standard "warning" then put any out to C1WARN. If more serious then out to C1ERROR.

    I know I did something like this long ago. Where the processor controlled the name.

    So if a user was to view their job output, they would see 'special' output names so they know to go to them first. When I did it, it was different name(s).

    Below is an example of what we are looking for:

      

     JESMSGLG                                                            Q ANYLOCAL                 9      

     JESJCL                                                                   Q ANYLOCAL               72                     

     JESYSMSG                                                            Q ANYLOCAL              292                  

     C1MSGS1  NDVRBAT              1 NDVRC1            Q ANYLOCAL           1,713                  

     RONPGM   NDVRBAT              1 NDVRC1            Q ANYLOCAL              521                      

     C1MSGS2  NDVRBAT              1 NDVRC1            Q ANYLOCAL                  8      

     --> C1WARN NDVRBAT             1 NDVRC1          Q ANYLOCAL               123  

     --> C1ERROR NDVRBAT           1 NDVRC1          Q ANYLOCAL               123  

    **************************** Bottom of Data ********************************

     

    I don't see that C1BM3000 does this. You tell it to go out to MSGOUT1 or MSGOUT2. But I can't make them C1WARN or even WARN or ERROR.



  • 4.  Re: How to make output go out to a different DD name
    Best Answer

    Broadcom Employee
    Posted Nov 15, 2016 11:36 AM

    Hi Ron,

     

    C1BM3000 allows to use different ddname when it is executed within a processor.

    If you want to filter C1MSGS1 sysout, you have to write C1MSGS1 to a temp DSN and add a couple of sort step to extract specific messages to another ddnames C1WARN and C1ERROR.

     

    Regards,

    Ollivier



  • 5.  Re: How to make output go out to a different DD name

    Posted Nov 15, 2016 11:46 AM

    Ron,

    If you are running your own steps within a processor you should be able to direct the output to any DD I would think.  We have something similar where we scan the job names.  I just changed it do what I think you want.  We have a scan step that is in REXX.  I directed the scan output to go to C1WARN for this case.

     

    He is the run of generate processor.

     

    The output of the scan in C1WARN



  • 6.  Re: How to make output go out to a different DD name

    Posted Nov 15, 2016 01:34 PM

    Thanks for the inputs from all.

    I wrote a very simple Cobol program. The C1BM3000 suggestion doesn't work the way needed. Its just a simple take a pre-arranged message and put it out.

    This is the COBOL. I said very simple.

    Then this is the step in the processor

     

    So this will do.



  • 7.  Re: How to make output go out to a different DD name

    Posted Nov 15, 2016 02:06 PM

    Some one mentioned that IDCAMS can do this too. UMM...



  • 8.  Re: How to make output go out to a different DD name

    Posted Nov 16, 2016 07:55 AM

    IDCAMS was the better answer. Simple Repro command with the input / output DD names which you can call whatever.



  • 9.  Re: How to make output go out to a different DD name

    Broadcom Employee
    Posted Dec 01, 2016 03:28 AM

    Hi Ron,

     

    Could you please share a sample with IDCAMS?

     

    Regards,

    Ollivier



  • 10.  Re: How to make output go out to a different DD name

    Posted Dec 01, 2016 11:25 AM

    Hi Ollivier

    Here is a sample of the step. Note the purpose is to have a message sent out to the job under a special DD output name. So in using the IDCAMs the input is some text files with the information, which that DD can be named whatever. Then the output is named whatever, in this case SSAERROR. So when the person see their output of their job if they see any SSAERROR then they know to go directly to that.

    Example:

     //STEPNAME EXEC PGM=IDCAMS,COND=((16,NE,SCANDECK),(16,EQ,SCANMODE)),
     //         EXECIF=(&C1STGNUM,EQ,1)                                 
     //SYSPRINT DD SYSOUT=*                                             
     //ENDVI  DD DSN=&&TMPPARM,DISP=(OLD,PASS)                          
     //       DD DISP=SHR,DSN=#6580.ENDVR.MESSAGES(AST)                 
     //       DD DISP=SHR,DSN=#6580.ENDVR.MESSAGES(NAME)                
     //       DD DISP=SHR,DSN=#6580.ENDVR.MESSAGES(AST)                 
     //SSAERROR DD SYSOUT=*                                             
     //SYSIN DD *                                                       
      REPRO -                                                           
       INFILE(ENDVI) -                                                  
       OUTFILE(SSAERROR)                                                
     /*                                                                 
     //* 

     

    Another example...

     

    //NAMERROR EXEC PGM=IDCAMS,                            
    // COND=((8,NE,NAMESRCH),(16,EQ,SCANDECK)),            
    //         EXECIF=(&C1STGID,EQ,&STGID)                 
    //SYSPRINT DD SYSOUT=*                                 
    //ENDVI  DD DSN=&&TMPPARM,DISP=(OLD,PASS)              
    //       DD DISP=SHR,DSN=#6580.ENDVR.MESSAGES(AST)     
    //       DD DISP=SHR,DSN=#6580.ENDVR.MESSAGES(NOTREGLD)
    //       DD DISP=SHR,DSN=#6580.ENDVR.MESSAGES(AST)     
    //SSAWARN DD SYSOUT=*                                  
    //SYSIN DD *                                           
     REPRO -                                               
      INFILE(ENDVI) -                                      
      OUTFILE(SSAWARN)                                     
    /*                                                     
    //*                                                    

     

    Example of the output list from a test run:


       C1MSGS1  NDVRBAT  
       C1MSGS2  NDVRBAT   
       ELEMNTF2  NDVRBAT   
       ELEMNTF3  NDVRBAT   
       ELEMNTF4  NDVRBAT   
       ELEMNTF5  NDVRBAT  
       JESJCL            
       JESMSGLG          
       JESYSMSG          
       SSAERROR NDVRBAT  
       SSAERROR NDVRBAT  
       SSAERROR NDVRBAT  
       SSAWARN  NDVRBAT  
       SSAWARN  NDVRBAT  

     

    Example of the message:

    ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
     ELEMENT: GLENNF5                                                      
    -  SYSTEM: TEST SUBSYSTEM: TRYIT STAGE: DEV                            
    -  TYPE: LINKEDIT PG: BCXX                                             
                                                                           
    ***********************************************************************
                                                                           
      THIS MESSAGE IS PRINTED FOR ONE OF TWO REASONS;                      
      EITHER:                                                              
      NAME CARD IN CONTROL MODULE ELEMENT EITHER MISSING OR                
      DOES NOT START IN COLUMN 2; PLEASE CORRECT AND UPDATE ELEMENT        
      OR:                                                                  
      A ++INCLUDE IN YOUR CONTROL MODULE COULD NOT BE RESOLVED; BROWSE THE 
      C1MSGS1 DD IN THE OUTPUT FOR ERRORS THAT OCCURRED DURING THE "WRITE" 
      STEP AND ENSURE THAT ALL REQUIRED OBJECT MODULES EXIST IN YOUR       
      SYSTEM/SUBSYSTEM OBJECT LIBRARY.                                     
                                                                           
    ***********************************************************************   

    Hope you find use for this.                                                              



  • 11.  Re: How to make output go out to a different DD name

    Broadcom Employee
    Posted Dec 05, 2016 04:38 AM

    Hi Ron,

     

    Many thanks for the sample, I'm sure this will be a great help in the community.

     

    Cheers,

    Ollivier