IBM Support

OA20139: ENHANCE THE VIIF SERVICE TO SUPPORT A WRITE EXIT FOR THE CREATE AND REPLACE COMMANDS

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • Allow the caller of the VIIF service to specify a WRITE exit
    which will be invoked when either the edit CREATE or REPLACE
    primary commands are entered. The VIIF COMMAND exit should also
    be invoked for the CREATE and REPLACE commands. In summary, the
    VIIF service should provide the same support as the EDIF service
    for the CREATE and REPLACE commands.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All ISPF users.                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: Applications calling the VIIF service   *
    *                      do not have the option of handling the  *
    *                      processing for the edit CREATE and      *
    *                      REPLACE primary commands.               *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The VIIF service does not support a write routine parameter
    to allow the dialog to handle write processing for the CREATE
    and REPLACE primary commands. This is not consistent with the
    EDIF service, where the dialog does have the option of handling
    write processing for the CREATE and REPLACE promary commands
    through a supplied write routine.
    

Problem conclusion

Temporary fix

Comments

  • The VIIF service is enhanced to support a new parameter which
    can be used to provide the address of a dialog-supplied write
    routine. This routine will be invoked when either the CREATE or
    REPLACE primary command is entered and the dialog-supplied
    command routine has set the return code to indicate the write
    routine is to do the data transfer for the command.
    
     --------- Start of documentation changes ----------------------
    
     Changes to ISPF Service Guide z/OS 1.6 (SC34-4819-03)
                ISPF Service Guide z/OS 1.7 (SC34-4819-04)
            and ISPF Service Guide z/OS 1.8 (SC34-4819-05)
    
     ---------------------------------------------------------------
    
     In section 2.87 VIIF - View interface
    
      Replace the 2nd paragraph with the following:
    
       The invoking dialog must provide addresses to routines that:
        o Read the data sequentially from beginning to end,
          returning to View one record on each invocation.
        o Perform processing for the MOVE, COPY, and VIEW primary
          commands (and CREATE and REPLACE commands when a write
          routine is specified).
          If this routine is not specified, ISPF processes these
          commands.
        o Write the records selected for the CREATE and REPLACE
          primary commands, accepting one record from Edit on each
          invocation.
    
     In section 2.87.2 Call Invocation Format
    
      Replace the two syntax diagrams with the following:
    
         CALL ISPLINK ('VIIF    ',  data-name  ,profile-name
                                  ,rec-format ,rec-len
                                  ,read-routine
                                  , cmd-routine  , dialog-data
                                  , edit-len  , panel-name
                                  , macro-name  , format-name
                                  , 'YES     '|'NO      '
                                  , 'YES     '|'NO      '
                                  , parm-var  , write-routine  );
    
         CALL ISPLINK ('VIIF    ',  data-name  ,' '
                                  , rec-format  , rec-len
                                  ,read-routine
                                  , cmd-routine  , dialog-data
                                  ,' ' ,' ' ,' ' ,' ' ,' '
                                  ,'YES     '
                                  ,' ', write-routine  );
    
     In section 2.87.3 Parameters
    
      Replace the cmd-routine description with the following:
    
       cmd_routine
       A fullword address indicating the entry point of a
       dialog-supplied routine that processes the MOVE, COPY, and
       VIEW primary commands. This routine also processes the CREATE
       and REPLACE primary commands when the address of a
       write-routine is specified as a parameter on the VIIF call.
       See "Command Routine" in topic 2.87.4.2 for more information
       about this parameter. If this parameter is not specified,
       ISPF processes these commands.
    
      Add the following description for the write-routine parameter:
    
       write-routine
       A fullword address indicating the entry point of a
       dialog-supplied write routine used to handle the writing of
       records for the CREATE and REPLACE primary commands. See
       "Write Routine" in topic 2.87.4.2 for more information about
       this parameter.
    
     In section 2.87.4 Dialog-Supplied Routines
    
      Replace the 2nd paragraph with the following:
    
       A VIIF read or write routine must have an assembler interface
       to be used in a call to VIIF.
    
      Replace the 1st sentence of the 3rd paragraph with the
      following:
    
       The dialog-supplied routines are called directly by ISPF at
       the same task level (TCB) that displays the ISPF screens.
    
     In section 2.87.4.2 Command Routine
    
      Replace the 1st paragraph with the following:
    
       The dialog-supplied command routine, when specified,
       processes the MOVE, COPY, and VIEW primary commands. " If the
       address of a write-routine is specified as a parameter on the
       VIIF call the command routine also processes the CREATE and
       REPLACE primary commands. The command routine is invoked with
       the following parameters:
    
      Add the following entries to the list of decimal values for
      function:
    
           3n  Create
           4n  Replace
    
      Replace the second last paragraph with the following:
    
       For a MOVE, COPY, CREATE, or REPLACE, the command routine
       initiates the processing for the requested function. When the
       return code from the command routine is zero, EDIF calls the
       read or write routine to transfer the data.  After the read
       or write is completed, the command routine is called once
       more to handle any termination processing that may be
       required for the requested function. For example, the MOVE
       function would need to delete the data that was moved.
    
     Add the following new section 2.87.4.3 Write Routine
    
       VIIF calls the write routine to write data records for the
       CREATE and REPLACE commands when the dialog is handling the
       processing for these commands. The write routine is called
       repeatedly to write the data records selected for the CREATE
       or REPLACE command. Flags are passed to the write routine to
       indicate the source and change status for each record.
    
       The dialog-supplied write routine is invoked with the
       following parameters:
        o Fullword pointer to record data to be written
        o Fullword fixed binary data length of record to be written
          if rec-format is V. This is the length of the nonblank
          portion of the record. The entire record with trailing
          blanks up to the maximum rec-len is available.
        o Fullword of source and change bits for the record. The bit
          representation is as follows:
    
           Source bits:
           1 = original record
           2 = internal move        (Move line command)
           3 = internal copy/repeat (Copy/Repeat line commands)
           4 = external move        (MOVE primary command)
           5 = external copy        (COPY primary command)
           6 = text inserted        (TE line command)
           7 = typed inserted       (Insert line command)
    
           Changed bits:
           8 = record changed       (global bit; set for all
                                     changes)
           9 = data overtyped
           10 = change command      (CHANGE primary command)
                 or overlay change  (Overlay line command)
           11 = columns shifted     ((,((,),)) line commands)
           12 = data shifted        (<,<<,>,>> line commands)
           13 = text change         (TE, TF, TS line commands)
           14 = record renumbered
           15-32 = unused
    
           Multiple bits may be set on, indicating that more than
           one modification has occurred for the record. For
           example, a data record that is inserted by using the
           Insert line command and is later included in a text flow
           operation would have bits 7 (typed inserted), 8 (change),
           9 (data overtyped) and 13 (text changed) turned on.
    
           Records read in for the initial display are flagged as
           original records.  Whenever there is hidden data, the
           inaccessible portion of inserted records contains blanks.
           Records are copied in their entirety; that is, including
           both the visible and hidden portions of the data.
    
        o Fullword fixed binary request code. Request settings are
          as follows:
    
           0    Write the next record
           1    First write request
           2    Last write request (final data record provided)
           3    First and last write request (only one data record)
    
        o Fullword dialog data area address
    
     Add the following new section 2.87.5.3 Write Routine Return
     Codes
    
        0   Normal completion
        16  Output error, return to View mode
        20  Severe error. (The VIIF service terminates immediately
            with a return code of 20.)
    
     ---------------------------------------------------------------
    
     Changes to ISPF Reference Summary z/OS 1.6 (SC34-4816-03)
                ISPF Reference Summary z/OS 1.7 (SC34-4816-04)
            and ISPF Reference Summary z/OS 1.8 (SC34-4816-05)
    
     ---------------------------------------------------------------
    
     In section 2.2.87.2 Call Invocation Format
    
      Replace the two syntax diagrams with the following:
    
         CALL ISPLINK ('VIIF    ',  data-name  ,profile-name
                                  ,rec-format ,rec-len
                                  ,read-routine
                                  , cmd-routine  , dialog-data
                                  , edit-len  , panel-name
                                  , macro-name  , format-name
                                  , 'YES     '|'NO      '
                                  , 'YES     '|'NO      '
                                  , parm-var  , write-routine  );
    
         CALL ISPLINK ('VIIF    ',  data-name  ,' '
                                  , rec-format  , rec-len
                                  ,read-routine
                                  , cmd-routine  , dialog-data
                                  ,' ' ,' ' ,' ' ,' ' ,' '
                                  ,'YES     '
                                  ,' ', write-routine  );
    
     In section 2.2.87.3 Return Codes
    
      Add the following:
    
       Write Routine Return Codes
    
        0   Normal completion
        16  Output error, return to View mode
        20  Severe error. (The VIIF service terminates immediately
            with a return code of 20.)
    
    --------- End of documentation changes -------------------------
    

