June 2004

IOFTech    Maintenance   Release8G       Newsletters    Doc    FAQ    Contacts    Home    Webmaster

IOF Release 7J



Release 7J of the Interactive Output Facility (IOF) program product provides support for all releases of OS/390 and for z/OS releases 1.1 through 1.8.   The new IOF release is downloadable from this web page as a single MPI (mainframe product install) file. Release 7J runs in parallel with previous versions of IOF. It uses the same SVC or ESR as previous versions of IOF.

Several additional enhancements are included in 7J to make IOF easier to install, maintain and use. This newsletter summarizes the major enhancements provided by the new IOF release.

IOF 7J was officially released on August 4, 2004 and can now be downloaded.

SORT Command Enhancements

There are significant enhancements to the IOF SORT command for Release 7J:

  • SORT commands are saved in the user's profile for each panel
  • The SORT command is significantly faster
  • Optionally sort on a field by pointing to it with the cursor
  • Sort fields can be selected from a sort menu
  • Up to four fields can be selected with a single SORT command
  • Current sort is now displayed in HELP
  • New FIELD command helps identify field names

The syntax for the new SORT Command:

SORT  field1 A/D  field2  A/D   field3  A/D  field4  A/D
SORT       (with cursor pointing to a field)
SORT       (with cursor in the COMMAND area)

One to four fields can be specified.  If more than one field is specified, ascending (A) or descending (D) sequence must be specified for each field.  When only one field is specified, ascending sequence is used if neither A nor D is specified.

Use the FIELD command (described below) with the cursor pointing to a panel field to determine a fieldname.

When there is no initial sort specified on the option menu, the sort fields specified are saved in the user's profile and applied each time the current panel is re-displayed.

A simplified way to sort in ascending sequence on a single field is to enter the SORT command with the cursor pointing to the panel field to be sorted on.  This is identical to entering "SORT fieldname A".  The sort field pointed to will be saved in the user's profile.

Many IOF panels provide a sort assist panel. Enter "SORT" with no parms. Place the cursor in the COMMAND input area to display the assist menu for the current IOF panel.  The most commonly used sorts for the panel can be selected from a menu. Sort sequences selected from the menu are saved in the user's profile and will be re-applied each time the current panel is re-displayed.

--------------------------- Select a Sort for Jobs -------------------------


       The selected sort will be saved in your profile.

             1  Sort by jobname and jobid (this is the default)

             2  Sort most recently run jobs first

             3  Sort oldest jobs first

             4  Sort by owner, jobname and jobid

             5  Display HELP for the SORT command

         n - Select a sort       End - Return without selecting a sort


Sort Assist Panel for the Job List Menu

The performance of the SORT command has been significantly enhanced. This will be most noticeable when sorting extremely long lists of jobs or output groups

HELP on many panels displays the active sort for that panel.

----------------------------- Job List Menu Help ----------------------------


 The IOF Job List Menu displays all types of jobs.     Each basic type of job is

 displayed in a different section which has a unique format most appropriate

 to that type of job.

 Jobs can be selected, cancelled, released, and modified directly from the Job

 List Menu by simple commands.        The list of jobs can also be searched, sorted,

 and manipulated by commands.

 1     Summary of line commands

 2     Summary of primary commands

 3     Format of IOF Job List Menu

 4     Menu of detailed command descriptions

           Active filter and sort values




           SORT: DATE D TIME D


HELP on the Job List Menu (New fields in red)

New FIELD Command

Key the new FIELD command in the command area, place the cursor on a field (column heading), and press ENTER to display the name of the field.  Field names are required by SORT, EXCLUDE, UNEXCL, CUT, PASTE, ARRANGE, FIND, and LOCATE commands. The TSICOPY command used in Rexx execs and clists to assign IOF variable values to exec/clist variables also uses the field name.

When running under ISPF, a popup window displays the name of the field selected by the cursor.  When running from native TSO or CICS, the field name is provided in the short error message area to the right of the top line on the screen.

Full Date Format Options for Output Jobs

Users are accustomed to the look and feel of IOF panels, and many do not want to change any formats.  But the requirement also exists to present new and better information.  Release 7J introduces multiple formats for panels and allows the site, and the individual user, to select between available alternate views.  The new ALTVIEW command is used to display alternate formats for IOF panels.  Release 7J defines an alternate format only for the output jobs section of the Job List Menu.

We have had many requests to display a full date run for output jobs.  There isn't room on the panel to do this without moving an existing field to the second screen of the panel. To solve this problem, two alternate formats have been defined in release 7J for the output jobs section of the Job List Menu. The traditional view is selected by default.

The new DATE field is in yyyy/mm/dd format.  This format is convenient for sorting jobs in order received or run.   A new TIME field in format hh:mm is also available.

