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:
On OS/390, the resources are the QMF libraries. In the sample TSO logon procedure, these have names of the form:
QMF720.DSQ*
You can operate the ISPF/PDF and PS/TSO editors without these resources; however, the document interface cannot successfully begin a QMF session.
Some of these changes are required, while others are optional. This section discusses the changes, both required and optional. To use the document interface, you should also see the Using QMF manual.
If you are using an NLF: You must also customize the NLF version of the document interface.
Change the application by changing one or more of its components. The components that you can change are members of certain QMF libraries:
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.
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.
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:
UPDATE Q.&T SET OWNER = 'Q' WHERE NAME = &N AND OWNER = USER
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.
UPDATE Q.&T SET NAME = 'newname' WHERE NAME = &N AND OWNER = 'Q'
DELETE FROM Q.&T WHERE NAME = &N AND OWNER = 'Q'
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 do, change the names of the original components, and give the changed components the original names.
If you do, you must copy all the other data components from the old library into the new library on OS/390.
If you use the second method, you must make the change to the macro DSQAED1P or DSQAED2P.
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 (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:
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
Supplies statements inserted just after each page footing. In the IBM-supplied component, the single furnished statement is:
.* QMF Document Interface page footing control:
Supplies statements inserted just before each page heading. In the IBM-supplied component, these are:
.PA NOSTART .* QMF Document Interface page heading control:
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
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
This is the macro that you renamed GETQMF. You can also do the following to the macro:
SET &SAMPLIB = QMF720.DSQSAMP&LANGCHAR SET &BASELIB = QMF720.SDSQSAPE
When &LANGCHAR has the value E, both variables name the same library--QMF720.SDSQSAPE. If the libraries have different names, change the names assigned: &SAMPLIB and &BASELIB.
ALLOC FI(DSQPRINT) SYSOUT RECFM(F B A) LRECL(133) BLKSIZE(1330)
A user can call the document interface in an interactive QMF session. When this is done, the document interface can reallocate DSQPRINT. This statement restores DSQPRINT to the default. If this is not what you want, replace this statement with one that restores DSQPRINT to the value you want.
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)
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) */
You can modify this component in the following ways:
ALLOC FI(DSQPRINT) UNIT(SYSDA) SPACE(5,2) TRACKS + RECFM(F B A) LRECL(&PRINTREC) BLKSIZE(&EVAL(&PRINTREC*10))
This statement allocates a data set for the user's report. The user then fills the data set through the QMF PRINT command. You might need to change the statement's SPACE operand if your users create extremely large reports.
ISPEXEC SELECT PGM(DSQQMF&LANGCHAR) PARM(I=&PROCNAME) NEWAPPL(DSQ&LANGCHAR)
With the statement in its present form, the subsystem for DB2 must be named DSN, and the application plan for QMF must be named QMF720. If not, you must add information to the PARM operand of the statement. For example, the subsystem and application plan are named ABC and QMFXXX. Then the modified statement might look like this:
ISPEXEC SELECT PGM(DSQQMF&LANGCHAR) PARM(I=&PROCNAME,S=ABC,P=QMFXXX) NEWAPPL(DSQ&LANGCHAR)
The modified statement overrides default values for two of QMF's program parameters.
For a discussion of program parameters, see Customizing Your Start Procedure.