z/OS ISPF Services Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


EDIREC - Initialize Edit Recovery

z/OS ISPF Services Guide
SC19-3626-00

The EDIREC service initializes an edit recovery table (ISREIRT) for use by the EDIF service and determines whether recovery from the EDIF service is pending. EDIREC also allows you to cancel or defer the recovery of data modifications.

Command invocation format

You cannot use command procedures to invoke this service.

Call invocation format

Read syntax diagramSkip visual syntax diagram
>>-CALL--ISPLINK--('EDIRECbb'--,-------------------------------->

>--+-'INITbbbb'--,-+-command-name-+-+--);----------------------><
   |               '-'b'----------' |       
   +-'QUERYbbb'---------------------+       
   +-'CANCELbb'---------------------+       
   '-'DEFERbbb'---------------------'       

Parameters

INIT
The edit recovery table for EDIF should be initialized in the user profile library if one does not already exist for the current application.
command-name
A command procedure (CLIST or REXX exec) or a program written as a command that initializes the EDIF table. If this parameter is omitted, the INIT option invokes an ISPF-supplied CLIST named ISREIRTI. ISREIRTI creates an 8-row EDIF recovery table that permits eight levels of concurrent Edit sessions with recovery active. The Edit sessions may be due to recursion or split-screen usage.

If you specify an application-supplied command with the INIT option, you should pattern the command after ISREIRTI. It can create a different number of rows, use a different naming convention for the backup data sets, or specify "keep" (instead of "delete") as the backup data set disposition. The format of the EDIF recovery table must be the same as that specified in ISREIRTI.

QUERY
The EDIF recovery table should be searched for a pending recovery. When the QUERY option is specified, EDIREC scans the EDIF recovery table for an entry containing a recovery pending condition. If an entry is found (return code 4), the dialog must then call EDIF with (recovery-request = YES) to recover the data, or call EDIREC with the CANCEL or DEFER option to dispose of the pending recovery condition.
These variables are stored in the dialog function pool when EDIREC is called with the QUERY option and recovery is pending (return code 4):
  • ZEIBDSN - Backup data name
  • ZEITDSN - Target data name
  • ZEIROW - Row number of entry in the recovery table.

The dialog can check the variables and use them to display information to the user. The dialog must not change them. If EDIREC QUERY indicates that recovery is not pending, the previous variables are not meaningful.

ZEIUSER is an extension variable in the EDIF recovery table that is provided to contain user data. Whatever data is in dialog variable ZEIUSER in the shared pool is saved to the ZEIUSER variable in the EDIF recovery table when the recovery data set is initialized. This is done if RECOVERY is ON when first entering Edit or after using the SAVE command.

When EDIREC is called with the QUERY option and the return code is 4, indicating that recovery is pending, the data is read out of ZEIUSER in the table and returned to ZEIUSER in the shared and function pools. If recovery is not pending, this variable is not meaningful.

CANCEL
Cancellation of edit recovery. The backup data set is erased and the corresponding entry in the EDIF recovery table is freed.
DEFER
Edit recovery is to be deferred. Recovery is canceled, but the backup data set is saved so that recovery can be processed at another time.

Return codes

These return codes are possible:
 0
Normal completion.
  • INIT - EDIF recovery table was successfully created.
  • QUERY - Recovery is not pending.
 4
Normal completion.
  • INIT - EDIF recovery table already exists for current application.
  • QUERY - Entry found in EDIF recovery table (recovery is pending).
20
Severe error; unable to continue.

Example

This example invokes the EDIREC service to initialize the EDIF recovery table by using the command procedure USRCMD.
CALL ISPLINK('EDIREC  ','INIT    ','USRCMD ');

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014