The first alternate view moves the DESTDEV field to the second screen to make room for the new DATE and TIME fields.  The second alternate view moves the OWNER field to the second screen.   The choice between the default view, or one of the two alternate views will depend on which fields are most useful to specific users.

The new ALTVIEW command can be used to cycle between the three available alternate views.  The alternate view  is saved in the user's profile and will be used each time the current panel is displayed until changed by a subsequent ALTVIEW command, unless the current panel has been modified by ARRANGE or CUT and PASTE commands.

Alternate views may be defined for additional IOF panels in future IOF releases.

----------------------------- IOF Job List Menu ------------( 11 )-----------

COMMAND ===>                                               SCROLL ===> CURSOR

--------------------------------- Output Jobs -------------------------------


_    1 GENER    J008160          ISIJFW     78   40           2004/05/03 14:08

_    2 BATCHIOF J016007          ISIJFW     59  15K           2004/04/30 13:56

_    3 BR14LOPB J016403     S013 ISIJFW          79           2004/04/29 16:15

_    4 JOBARCH  J012067          ISIJFW     88   33           2004/04/15  9:20

_    5 BR14     J011965     CAN  ISIJFW     13                2004/04/13  9:46

_    6 JOBACESS J006919          ISIJFW   5226                2004/03/17 10:43

_    7 M18NEWOP J002512          ISIJFW    22K                2004/03/12 16:30

_    8 M53ZAP   J002480          ISIJFW    111                2004/03/12 13:18

_    9 IOFSPARC J000257          ISIJFW    276                2004/03/05 11:44

_   10 MODID    J013041        8 ISIJFW   1922                2004/01/28 15:50

_   11 SASSTAT  J007521          ISIJFW    207                2003/09/25 14:07

Example of Alternate View 1 (DESTDEV moved to second screen, replaced by DATE and TIME) 

New Profile Options for Snap Target Data Sets

Option "P"  (profile) on the IOF Option Menu has been reorganized. The primary reason for this reorganization was to provide full defaulting specifications for all SNAP sysout target data set attributes.

 ----------------------------- IOF Profile Menu -----------------------------


          0  - Specify Program Function Key Options

          1  - Specify IOF user profile options

          2  - Specify default characteristics for sysout snap data sets

          3  - Specify default characteristics for disk snap data sets

          4  - Specify print attributes to be set for TSO session

          5  - Specify screen field attributes (ISPF only)


New IOF Profile Menu

Profile option "2" provides a selection of six additional menu items which allows default values to be defined for all possible snap sysout attributes. For example, select option "2" to define default UCS or FCB attributes for all snap to sysout commands.   Default values specified on the panel are saved in the user's profile, and can be over-ridden on the SS panel.

------------------------- Default Snap Attributes -----------------------


     1  - Class, Dest, Outdisp, CC, Optcd, Pagedef, Formdef, Forms,

          Title, Name, Room, Building, Dept, Address

     2  - Outname, Copies, Ucs, Fcb, Notify, Index, Lindex, Ckptpgs,

          Ckptlns, Burst, Prmode, Flashc, Z, Prty, Outbin, Comset, Wtrid,

          Linect, Flash, Modtrc, Chars, Modify, Copyg

     3  - Control, Datack, Dpagelbl, Pimsg, Pimsg#, Sysarea, Trc, Userlib

     4  - Userdata

     5  - Formlen, Prterror, Retain, Retry, Prtoptns, Prtqueue

     6  - Colormap, Intray, Portno, Offset, Overlay

Default Snap to Sysout Attributes Menu

Progress Messages for Long Snap and Find Commands

The FIND and SNAP commands may run for an extended time when large amounts of data are being searched or copied.  A progress message is now displayed while long SNAP and FIND commands are executing.

A progress message is also displayed for the DF (display forms) command on the Output Group Display when a large number of output groups is being processed.

BROWSE - SYSPRINT ASSEMBL  C       -   Record    1       Columns 1-80

COMMAND ===>                                            SCROLL ===> CURSOR

 >>>>>>>>>> Records scanned so far: 90,000 

                                         High Level Assembler Option Summary

    No Overriding ASMAOPT Parameters

    Overriding Parameters-  TERM

    Process Statements-     USING(WARN(15))


Example of Find Command Progress Message

Improved MVS/JES2 Command Interface Panel

The new MVS command displays a panel where long MVS and JES2 commands can be entered.  A maximum input length of 120 characters is supported.   The "#" (pound sign) character with no parms also displays this panel at most sites.

This panel saves the latest MVS and JES2 commands entered so they can be selected and resubmitted, much like ISPF option 6. It also allows you to specify where you would like to view command responses (console or syslog).