APAR Information

  • APAR number

    OA20139

  • Reported component name

    ISPF V4 (PDF/SC

  • Reported component ID

    565504202

  • Reported release

    E02

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2007-03-06

  • Closed date

    2007-04-29

  • Last modified date

    2007-06-02

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    UA33810 UA33823 UA33848 UA33849 UA33850 UA33851 UA33893 UA33897
    UA33898 UA33926 UA33927 UA33928 UA33929 UA33930 UA33931

Modules/Macros

  • ISREMCE6 ISREMFE6 ISREMPE6 ISREMQE6 ISREMWMF
    ISREPCR  ISREPRP  ISRSPT   ISRVIIF
    

Publications Referenced
SC34481903SC34481904SC34481905SC34481603SC34481604
SC34481605    

Fix information

  • Fixed component name

    ISPF V4 (PDF/SC

  • Fixed component ID

    565504202

Applicable component levels

  • RE02 PSY UA33810

       UP07/05/02 P F705

  • RE11 PSY UA33849

       UP07/05/02 P F705

  • RE14 PSY UA33850

       UP07/05/02 P F705

  • RE15 PSY UA33851

       UP07/05/02 P F705

  • RE16 PSY UA33893

       UP07/05/02 P F705

  • RF02 PSY UA33823

       UP07/05/02 P F705

  • RF11 PSY UA33897

       UP07/05/02 P F705

  • RF14 PSY UA33898

       UP07/05/02 P F705

  • RF15 PSY UA33926

       UP07/05/02 P F705

  • RF16 PSY UA33927

       UP07/05/02 P F705

  • RG02 PSY UA33848

       UP07/05/02 P F705

  • RG11 PSY UA33928

       UP07/05/02 P F705

  • RG14 PSY UA33929

       UP07/05/02 P F705

  • RG15 PSY UA33930

       UP07/05/02 P F705

  • RG16 PSY UA33931

       UP07/05/02 P F705

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"E02","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSCDKBQ","label":"Program Development Facility (PDF)"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"E02","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
02 June 2007