z/OS ISPF Planning and Customizing
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


How to use the macros to define ISPXDT

z/OS ISPF Planning and Customizing
GC19-3623-00

To define ISPXDT using the exit macros:

  1. Indicate the beginning of the exit entry definition section of ISPXDT by coding one ISPMXED macro with the START operand. For example:
      ISPMXED START
      ⋮
  2. Define the installation-wide exits you plan to use. Code the ISPMXLST macro, listing the numeric codes for each user exit in ascending order, enclosed within parentheses. This example shows that exit routines will be installed at ISPF installation-wide exits 3, 7, and 14.
      ISPMXED START
      ISPMXLST (3,7,14)
      ⋮

    If no operand is specified, a dummy ISPXDT is built.

  3. For each user exit that you define on the ISPMXLST macro, use the ISPMXDEF, ISPMEPT, and ISPMXEND macros to define one or more exit routines. These three macros are a set and must be coded for each user exit you identify.
    • Code the ISPMXDEF macro with the exit ID as its operand.
    • Code the ISPMEPT macro for each exit routine and, if required, its data areas.
    • Code the ISPMXEND macro to end the exit routine definitions for this user exit.

    In this example, three exit routines are defined at user exit 7. The first two share a common data area (DAREA015) and the third uses a different data area (DAREA027). ISPF calls entry points EXPT7EP1, EXPT7EP2, and EXPT7EP3 in that order unless one of the routines returns a return code of 12 or greater. For example, if entry point EXPT7EP2 returns a return code of 12, control returns to ISPF without executing entry point EXPT7EP3. Therefore, if you define more than one exit routine at a given user exit, define them in the correct order of priority.

      ISPMXED START
      ISPMXLST (3,7,14)
      ⋮
      ISPMXDEF 7
      ISPMEPT EXPT7EP1,DAREA015
      ISPMEPT EXPT7EP2,DAREA015
      ISPMEPT EXPT7EP3,DAREA027
      ISPMXEND
      ⋮

    If you use the ISPMXDEF macro to define an exit ID that is not listed on the ISPMXLST macro, ISPF issues a warning message. You can still use ISPXDT, but the user exit is defined. As a result, you can easily disable a user exit by deleting its exit ID on the ISPMXLST macro. However, for every exit point listed on the ISPMXLST macro, there must be a corresponding ISPMXDEF macro.

  4. Indicate the end of the exit entry definition section of ISPXDT by coding the END operand on the ISPMXED macro. For example:
      ISPMXED START
      ISPMXLST (3,7,14)
      ⋮
      ISPMXED END
  5. Define the data areas used by the exit routines in the exit data area definition section of ISPXDT. Indicate the start of this section by using the START operand on the ISPMXDD macro. For example:
      ⋮
      ISPMXED END
      ISPMXDD START
      ⋮
  6. Use the ISPMDAD macro to define the name and size of each data area defined on an ISPMEPT macro. Every data area referenced on an ISPMEPT macro must be defined by an ISPMDAD macro.

    This example defines DAREA015 to be 100 bytes long. (ISPF rounds the length to 104 in this case.)

      ⋮
      ISPMXDD START
      ISPMDAD DAREA015,100
      ⋮

    If you use the ISPMDAD macro to define a data area that is not coded on an ISPMEPT macro, a warning message is issued during assembly and storage for the area is not obtained during execution. If none of your exit routines require a data area, you need not code an ISPMDAD macro, but you must still code ISPMXDD START and ISPMXDD END.

  7. Use the ISPMXDD macro to indicate the end of the exit data area definition section. For example:
      ⋮
      ISPMXDD START
      ISPMDAD DAREA015,100
      ⋮
      ISPMXDD END

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014