IBM Support

II07582: PRINTING HINTS AND TIPS FOR QMF VSE 3.1.1

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • INTRAN

Error description

  • =============================================
    PRINTING TO SYSTEM PRINTER FROM QMF/VSE 3.1.1
    =============================================
    THE FOLLOWING INFO WILL ENABLE YOU TO PRINT
    TO A POWER-CONTROLLED PRINTER FROM QMF, VIA
    A TRANSIENT DATA QUEUE, WITHOUT THE SERVICES
    OF GDDM, AND HAVE THE PRINTING BEGIN WITHOUT
    WAITING FOR CICS TO COME DOWN.
    Enhancements have been made to the program to allow for the
    user's terminal Id to be displayed on the output when
    the user submits a print report.
    ==============================
    CICS STARTUP JCL MODIFICATIONS
    ==============================
    THE FOLLOWING POWER LST STATEMENTS ARE IN OUR CICS STARTUP.
    00E IS SYSLST, AND IS USED FOR THE CICS STATS, ETC.
    04E WAS ADDED FOR QMF, ORIGINALLY FOR VERSION 1.
    
    * $$ LST LST=00E,CLASS=A
    * $$ LST LST=04E,CLASS=P
    
    THE FOLLOWING ASSIGNS ARE ALSO IN THE CICS STARTUP.
    SYSLST IS ALREADY PERMANENTLY ASSIGNED TO 00E.
    
    // ASSGN SYS098,02E
    // ASSGN SYS097,04E
     NOTE: THERE ARE NO DLBLS/EXTENTS IN THE CICS STARTUP FOR THE
     QMF PRINTER "DESTINATION."  THEY ARE NOT NEEDED.
     =================
     DCT MODIFICATIONS
     =================
     THE FOLLOWING TYPE=SDSCI ENTRY WAS ADDED TO THE DCT, FOLLOWING
     OTHER TYPE=SDSCI ENTRIES.  NOTE THAT THE DEVICE ADDRES (SYS097)
     CORRESPONDS TO THE PRINTER 04E, ACCORDING TO ASSIGN IN STARTUP
      **************************************************************
      *       SYSTEM PRINTER FOR QMF OUTPUT.
      *       BLKSIZE: 132 + 1 FOR CTLCHR=ASA + 4 FOR RECFORM=VARUNB
      **************************************************************
             DFHDCT TYPE=SDSCI,
                    BLKSIZE=137,
                    DSCNAME=XXXXXXX,
                    RECFORM=VARUNB,
                    DEVADDR=SYS097,
                    DEVICE=1403,
                    TYPEFLE=OUTPUT,
                    CTLCHR=ASA
    
    THE FOLLOWING TYPE=EXTRA IS ALSO ADDED TO THE DCT, FOLLOWING ALL
    TYPE=EXTRA AND TYPE=INDIRECT DCT ENTRIES.  IT CORRESPONDS TO THE
    TYPE=SDSCI ENTRY BY THE MATCHING VALUE FOR DSCNAME.
    ****************************************************************
    *        SYSTEM PRINTER FOR QMF OUTPUT.
    ****************************************************************
    S04E     DFHDCT TYPE=EXTRA,
                   DESTID=S04E,
                   DSCNAME=XXXXXXX
    ===============================
    SYNONYM AND PF-KEY TABLE SETUPS
    ===============================
    THE FOLLOWING JOB CREATES AND INITIALIZES TWO TABLES WHICH WILL
    USED FOR A USER-DEFINED COMMAND SYNONYM AND ALSO A PFKEY
    SETTING BE SURE THAT NULLABLE COLUMN DEFINITIONS BELOW ARE NOT
    CHANGED TO "NOT NULL" OR ELSE QMF WILL NOT HANDLE IT PROPERLY.
    
    * $$ JOB JNM=QMFPRINT,CLASS=0
    * $$ LST CLASS=A
    // JOB QMFPRINT SQL TABLES
    // LIBDEF *,SEARCH=PRD2.SQL340
    // EXEC ARIDBS
    
    CONNECT Q IDENTIFIED BY ????????;    <-- MODIFY PASSWORD
    SET AUTOCOMMIT ON;
    
    CREATE TABLE Q.UTM_SYN
      (VERB                CHAR(18)     NOT NULL,
       OBJECT              VARCHAR(31)          ,
       SYNONYM_DEFINITION  VARCHAR(254) NOT NULL)
       IN PUBLIC.TEMP1;
    
     CREATE UNIQUE INDEX Q.UTM_SYN_IDX1 ON Q.UTM_SYN (VERB, OBJECT);
    
     GRANT SELECT ON Q.UTM_SYN TO PUBLIC;
    
     INSERT INTO Q.UTM_SYN
       (VERB,SYNONYM_DEFINITION)
       VALUES ('SYSPRINT','RUN PROC Q.SYSPRINT_PROC');
    
     CREATE TABLE Q.UTM_PFK
       (PANEL               CHAR(18)     NOT NULL,
        ENTRY_TYPE          CHAR(1)      NOT NULL,
        NUMBER              SMALLINT     NOT NULL,
        PF_SETTING          VARCHAR(254)         )
        IN PUBLIC.TEMP1;
    
     CREATE UNIQUE INDEX Q.UTM_PFK_IDX1 ON Q.UTM_PFK
            (PANEL, ENTRY_TYPE, NUMBER);
    
     GRANT SELECT ON Q.UTM_PFK TO PUBLIC;
     INSERT INTO Q.UTM_PFK
       (PANEL, ENTRY_TYPE, NUMBER, PF_SETTING)
       VALUES ('REPORT','K',2,'SYSPRINT');
    
     INSERT INTO Q.UTM_PFK
     (PANEL, ENTRY_TYPE, NUMBER, PF_SETTING)
     VALUES ('REPORT','L',1,
     '1=Help     2=Sys Print   3=End       4=Dflt Print  5=Chart
     6=Query');
    
     /*
     /&
     * $$ EOJ
     ===============================
     PROGRAM TO SEGMENT POWER OUTPUT
    ===============================
    THE FOLLOWING CICS PROGRAM WILL ISSUE THE POWER SEGMENT MACRO.
    YOU WILL NEED TO ADD A PCT ENTRY FOR TRANSACTION "S04E"
    AND A PPT ENTRY FOR ASSEMBLER PROGRAM "prgnames".
    THIS IS COMMAND-LEVEL ASSEMBLER, SO TWASIZE IS ZERO IN PCT.
    THIS PROGRAM TO BE CAPABLE OF SEGMENTING ANY  THREE POWER
    PRINTERS, ALTHOUGH ONLY S04E IS NEEDED FOR QMF WORK.
    Enhancements to this program will allow for the terminal
    ID of the user submitting the job be displayed on the
    output.
    
    *ASM     XOPTS(NOEPILOG)
    * DATE WRITTEN:  JANUARY 1994.
    * PURPOSE:       SEGMENT POWER-CONTROLLED PRINTER OUTPUT.
    *                TRANSID IDENTIFIES THE DCT TYPE=EXTRA ENTRY
    *                THAT CORRESPONDS TO A SPECIFIC SYSTEM PRINTER.
    *
    * SYSTEM NOTES:  CICS 2.2, CMD LVL, NO COMMAREA, NO MAPPING.
    *
    * OTHER NOTES:   NORMALLY STARTED BY QMFE, TO RUN AS ASYNC TRANS
    *                THEREFORE, NO TERMINAL MESSAGES ARE DISPLAYED.
    *          If invoked directly, user must manually reset KDB.
    * Modifications:
    *     9/9/94 - By Phil Foster, Print terminal ID on output    *
    *                                                             *
    ****************************************************************
             EJECT
    ****************************************************************
    *        REGISTER USEAGE
    ****************************************************************
    *
    R1       EQU   1
    R2       EQU   2
    R11      EQU   11                      EXEC INTERFACE BLOCK
    R12      EQU   12                      PROGRAM BASE
    R13      EQU   13                      EIB DYNAMIC STORAGE
    *
    ****************************************************************
             SPACE
             DFHEISTG                      EIB DYNAMIC STORAGE
             EJECT
             PRINT NOGEN
    ****************************************************************
    *        PROGRAM ENTRY.
    ****************************************************************
    *
    UTMSEGMT DFHEIENT DATAREG=R13,CODEREG=R12,EIBREG=R11
    *
             B     STRT                    ==> BRANCH AROUND.
             DC    CL8'UTMSEGMT'           PROGRAM NAME.
             DC    CL8'01/20/94'           LAST MOD DATE.
    STRT     DS    0H
             EXEC  CICS ENQ RESOURCE(EIBTRNID) LENGTH(4).
             MVC   USERNM(8),BLANKS
             EXEC  CICS RETRIEVE INTO(USERNM) LENGTH(USERLEN)
    *
             CLC   EIBTRNID,=C'S00E'       SEGMENT LST=00E ?
             BE    SEG00E
             CLC   EIBTRNID,=C'S02E'       SEGMENT LST=02E ?
             BE    SEG02E
             CLC   EIBTRNID,=C'S04E'       SEGMENT LST=04E ?
             BE    SEG04E
             DC    H'0'                    ABEND IF NONE OF ABOVE.
    *
    SEG00E   DS    0H
             MVC   S00EJECL+30(8),USERNM
             SEGMENT DEVADDR=SYSLST,JECL=S00EJECL
             B     DONE
    SEG04E   DS    0H
             MVC   S04EJECL+29(8),USERNM
             SEGMENT DEVADDR=SYS097,JECL=S04EJECL
             B     DONE
    DONE     DS    0H
             EXEC  CICS DEQ RESOURCE(EIBTRNID) LENGTH(4).
             EXEC  CICS RETURN.
    *
    BLANKS     DC     CL8'         '
    S00EJECL DC    CL71'* $$ LST LST=00E,CLASS=A'
    S04EJECL DC    CL71'* $$ LST LST=04E,CLASS=P'
    USERLEN  DC    H'8'
    USERNM   DS    CL8
    *
             LTORG ,
    *
    ****************************************************************
             SPACE
             END  UTMSEGMT
    ======================
    CREATE A QMF PROCEDURE
    ======================
    SIGN ONTO QMF USING USERID "Q", THEN CREATE AND SAVE THE
    FOLLOWING PROC SAVE USING SHARE=YES, BECAUSE OTHER USERID'S ARE
    GOING  TO ACCESS THIS PROC.
           SET GLOBAL(Q='
           RUN Q.SYSPRINT_PROC2   (SAVE AS Q.SYSPRINT_PROC (SHARE=Y
    THE PROC ITSELF CONSISTS OF ONLY 2 LINES. THE FIRST LINE IS A
    QMF COMMAND, THE SECOND LINE CAUSES QMF TO START THE
    TRANSACTION "S04E" ASYNCHRONOUSLY. AFTER QMF ROUTES A REPORT
    TO THE PRINTER DESTINATION, TRANSACTION S04E CAUSES POWER
    TO SEGMENT THE OUTPUT, CAUSING IT TO IMMEDIATELY PRINT.
    WITHOUT SEGMENTATION, YOU WOULD NOT GET THE PRINTOUT
    UNTIL CICS WAS SHUT DOWN (LIKE WAITING FOR CICS
    HERE IS THE PROC:
    
    PRINT REPORT ( QUEUENAME=S04E QUEUETYPE=TD LENGTH=62 WIDTH=132
    CICS S04E (FROM=&Q&DSQAO_CONNECT_ID&Q)
    ================================================
    MODIFY USER PROFILE(S) NEEDING THIS NEW FUNCTION
    ================================================
    RUN AN SQL COMMAND THAT UPDATES ONE OR MORE PROFILES IN THE
    CONTROL TABLE Q.PROFILE SO THAT THE "SYNONYM" COLUMN HAS THE
    NAME OF THE SYNONYM TABLE WE CREATED ( Q.UTM_SYN ) AND THE
    "PFKEY" COLUMN  HAS THE NAME OF THE PF-KEY TABLE WE CREATED
    (Q.UTM_PFK ). AN EXAMPLE OF SUCH A COMMAND TO ENABLE THIS FOR
    "JONES":
       UPDATE Q.PROFILES
         SET SYNONYM = 'Q.UTM_SYN',
             WHERE CREATOR = 'JONES'
    ============
    THE SCENARIO
    ============
    YOU'LL HAVE TO CYCLE YOUR CICS TO CAUSE YOUR STARTUP JCL AND DCT
    CHANGES TO TAKE AFFECT. ALSO PCT AND PPT CHANGES, UNLESS YOU
    USED CED ALL OTHER CHANGES CAN BE DONE BEFORE OR AFTER CICS IS
    CYCLED, AL I SUGGEST THE TABLE DEFINITION JOB AND THE
    SEGMENTATION PROGRAM BE DONE PRIOR TO BRINGING CICS BACK UP.
    ALSO, IF A USER IS CURRENTLY IN QMF AT THE TIME THEIR PROFILE IS
    UPDATED THEY  WILL NOT SEE THE CUSTOMIZATION CHANGES UNTIL THEY
    GET OUT OF QMF AND BACK IN (AT WHICH POINT QMF NOTES THE
    PROFILE CHANGES).
    1. USER GETS INTO QMF, RUNS A QUERY, AND REPORT SCREEN IS DISPLA
    2. USER SEES CUSTOMIZED PFKEY LINE, AND PRESSES PF2 (INSTEAD OF
    3. QMF ASSOCIATES PF2 WITH THE SYNONYM "SYSPRINT".
    4. SYNONYM "SYSPRINT" BECOMES THE COMMAND "RUN PROC Q.SYSPRINT_P
    5. Q.SYSPRINT_PROC ISSUES THE PRINT REPORT ... COMMAND.
    6. Q.SYSPRINT_PROC ALSO STARTS TRANSACTION "S04E" TO SEGMENT PRI
    7. USER SEES MESSAGE, "OK, YOUR PROCEDURE WAS RUN".
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    When running the sample job provided by QMF job DSQCRPT2.Z
    customer may getting an error message when submitting the job.
    Customer will see 1S55I Last Return code was 0020 then the
    output shows error message:
    ASMA932U UNABLE TO LOAD SPECIFIED EXIT MODULE - EDECKXIT
    This problem is reported via ASKQ item CXFBD:
    TITLE: 940131 MSGASMA057E HLASM not able to handle VSE edited ma
                  ..................................................
    Problem: HiLevAsm can't find macros in the macro library.
             No problem with the older assembler // EXEC ASSEMBLY
             only with // EXEC ASMA90
    SOLUTION:
        The High Level Assembler does not recognize edited or
    compiler macros used by VSE. The following can be done to use
    HLASM    VSEs edited macros:
      1. Use the ESERV utility to de-edit the macros.
      2. With VSE/ESA1.3, the source code for a HLASM user exit
         EDECKXIT is shipped in library 59 as SKEDECKX. This exiT
         be envoked to de-edit the macros before they are passed
    high level assembler. To envoke the exit use the following
    // EXEC ASMA90,
         SIZE=(ASMA90,50K),PARM='EXIT(LIBEXIT(EDECKXIT))' For
    ore information refer to page 174 of SC33-6511-01 Guide to
    System Functions ref manual.
    

Local fix

Problem summary

Problem conclusion

Temporary fix

Comments

APAR Information

  • APAR number

    II07582

  • Reported component name

    PB LIB INFO ITE

  • Reported component ID

    INFOPBLIB

  • Reported release

    001

  • Status

    INTRAN

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    1994-02-04

  • Closed date

  • Last modified date

    1994-09-30

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

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

Fix information

Applicable component levels

[{"Business Unit":{"code":null,"label":null},"Product":{"code":"SG19O","label":"APARs - MVS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEPEK","label":"Db2 for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
14 December 2020