----------------------------MVS and JES2 Commands--------------------------


Command response ===> SYSLOG            SYSLOG/CONSOLE/NONE

MVS/JES2 command ===> f lla,refresh

 Place cursor on a command below and press ENTER to retrieve it.

=> f lla,refresh

=> f slamrun,reset

=> d m

=> d m=cpu

=> $tt1-99999,offs=(-5)

=> $tt12117,offs=(-5)

=> $tt12117,offs=(+5)

=> $dt'isijfw'

=> l 'Now is the time for all good men to come to the aid of their count...

=> d t

=> $dspool,all









MVS and JES2 Commands Interface Panel

The TS command displays the TSO command interface panel where long TSO commands can be entered.  In release 7J, the latest commands issued are saved much like ISPF Option 6.  A maximum of 32 commands will be saved for each user.

--------------------------------TSO Commands-------------------------------


     Enter a TSO commmand, press ENTER


     Place cursor on a command below and press ENTER to retrieve it.

=> ioflistf sysproc

=> iofaddc syshelp test.help

=> iofremc sysproc da(clist)

=> free fi(sysudump)

=> ioffindm sysproc iof$rc1

=> iofc2rex @iof.clist(iof$df1) @iof.clist(iof$dfx)

=> iofc2rex @iof.clist(iof$df1) clist(iof$dfx)

=> ld da('sysiof.sta.d.jobs.jobn.m13gen') generic

=> ld 'sysiof.sta.d.jobs.jobn.m13gen' generic

=> ioffindm sysproc iof$cl1

=> iofremc sysproc

=> iofaddc sysproc @iof.intexec

=> ioflistf syshelp

