June/July 1998

IOFTech    EndFAQ    Maintenance   Release8G       Newsletters    Doc    FAQ    Contacts    Home    Webmaster

IOF 7D SNAP Enhancements


Introduction to Snap

The IOF SNAP command copies data from the JES2 spool to an external (target) data set. SNAP can be issued from several IOF panels:

Job List Menu Copy one or more jobs
Output Group Display   Copy one or more output groups
Job Summary Copy one or more sysout data sets
(All or parts of a data set may be copied)
Browse Copy as little as one line and as much as the whole data set
Data Index Copy from the indexed item through the next indexed item

Snap Target Data Set

There are three ways to define the SNAP target dataset:
Default target data set SYSOUT dataset with CLASS and DEST as defined in IOF profile option P.1
Explicit SYSOUT data set    Defined by issuing the SS command
Explicit disk data set Defined by issuing the SD command

Saving Default SD Parms in the User's Profile

Release 7D has a new profile option which allows each user to specify default SD parms for disk target data sets. The default parms are saved in the user's profile. From the IOF Option Menu enter P.5 to display the SD Command Defaults panel shown below.

----------------------------- SD Command Defaults ----------------------------
COMMAND ===>                                                                  
  The attributes below will be used by default for snapping to disk data      
  sets with the SD command.  SD with no operands will display a parm menu.    
DSNAME        ===>                                                            
RECFM         ===> VBA           Record format                                
LRECL         ===> 255           Logical record length                        
BLKSIZE       ===> 3600          Block size                                   
PRIMARY       ===> 20            Primary allocation   (in tracks)             
SECONDARY     ===> 20            Secondary allocation (in tracks)             
UNIT          ===>               Unit name                                    
VOLUME        ===>               Volume serial                                
STORCLAS      ===>               SMS storage class                            
MGMTCLAS      ===>               SMS management class                         
DATACLAS      ===>               SMS data class                               
PACK(Y or N)  ===> NO            Pack data using ISPF method                  

Each user can specify the data set characteristics that best suits their individual requirements. Users that prefer to snap to a single target data set can specify the data set name. The SD command displays the default values and allows users to alter any parm by overtyping.

Improved Carriage Control Conversion

IOF SNAP automatically converts carriage control characters when the source data set and target dataset have different RECFM values. For example, if the source data set is ASA and the target data set is machine control, SNAP automatically converts ASA to machine.

Prior to release 7D, RECFM conversion was done in a manner that produced identical results when the target data set was printed, but appeared to generate extra lines when the target data set was browsed online. The RECFM conversion algorithm has been improved in release 7D to eliminate these extra lines while still producing correct printed output.

ISPF Packed Format

The SD panel in Release 7D has a new PACK option. When PACK is specified, SNAP saves the snapped data in ISPF edit/browse packed format. Packed format can save significant amounts of disk space for many sysout data sets. ISPF edit and/or browse must be used to process packed data sets.

Adding Text to the Target Data Set

The SNAPTEXT command is new in Release 7D. It can be used to add user defined text to a target snap data set. This often is useful to produce header lines to identify snapped data to an external processing system such as microfiche or CD writing programs. Text and hex data strings can be specified. ASA or machine carriage control data can optionally be included on the output line.


     [ ASA(asa-ctl) / MACHINE(mac- ctl) ]
    [ CHAR line-of-text / HEX hex-data ]

BUILD. Specifies that a complex header record is being built. The carriage control or data is added to the record but output is not yet written. After one or more SNAPTEXT BUILD commands, a SNAPTEXT command with no parms is used to write the accumulated record to the target data set.

asa-ctl. The optional ASA carriage control character.

mac-ctl. The optional machine carriage control character in hexadecimal.

CHAR. Specifies that character data follows.

line-of-text. The string of character data to be added to the snap target data set.

HEX. Specifies that hexadecimal data follows.

hex-data. The string of hexadecimal data to be added to the snap target data set.


SNAPTEXT ASA(1) CHAR Example header at top of form
SNAPTEXT MACHINE(8B) CHAR Machine control example header
SNAPTEXT CHAR This data will be printed on the next line
SNAPTEXT BUILD CHAR Character part of a complex header

Note that SNAPTEXT with no parms causes the accumulated data record to be written.

Block Headers

It may be useful to use another new 7D feature to add block headers to snap target data sets. Block headers are particularly useful for defining data separators when preparing output for microfilm or CD rom.

The SNAPHDR command utilizes SNAPTEXT to produce block headers in the snap target data set. Three block header formats are supported. It is relatively easy to create additional local formats.


SNAPHDR [   1   /   2   /   3   ]    [SLANT] header-text

1  /  2  /  3    Optionally specifies the block header format.

1   specifies the default block header format of 7 lines by 5 characters wide.

2   specifies a block header 7 lines by 7 characters wide.

3   specifies a block header 13 lines by a proportional width.

SLANT. If specified, causes the block letters to be slanted.

