On Fri, 20 Jul 2007 09:27:32 -0500, Ed Gould <[EMAIL PROTECTED]> wrote:

>I have little doubt you
>can do it in rexx but how many people would be able to debug it (if
>need be).
>

At least as many as could for any program written in any other language 
considering rexx syntax is fairly simple (one reason why it is a popular). 

In my particular case... if you've ever looked at programs I write for
human consumption, I tend to document every line of code or at least
have detailed comment blocks about a section of code that might
be confusing.    But really... this stuff isn't rocket science.  What's
in the records is well documented in the SMF manual.  I can share
a snippet of the code:

JOBNAME  = Substr(INREC,IDENTOFF,8)    /* jobname                  */
PROGNAME = Substr(INREC,IDENTOFF+8,8)  /* program name             */
STEPNAME = Substr(INREC,IDENTOFF+16,8) /* step name                */
JESID    = Substr(INREC,IDENTOFF+32,8) /* JES job identifier       */
CLS      = Substr(INREC,IDENTOFF+42,1) /* job class (jobs only)    */
STEPIND  = Substr(INREC,COMPOFF+2,1)   /* step term indicator      */
CHKIND7  = C2d(Bitand(STEPIND,'01'x))  /* chk for x '01' (bit 7)   */
if CHKIND7 >= 1 then RTCD = 'FLUSH'    /* bit on - step flushed    */
else do                                /* bit off -step not flushed*/
  CHKIND6  = C2d(Bitand(STEPIND,'02'x)) /* check for x'02' (bit 6) */
  if CHKIND6 >= 2 then do             /* bit on - step abended     */
    CODEIND  = Substr(INREC,COMPOFF,1) /* code indicator           */
    CHKCODE1 = C2d(Bitand(CODEIND,'80'x)) /* check high order bit  */
    if CHKCODE1 >= 128 then do            /* bit on - user abend   */
      RTCD = Substr(INREC,COMPOFF,2)      /* user abend code       */
      RTCD = C2d(RTCD) -32768             /* convert to decimal    */
      RTCD = Right(RTCD,4,'0')            /* pad with zeros        */
      RTCD = 'U'||RTCD                    /* abend is UNNNN        */
    end                                                              
    else do                                                          
      RTCD = Substr(INREC,COMPOFF,2)      /* system abend code     */
      RTCD = C2x(RTCD)                    /* convert to character  */
      RTCD = Right(RTCD,3,'0')            /* pad with zeros        */
      RTCD = 'S'||RTCD                    /* abend is SNNN         */
    end                                                              
  end                                                                
  else do                        /* bit off - normal end of step   */
    RTCD   = Substr(INREC,COMPOFF,2) /* step completion code       */
    RTCD   = C2d(RTCD)             /* convert to decimal           */
    if RTCD >9999 then nop                                           
    else                                                             
      RTCD   = Right(RTCD,4,'0')   /* pad with zeros - RC = NNNN   */
  end                                                                
end                                      

                            
--
Mark Zelden
Sr. Software and Systems Architect - z/OS Team Lead
Zurich North America / Farmers Insurance Group - ZFUS G-ITO
mailto:[EMAIL PROTECTED]
z/OS and OS390 expert at http://searchDataCenter.com/ateExperts/
Systems Programming expert at http://expertanswercenter.techtarget.com/
Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to