=> iofaddc syshelp ('SYS3.TESTS.HELP','SYS2.IOFT7J.HELP','FAN130.SEAGHEN...

=> iofaddc syshelp @iof.help

=> help receive s

=> compress 'sys2.tests.linklib'

=> ioflistf sysudump

=> ioflistf ispplib

=> time

=> lista st

=> iofaddc syshelp ('SYS3.tests.HELP' 'SYS2.IOFT7J.HELP' 'SYS1.FAN130.SF...

=> ioffindm sysproc iofsnpjs

=> iofaddc sysproc @iof.clist

=> iofremc syshelp

=> ioffindm sysproc iof$av1




MVS and JES2 Commands Interface Panel

Note that when the original command is too long to be displayed in the list of old commands at the bottom of the screen, the displayed command ends with "..." to indicate that there are more command characters.  The original command is retrieved when the command is selected however. Unlike ISPF option 6, old commands can be edited and deleted from the menu of old saved commands.

Rexx Error Processing Enhancement

Prior to release 7J, the "on error" routine of a Rexx exec running under IOF would not be invoked when an IOF function completed with a non-zero return code. This has been corrected for release 7J.

A side effect of this enhancement is that non-zero return codes from IOF functions will now produce Rexx line-mode error messages unless the exec contains a "TRACE OFF" instruction. All distributed IOF execs have been modified to include a "TRACE OFF" instruction.

If you have written local execs that run under IOF then you may wish to prevent these line-mode error messages by inserting the following statement in those execs.

    trace 'off'                    

Rexx execs running under IOF 7J can trap the line number, IOF error message number, and Rexx statement causing an error. For example, establish an IOF Rexx error routine that lists the error number, long IOF error message, and statement that caused the error by including the statement below at the beginning of the Rexx exec:

 call on error                      

The sample error routine below lists the error number (rc), the statement causing the error, and the IOF error message associated with that IOF error number.


    errrc = rc                                         /* get rc          */

    if rc > 0 & rc < 17 then return rc                 /* minor ret codes */

    errlnbr = sigl                                     /* error line #    */

    errline = sourceline(sigl)                         /* error statement */

    'tsicopy name(message) to(rexx) section(panel)'    /* IOF message     */

    say 'Error' errrc 'on stmt' errlnbr                /* rc and stmt#    */

    say errline                                        /* show stmt       */

    say message                                        /* show IOF msg    */

    rc = errrc                                         /* reset rc        */

    return errrc                                       /* return with rc  */

Password Analysis Procedure

The IOF expiration password date can be displayed by entering the command below on any IOF panel. The end date of the current paid IOF license is displayed.

   DVAR   EXPRDATE                     

IOF continues to run for an additional eight days after the official expired date in "warning" mode. A message is displayed in the long error message area on the third line of the screen

------------------------------ IOF Option Menu --------------<   Expiring   >-


The program product license for this product will soon expire

Select an option.  To get a detailed option menu, follow the option with "?".

blank - Your jobs         G   - Output Groups        M    - System Monitor

  I   - Input jobs        H   - Held Groups          INIT - Initiators

  R   - Running jobs      L   - System Log           APPC - APPC tasks/output

  O   - Output jobs       PR  - Printers             MAS  - MAS system display

  J   - All jobs menu     D   - Device Options       CMDS - Global Commands

  P   - IOF Profile       NEW - What's New in IOF    QT   - Quick Trainer


                          Enter 1 to 8 generic jobnames above

SCOPE    ===>             ALL, ME or another user's USERID

                          Press HELP to see all valid SCOPE values

DEST     ===>

                          Enter 1 to 8 destinations above

SORT     ===>             Press HELP to see all valid SORT  values

Several customers have requested an automated way to be warned that the IOF license will soon expire. Release 7J provides a utility that can be run in batch to check the IOF expiration password and give meaningful messages and return codes for several conditions. A new job, M45DATCK, is generated in the IOF INSTALL library to invoke this new utility.

M45DATCK has two parms that the user may wish to modify:

  • WARNDAYS(7) - Number of days of warning. The job will get return code 4, add an alert to the SYSTSPRT data set, and optionally notify one or more users this number of days prior to IOF entering expiration warning mode. The default value is 7 days.

  • NOTIFY(NONE) - One or more userids to be notified when the job gets any non-zero return code. The default value specifies that no users will be notified. To notify multiple users, separate the userids by commas. For example, NOTIFY(USERJOE,USERSAM,USERSUE)

You may want to run this new utility daily, and have production control check the return codes and messages in the SYSTSPRT data set. You can modify the job to change the warning threshold, and to notify one or more users when the job gets a non-zero return code.

Return values are:

      RC    Description

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

       0    Normal termination.  Expiration date is ok and will

            not expire for some time greater than 7 days from now.

       4    Normal termination.  Expiration date is ok, but the

            start of expiration date warning mode is 7 days or

            less from now.

       8    IOF is either in expiration date warning mode or it

            is in license warning mode but is still usable.

            License warning mode is designed to permit IOF to run

            at a disaster recovery site.  IOF will run until the

            third midnight after the last IPL.

      12    IOF is in license error mode and cannot be used until

            the system is IPLed.  Then it will run until the

            third midnight.

      16    IOF has expired.

      20    IOF has received a rc indicating an install error.

      24    IOF has received a rc indicating an unknown install

            error of some sort.

      32    IOF has either abended, or received an unexpected

            error of some sort.

New SNAP Panel Commands

Several users have requested the ability to snap copies of IOF panels. We have also found internal uses for this facility. Release 7J has four new Rexx execs that snap copies of the current panel to a pre-defined SNAP target data set. The execs are:

  • IOFSNPGR - Snap Output Group Display
  • IOFSNPJQ - Snap Job List Menu
  • IOFSNPJS - Snap Job Summary Panel
  • IOFSNPMN - Snap System Monitor

The execs are invoked from the panel to be snapped by entering %EXECNAME on the panel COMMAND line. The target data set must be explicitely defined by the SS or SD command prior to invoking a panel SNAP exec. For example, from the Job List Menu, enter SS to define a sysout target snap data set. Then enter %IOFSNPJQ to snap a copy of the displayed panel to the target data set.

Optional parms on the panel snap execs are:

Exec ------ Parm ---------- Description ------------------------------

IOFSNPGR    FULL            Snap extended JCT fields

IOFSNPJQ    FULL            Snap extended JCT fields

IOFSNPJS    FULL            Snap all data set fields

            TEMPLATE        Add a parse template

            RUNNING         Show open sysout data sets for a running task

            INPUTJCL        Show input data sets

IOFSNPMN    FULL            Snap extended JCT fields

            TEMPLATE        Add a parse template

To snap all data set fields, show input data sets, and add a parse template to a Job Summary snap, enter:


The panel snap execs can be invoked from a higher level exec with the Rexx CALL statement. For example, to snap the Job Summary with a parse template from a Rexx exec that is positioned to the panel:


The panel snap execs can be easily modified to change the specific fields that are snapped. Each exec contains a list of $COL and $OPT statements that define the specific fields to be snapped. $COL statements are always snapped. $OPT statements are snapped only if the FULL parm is specified. Remove unwanted $COL or $OPT statements, and save the modified exec under a different name to produce a tailored format.

Miscellaneous Changes

All applicable IOF release 7H maintenance has been applied to release 7J.  IOF 7J supports all releases of OS/390 and z/OS 1.1  through 1.5.

HELP for the Job List Menu and Output Group Display now displays filters in effect and the currently specified SORT.

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

IOFTech    Maintenance   Release8G       Newsletters    Doc    FAQ    Contacts    Home    Webmaster