header-text. The text to be blocked. Note that the number of characters that can be written to the output line is a function of the header format and the line width. The header text will be truncated when it will not fit on the snap target output line. Lower case characters are exploded to upper case.


SNAPHDR 3 *** Friday ***

SNAPHDR is implemented via the IOF$SH1,IOF$SH2 and IOF$SH3 Rexx execs in the IOF Clist library. The format and style of the headers can be changed by modifying these execs to meet local requirements.

Standard Block Header Identifiers

Release 7D supports the new HDR line command on the Job List Menu, Output Group Display and Job Summary Panel. HDR adds a block header identifier to the target snap data set to make it easier to identify. The standard header includes jobname, jobid, sysout class and destination, and data set step name, procstep name and ddname.

To use HDR from one of the menus listed above:

1. Define the target SNAP data set

2. Enter HDR in the line area to the left of the job, output group or sysout data set.

3. SNAP a copy of the sysout data.

4. Optionally enter the SNAPCLOS command to close the target snap data set.

For example, when the HDR line command is entered on the Job Summary Panel as shown below, the following block headers are generated.

------------------------------- IOF Job Summary -------------------------------
COMMAND ===>                                                 SCROLL ===> CURSOR
  TESTHDR  J04708  OUTPUT   14:49   7/15/1998 YESTERDAY  TRISYS                
   0  IEBGENER   COPYC    STEP17A  PT1                                         
_    1  LOG      *                          A   1 W   16 L  TRISYS             
_    2  JCL      *                          A   1 W   43 L  TRISYS             
_    3  MESSAGES *                          A   1 W   56 L  TRISYS             
HDR  4  SYSPRINT COPYC    STEP17A           A   1 W    4 L  TRISYS             
_    5  SYSUT2   COPYC    STEP17A           A   1 W   34 L  TRISYS             

Output Generated by IOF SNAP on 15 Jul 1998 AT 14:50:03

Jobname - TESTHDR  Jobid - J04708

TTTTT  EEEEE   SSS   TTTTT  H   H  DDDD   RRRR                  JJJJ   000   4      77777   000    888
  T    E      S   S    T    H   H  D   D  R   R                   J   0   0  4  4       7  0   0  8   8
  T    E      S        T    H   H  D   D  R   R                   J   0   0  4  4      7   0   0  8   8
  T    EEEE    SSS     T    HHHHH  D   D  RRRR                    J   0   0  44444    7    0   0   888
  T    E          S    T    H   H  D   D  R R                     J   0   0     4    7     0   0  8   8
  T    E      S   S    T    H   H  D   D  R  R                 J  J   0   0     4   7      0   0  8   8
  T    EEEEE   SSS     T    H   H  DDDD   R   R                 JJ     000      4   7       000    888


 SSS   Y   Y   SSS   PPPP   RRRR    III   N   N  TTTTT          CCC    OOO   PPPP   Y   Y   CCC           SSS   TTTTT  EEEEE  PPPP     1    77777    A
S   S  Y   Y  S   S  P   P  R   R    I    N   N    T           C   C  O   O  P   P  Y   Y  C   C         S   S    T    E      P   P   11        7   A A
S       Y Y   S      P   P  R   R    I    NN  N    T           C      O   O  P   P   Y Y   C             S        T    E      P   P    1       7   A   A
 SSS     Y     SSS   PPPP   RRRR     I    N N N    T           C      O   O  PPPP     Y    C              SSS     T    EEEE   PPPP     1      7    AAAAA
    S    Y        S  P      R R      I    N  NN    T           C      O   O  P        Y    C                 S    T    E      P        1     7     A   A
S   S    Y    S   S  P      R  R     I    N   N    T           C   C  O   O  P        Y    C   C         S   S    T    E      P        1    7      A   A
 SSS     Y     SSS   P      R   R   III   N   N    T            CCC    OOO   P        Y     CCC           SSS     T    EEEEE  P        1    7      A   A

Class A , Destination TRISYS

  A           TTTTT  RRRR    III    SSS   Y   Y   SSS
 A A            T    R   R    I    S   S  Y   Y  S   S
A   A           T    R   R    I    S       Y Y   S
AAAAA           T    RRRR     I     SSS     Y     SSS
A   A           T    R R      I        S    Y        S
A   A           T    R  R     I    S   S    Y    S   S
A   A           T    R   R   III    SSS     Y     SSS

HDR is implemented by the IOF$SL1 Rexx exec. If you prefer a different header format, modify IOF$SL1 in you IOF clist library.

New IOFWTR Header Parm

The IOFWTR clist distributed with 7D has a new HEADER parm that specifies the name of a clist/exec to produce separator headers. IOFWTR is shipped with HEADER(IOF$SL1) specified. This is the standard header produced by the HDR command described above. If no headers are wanted, specify HEADER() when invoking IOFWTR.

If you prefer to design your own header routines, use the IOF$SL1 Rexx exec as an example. Then, specify the name of your exec in the HEADER parm when invoking IOFWTR.

Triangle Systems, Inc. PO Box 12752, Research Triangle Park, NC 27709