Customizing the document editing interface on OS/390

The document interface is an IBM-supplied macro for the ISPF/PDF and PS/TSO editors.

Before your users can use this macro, you must:

Changing the application

Change the application by changing one or more of its components. The components that you can change are members of certain QMF libraries:

Renaming the document interface macro DSQAED1P

The macro component, DSQAED1P, is the macro that users call to use the document interface.

To use the macro:

If you are using an NLF: The main macro is the member DSQAnD1P of the library QMF720.DSQCLSTn. Like the main English-language macro, it can be renamed with no effect on the other components. Choose a name other than GETQMF if your users' JCL supports both the English-language and NLF environments. You might consider changing it to GETQMFn, for example.

Placing the Q.DSQAED1S procedure in the database

The Q.DSQAED1S procedure is in the member DSQAED1S of the QMF720.SDSQSAPE library. The process of placing the procedure in the database depends on the version of DB2.

As the user Q, you can easily place Q.DSQAEDIS in the database by entering the following QMF command:

IMPORT PROC DSQAED1S FROM 'QMF720.SDSQSAPE(DSQAED1S)'  (SHARE=YES

If you are not the user Q, but have one of the following:

you can still easily place DSQAED1S in the database by entering the following QMF commands from the query panel:

SET CURRENT SQLID = 'Q'
IMPORT PROC DSQAED1S FROM 'QMF720.SDSQSAPE(DSQAED1S)'  (SHARE=YES

A user other than Q who has neither SYSADM (or SYSCTRL) authority nor Q as one of the user's secondary authorization IDs, needs to use the procedure described in Transferring ownership to Q.

If you are using an NLF: Change the NLID in the member DSQAnD1S of the QMF720.SDSQSAPn library.

Transferring ownership to Q

If you cannot use QMF as the user Q, you can still issue the commands in the previous section. However, you must first transfer ownership of the procedure from your authorization ID to Q. You can do this as follows:

  1. Create the following query:
    UPDATE Q.&T
      SET OWNER = 'Q'
      WHERE NAME = &N AND OWNER = USER
  2. Run the following commands:
    RUN  QUERY ( &T=OBJECT__DIRECTORY, &N='DSQAED1S'
    RUN  QUERY ( &T=OBJECT__DATA, &N='DSQAED1S'
    RUN  QUERY ( &T=OBJECT__REMARKS, &N='DSQAED1S'
    Each command updates one of the Q.OBJECT tables and requires the UPDATE privilege on these tables.

If the queries fail to run, an object named Q.DSQAED1S might already be in the database. If so, rename that object or delete it before you attempt to transfer ownership again. One of the following two queries can rename or delete the object for you. You must run the three RUN QUERY commands on whichever query you choose.

Changing the data components

There are five data components, all in the library QMF720.SDSQSAPE on OS/390. Unlike the CLISTs and macros, these components contain neither logic nor executable commands. Instead, they contain information that can appear in messages or in the users' reports.

Because the document interface assumes that these components are in a single library, you can modify them in either of the following ways:

If you use the second method, you must make the change to the macro DSQAED1P or DSQAED2P.

The message component

One of the five data components is named DSQAED0L. This component contains messages that can appear on a user's screen while the user is operating the document interface, and keywords for certain QMF commands.

Do not change this component.

If you are using an NLF: Change the NLID in the member DSQAnD0L of the QMF720.DSQSAMPn library on OS/390.

The DCF components

The DCF (Document Composition Facility) is a licensed IBM text processing system that supports the use of computers in preparing print documentation.

If your installation uses DCF, you might want to change the remaining four DCF components. For more on DCF, see Document Composition Facility: SCRIPT/VS Text Programmer's Guide

A user can tell the document interface that the current document is formatted by DCF. In response, the document interface adds DCF control statements to the user's inserted report. Wherever these statements appear, they consist of all the records in one or another of the DCF components. You can change any or all of the records in a component. The components, and what they supply, are as follows:

DSQABD01

Supplies statements inserted just before the report. In the IBM-supplied component, these are:

.* QMF Document Interface heading control:
.SA
.RH SUP
.RF SUP
.HS 0
.FS 0
.TM 0.5I
.BM 0
.DC CONT OFF
.FO OFF
DSQABD02

Supplies statements inserted just after each page footing. In the IBM-supplied component, the single furnished statement is:

.* QMF Document Interface page footing control:
DSQABD03

Supplies statements inserted just before each page heading. In the IBM-supplied component, these are:

.PA NOSTART
.* QMF Document Interface page heading control:
DSQABD04

Supplies statements inserted just after the end of the report. In the IBM-supplied component, these are:

.* QMF Document Interface footing control:
.RE
.* QMF REPORT END

Changing the CLISTs, and macros

As mentioned earlier, these components are all in the library QMF720.SDSQCLTE. If you change the CLISTs or macros, change a copy, not the original, and place it in another library. On OS/390, a DD statement for the new library must appear among the statements for SYSPROC in your users' JCL. If it is not there already, insert one before the statement for QMF720.SDSQCLTE. Otherwise, the original components are used, instead of the ones you modified. For example, if you place the modified components in the library XYZ.NEWCLIST, then the DD statements for SYSPROC might look like this:

//SYSPROC  DD DSN=SYSUT2.CLIST,DISP=SHR
//         DD DSN=XYZ.NEWCLIST,DISP=SHR
//         DD DSN=QMF720.SDSQCLTE,DISP=SHR
Changing DSQAnD1P

This is the macro that you renamed GETQMF. You can also do the following to the macro:

Changing DSQABD1Q

This CLIST allocates data sets for the session started with the document interface. Make whatever modifications you think necessary to the CLIST code. For example, you might need to add allocations for data sets peculiar to your installation.

Some of these allocations include GDDM data sets. The document interface does not itself use these data sets, but you might find this allocation necessary.

The variable &LANGCHAR has the value E. This value indicates a library containing English-language components, as opposed to components for an Uppercase Feature application, for example.

To support LIBDEF allocations, activate LIBDEF service and tailor filenames as necessary:

/*****************************************************************@82*/
/* Remove the Following "GOTO NOLIBDEF" statement to allocate     @82*/
/* ISPF libraries using the ISPF LIBDEF service.                  @82*/
/*****************************************************************@82*/
   GOTO NOLIBDEF
/*****************************************************************@82*/
/* ALLOCATE QMF ISPF LIBRARIES USING LIBDEF                       @82*/
/*****************************************************************@82*/
 SET PNAME = 'QMF720.DSQPLIB&LANGCHAR'     /* ISPF Panel Library      */
 SET MNAME = 'QMF720.DSQMLIB&LANGCHAR'     /* ISPF Message Library    */
 SET SNAME = 'QMF720.DSQSLIB&LANGCHAR'     /* ISPF Skeleton Library   */
 SET LNAME = 'QMF720.SDSQLOAD'              /* QMF Modules             */
 ISPEXEC LIBDEF ISPPLIB DATASET ID(&PNAME)
Changing DSQABD1P to Support LIBDEF

If you allocated QMF libraries using the LIBDEF function, modify DSQABD1P to free the use of LIBDEF allocated libraries. Uncomment the following statements in DSQABD1P:

 /****************************************************************/
 /* FREE ISPF LIBDEFs                                         @82*/
 /* You might or might not need to free libdefs here.            */
 /* If you do, then remove comments from LIBDEF statements.      */
 /****************************************************************/
 /* ISPEXEC LIBDEF ISPPLIB DATASET ID()                          */
 /* ISPEXEC LIBDEF ISPMLIB DATASET ID()                          */
 /* ISPEXEC LIBDEF ISPSLIB DATASET ID()                          */
 /* ISPEXEC LIBDEF ISPLLIB DATASET ID()                          */
 /* FREE FI(DSQLLIB)                                             */ 
Changing DSQABD1C

You can modify this component in the following ways:

[ Previous Page | Next Page | Contents | Index ]