Previous Topic: 10.1 Parameter ModificationNext Topic: 10.1.2 Special Notes on Updating SMFGENIN


10.1.1 Processing Nonstandard Fields or SMF Records


In addition to processing standard SMF records, the Batch and
Operations Analyzer can process SMF records that your data
center may have altered through the use of additional
products or by entering a user field through the use of an
exit provided by JES or SMF.

If you need to input fields from nonstandard SMF type 6
output writer records generated by some other vendors report
distribution product, refer to Section 6.3.4.5.2.  The non-
standard SMF type 6 records produced by the following CA
report distribution products are completely supported and
discussed in Section 6.3.4.5.1:

      CA Dispatch Output Management
      CA Deliver Output Management
      CA Bundl
      CA View Output Archival and Viewing

Sometimes information that is contained in user-defined
fields on the SMF records needs to be carried in the CA MICS
files.  You must add these elements to the file definition
for the appropriate BATSFx files.  The BATSFx files are
populated during the data step that processes the raw SMF
records as well as during the CA MICS suspend process. You
must also add the elements to the appropriate database file,
for example, BATSPL, BATPGM, BATJOB, and so on.  You must add
code to the appropriate USRSSFx exit to read the elements
from the SMF records.  If the user fields you read need to be
summarized at the job level, you must also add code to the
appropriate USRSxxx exit.

Use the following directions to process the user data:

  1.  Add the new elements to the appropriate file by
      updating SMFGENIN.

  2.  Add code to the proper _USRSSFx exit: _USRSSFI for
      initiation records, _USRSSFS for step end or interval
      records,  _USRSSFJ for job end records, _USRSSFW for
      writer records, and _USRSSFP for purge records.  The
      following is sample code for the _USRSSFP exit:

         MACRO _USRSSFP
      /* READ USER DEFINED SMF26RSV */
         IF LENGTH GT 43 THEN
            INPUT @39 JOBxxx PIB4.  @;
         %

      Remember to end the INPUT statement with @.  Refer
      to Section 4.3.2 of the System Modification Guide for
      more details on exit implementation.

      Also note that the LENGTH of the record was checked to
      make sure that reading the field would not cause SAS to
      read beyond the end of the record.  The LENGTH data
      element is always available in the USRSSFx exits.

  3.  If you are reading a field from a step-level record and
      want it summarized at the job level, you must do the
      following:

      a) Add code to the _USRSINT to initialize the JOB level
         element.  This exit is invoked only once when a new
         Reader Time Stamp (RDRTS) and Job Name (JOB) is
         encountered.

              MACRO _USRSINT
           /*   FULL JOB INITIATION EXIT */
              JOBxxxx=0 ;
              %

      b) Add code to the _USRSPGM exit to add the step level
         element to the job level as shown in the sample
         below:

              MACRO _USRSPGM
           /*   BATCH PROGRAM FILE OUTPUT EXIT */
              JOBxxxx+PGMxxxx ;
              %

          Note the use of the SAS SUM statement of the form
          VARIABLE+EXPRESSION.  This forces an implied RETAIN
          of the JOBxxxx data element over all steps of the
          job.  If you instead coded the following, you would
          need to add a RETAIN JOBxxxx statement in the
          _USRSINT exit:

          JOBxxxx=JOBxxxx+PGMxxxx ;


  3.  Test the modification thoroughly in either a test
      complex or a test unit.

      If a test complex is being used, make certain both test
      and production complexes are at the same maintenance
      level; otherwise, you may have different results when
      you move to the production complex.

      If a test unit is used, override the _USRSSFx exit by
      coding it after the %INCLUDE SOURCE(#SMFEXIT) in
      prefix.MICS.USER.SOURCE(#SMFEXIT).