Endevor

 View Only
  • 1.  REPORTING

    Posted Dec 16, 2024 01:42 PM

    I want to get a report of daily lines of change in each element.  In other words, check lowest stage, has anything changed today?  If so, how many lines were changed.  I thought I might be able to do some kind of search for anything where the VVLL is not 0100, but that isn't daily and when I get the results and then have to find a way to report how many lines of code changed for the elements that had activity today.

    If anyone has such a report, or has an idea for creating one, please share,

    Thanks,

    Felicity.



    ------------------------------
    Felicity
    ------------------------------


  • 2.  RE: REPORTING

    Broadcom Employee
    Posted Dec 16, 2024 03:02 PM
    HI Felicity,

    The 'LIST ELEMENT' CSV option returns a field; ELM_LAST_LL_#_STMTS, which
    contains the number of statements for a given element. You can combine
    that with the last element action date (also from the LIST ELEMENT CSV) and
    sort / throw out all but today's date.

    I'm not sure this works for your specific need as it won't show you the
    difference between yesterday and today, only lines of code for an element
    which was changed on a particular day but maybe gets you further along.

    I've attached an example CSV / TableTool example job. Hope it helps.

    *Dave Harding *
    Client Services Consultant • Mainframe Software Division
    Broadcom Software
    Mobile 317-403-1740 | dave.harding@broadcom.com
    Upcoming vacation: January 18 - 26

    --
    This electronic communication and the information and any files transmitted
    with it, or attached to it, are confidential and are intended solely for
    the use of the individual or entity to whom it is addressed and may contain
    information that is confidential, legally privileged, protected by privacy
    laws, or otherwise restricted from disclosure to anyone else. If you are
    not the intended recipient or the person responsible for delivering the
    e-mail to the intended recipient, you are hereby notified that any use,
    copying, distributing, dissemination, forwarding, printing, or copying of
    this e-mail is strictly prohibited. If you received this e-mail in error,
    please return the e-mail to the sender, delete it from your computer, and
    destroy any printed copy of it.




  • 3.  RE: REPORTING

    Posted Dec 19, 2024 03:18 PM

    Hello Felicity,

    If you want to use CSV utility then LIST ELEMENT will show MCF info for the current level.

    You also need to specify DATA ELEMENT CHANGE LEVEL SUMMARY to get the summary of levels that you want.

    This could return a lot of data so you want to narrow down the criteria in the LIST SCL as much as possible to specify a certain ENVIRON STAGE SYSTEM and not search in order to reduce the amount of processing.

    There does not seem any option to filter on date so you can LIST everything then filter out everything except today !

    Not very efficient but can run a batch job - I would use a REXX but maybe there is another utility to filter the date.

    You could pass the APIEXTR to a REXX to then select only records with the CHGDATE is today or pass the date required into the rexx from the JCL.

    Run the job every day.

    VALUE.27 contains change date.

    VALUE.1 = RCD TYPE      
    VALUE.2 = DATA TYPE     
    VALUE.3 = SITE ID       
    VALUE.4 = ENV NAME      
    VALUE.5 = SYS NAME      
    VALUE.6 = SBS NAME      
    VALUE.7 = ELM NAME      
    VALUE.8 = FULL ELM NAME 
    VALUE.9 = TYPE NAME     
    VALUE.10 = STG NAME     
    VALUE.11 = STG ID       
    VALUE.12 = STG #        
    VALUE.13 = STG SEQ #    
    VALUE.14 = PROC GRP NAME
    VALUE.15 = UPDT DATE    
    VALUE.16 = UPDT TIME    
    VALUE.17 = SIGNOUT ID   
    VALUE.18 = ELM VV       
    VALUE.19 = ELM LL       
    VALUE.20 = CMPNT VV     
    VALUE.21 = CMPNT LL     
    VALUE.22 = RCD CNT      
    VALUE.23 = RCD #        
    VALUE.24 = CHG VV       
    VALUE.25 = CHG LL       
    VALUE.26 = CHG USRID    
    VALUE.27 = CHG DATE     
    VALUE.28 = CHG TIME     
    VALUE.29 = # STMTS      
    VALUE.30 = # INSERT     
    VALUE.31 = # DELETE     
    VALUE.32 = SYNC         
    VALUE.33 = CCID         
    VALUE.34 = COMMENT      

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

    There is an easier option -- may or not be acceptable for your situation....

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

    Show them the ENDEVOR DISPLAY option in ISPF - Display the inventory location you want and then use S for summary of levels.

    But first - select only elements with todays date 

    Enter EONLY CURDTE 25DEC24

    or a range EONLY CURDTE 25DEC24-02JAN25

    finally sort the filtered results:

    ESORT CURDTE

    Then you can see what's changed today and use S to select and see INSERTS and DELETES

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

    For the CSV I use JCL like this...

    // SET CSV=new.dataset.csv  

    //DELETE   EXEC PGM=IEFBR14                                 
    //DEL1     DD DSN=&CSV,DISP=(MOD,DELETE),SPACE=(1,(1,0),RLSE
    //STEP01 EXEC PGM=NDVRC1,REGION=4096K,                      
    // PARM='CONCALL,DDN:CONLIB,BC1PCSV0'                       
    //SYSUDUMP DD SYSOUT=*                                      
    //BSTIPT01 DD *                                             
     LIST ELEMENT *                                             
     FROM ENV environ SYSTEM * SUB * TYPE * STAGE *            
     DATA ELEMENT CHANGE LEVEL SUMMARY                          
     OPTION PATH PHYSICAL RETURN ALL SEARCH .                   
    /*                                                          
    //APIEXTR  DD DSN=&CSV,                                     
    //         DCB=(DSORG=PS,RECFM=FB,LRECL=4092),              
    //         DISP=(NEW,CATLG,DELETE),                         
    //         SPACE=(CYL,(500,100),RLSE)                       
    //C1MSGS1 DD SYSOUT=*                                       
    //BSTERR DD SYSOUT=*                                        
    //*                                                         
    //RUNREXX  EXEC PGM=IKJEFT1A                                
    //CSV      DD  DISP=SHR,DSN=&CSV                            
    //SYSTSPRT DD  SYSOUT=*                                     
    //SYSEXEC  DD  DSN=xxx.JPDS.REXX,DISP=SHR                  
    //SYSTSIN  DD  *                                            
     %CSVREAD          

    REXX 

    ***************************** Top of Data **************************
    /* REXX */                                                          
    recs = 0                                                            
    report = ''                                                         
    /*                                                          */      
    do until cc = 2               /* until eof cc               */      
      "execio 1 DISKR csv"        /* read 1 record from extract */      
      cc = rc                     /* save cc                    */      
      values = 0                  /* count csv items in row     */      
      recs = recs + 1             /* count csv rows             */      
      call unpack                 /* unpack between commas      */      
      /*                                            */                  
      /* record 1 - report headings                 */                  
      /*                                            */                  
      if recs = 1 then do                   /* if first record       */ 
          do z = 1 to values                    /* for each value    */ 
             say 'VALUE.'Z '=' value.z          /* list the headings */ 
          end                                                           
      end                                                               
    /*                                                      */          
    /* select records for processing  and fields to report  */          
    /*                                                      */          
      select                                                            
        when value.27 > "2024/10/08" then do    /* selection criteria */
                                                                        
          report = ,                                                    
          VALUE.18 'ELM VV        ' ,                                   
          VALUE.19 'ELM LL        ' ,                                   
          VALUE.20 'CMPNT VV      ' ,                                   
          VALUE.21 'CMPNT LL      ' ,                                   
          VALUE.22 'RCD CNT       ' ,                                   
          VALUE.23 'RCD #         ' ,                                   
          VALUE.24 ' CHG VV       ' ,                                   
          VALUE.25 ' CHG LL       ' ,                                   
          VALUE.26 ' CHG USRID    ' ,                                   
          VALUE.27 ' CHG DATE     ' ,                                   
          VALUE.28 ' CHG TIME     ' ,                                   
          VALUE.29 ' # STMTS      ' ,     
          VALUE.30 ' # INSERT     ' ,                                       
          VALUE.31 ' # DELETE     ' ,                                       
          VALUE.32 ' SYNC         ' ,                                       
          VALUE.33 ' CCID         ' ,                                       
          VALUE.34 ' COMMENT      '                                         
                       /*                         */                        
          say report                            /* report the values  */    
        end /* value selected */                                            
        otherwise do                                                        
          nop                                   /* otherwise do nothing */  
        end /* otherwise */                                                 
      end /* select */                                                      
    end /* do until */                                                      
    exit                                                                    
                                                                            
    unpack:                                                                 
      /* get items between commas and save as value.1 to value.0 */         
      pull csv                /* read a csv record */                       
      do forever                                                            
           if pos(',',csv) = 0 then do     /* no comma in string */         
             values = values + 1           /* count */                      
             value.values = strip(TRANSLATE(csv,' ','"')) /* remove quotes*/
               leave                /* finished this row */                 
           end /*    */                                                     
           else do                         /* comma in string */            
             values = values + 1 /* count */                                
           /* keep value up until first comma */                            
             value.values  = substr(csv,1,pos(',',csv))                     
             value.values  = strip(value.values,t,',') /* STRIP COMMA */    
             value.values  = strip(value.values,b,'"') /* STRIP QUOTES*/    
           /* save remaining csv after first comma */                       
             csv = substr(csv,pos(',',csv)+1,length(csv))                   
           end                                                              
      end /* forever */                                                     
    return                                                                  
    **************************** Bottom of Data ****************************                                        




  • 4.  RE: REPORTING

    Posted Dec 19, 2024 03:26 PM
    Thanks very much. I'll work with this.

    Felicity Vaughan