CBL NODYNAM,LIB,OBJECT,RENT,RES,APOST * ------------------------------------------------------------- * IDENTIFICATIONDIVISION. * ------------------------------------------------------------- * PROGRAM-ID. CSQ4TVH2. *REMARKS ***************************************************************** * @START_COPYRIGHT@ * * Statement: Licensed Materials - Property of IBM * * * * 5695-137 * * (C) Copyright IBM Corporation. 1993, 1997 * * * * Status: Version 1 Release 2 * * @END_COPYRIGHT@ * * ************************************************************* * * * * Module Name : CSQ4TVH2 * * * * Environment : MVS TSO/ISPF; COBOL II * * * * Function : This program builds and displays the message * * list for the Message Handler sample program. * * See IBM Message Queue Manager MVS/ESA * * Application Programming Reference, document * * number SC33-1212, for further details. * * * * Description : This program is called from program CSQ4TVH1. * * It displays the messages on the chosen queue * * using panel CSQ4CHP2. If a message is to be * * displayed then program CSQ4TVH3 is called. * * * ***************************************************************** * * * Program Logic * * * *---------------------------------------------------------------* * * * A-MAIN SECTION * * -------------- * * * * initialize variables used by ISPF * * blank panel message line * * set default message choice to first in table * * loop getting message numbers until END command * * call CSQ4TVH3 to display message contents * * get message line from ISPF * * endloop * * exit program * * * *---------------------------------------------------------------* * * * DISPLAY-MESSAGE-LIST SECTION * * -------------------------- * * * * if get current queue depth is unsuccessful * * exit from section * * endif * * if creation of message table is unsuccessful * * exit from section * * endif * * if move to top of message table failed * * display error message * * exit from section * * endif * * if display of ISPF panel with message table failed * * exit from section * * endif * * get the chosen message number from table * * if unsuccessful * * display error message * * exit from section * * endif * * put chosen message details to ISPF * * exit from section * * * *---------------------------------------------------------------* * * * CREATE-MSG-TABLE SECTION * * ------------------------ * * * * set number of messages in table to zero * * browse the first message from queue (MQGET) * * if successful * * set the get options to browse next message * * else * * display appropriate error message * * exit from section * * endif * * create ISPF table to hold message information * * if unsuccessful * * display error message * * exit from section * * endif * * loop while there is still room left in message table * * set up variables for new table entry * * add new table entry * * if unsuccessful * * display error message * * exit from section * * endif * * browse the next message from queue * * if unsuccessful * * if failed because no more message on queue * * message table finished * * set reason codes to no error * * else * * end the table creation * * display error message * * exit from section * * endif * * else * * set reason codes to no error * * endif * * endloop * * exit from section * * * *---------------------------------------------------------------* * * * CURRENT-Q-DEPTH SECTION * * ----------------------- * * * * set inquire options for queue depth * * call MQINQ to get the current queue depth * * if successful * * put current queue depth to ISPF * * else * * display error message * * endif * * exit from section * * * *---------------------------------------------------------------* * * * ERROR-MESSAGE SECTION * * --------------------- * * * * copy error message into panel message line variable * * exit from section * * * *---------------------------------------------------------------* * * * PRINT-MESSAGE SECTION * * --------------------- * * * * copy message into panel message line variable * * exit from section * * * *---------------------------------------------------------------* * * * ISFP-INIT SECTION * * ----------------- * * * * call VDEFINE for all variables to go into ISPF * * shared variable pool * * exit from section * * * ***************************************************************** * ------------------------------------------------------------- * ENVIRONMENTDIVISION. * ------------------------------------------------------------- * * ------------------------------------------------------------- * DATADIVISION. * ------------------------------------------------------------- * * ------------------------------------------------------------- * WORKING-STORAGESECTION. * ------------------------------------------------------------- * * * W00 - General work fields *
01 W00-ERRORMSG PIC X(40) VALUESPACES.
01 W00-RETCODE PIC S9(09) BINARY.
01 W00-PUTAPPLTYPETEMP PIC S9(08) BINARY.
01 W00-TABLESIZE PIC S9(09) BINARY.
01 W00-TABLESIZE-CHAR PIC S9(02).
01 W00-TIME.
10 W00-HOUR PIC X(2) VALUESPACES.
10 W00-MIN PIC X(2) VALUESPACES.
10 W00-SEC PIC X(2) VALUESPACES.
10 W00-MILLISEC PIC X(2) VALUESPACES.
01 W00-DATE.
10 W00-CENTURY PIC X(2) VALUESPACES.
10 W00-YEAR PIC X(2) VALUESPACES.
10 W00-MONTH PIC X(2) VALUESPACES.
10 W00-DAY PIC X(2) VALUESPACES. * * W01 - ISPF Variables *
01 W01-QMGRNAME PIC X(48) VALUESPACES.
01 W01-QNAME PIC X(48) VALUESPACES.
01 W01-HCONN PIC S9(09) BINARY.
01 W01-HOBJ PIC S9(09) BINARY.
01 W01-MESSAGE PIC X(79) VALUESPACES. *
01 W01-MSGNUM PIC X(2) VALUE'01'.
01 W01-NUMMSGS PIC X(2) VALUESPACES.
01 W01-TOTALNUMMSGS PIC X(9) VALUESPACES. *
01 W01-LINENUM PIC X(2) VALUESPACES.
01 W01-PUTTIME PIC X(8) VALUESPACES.
01 W01-PUTDATE PIC X(8) VALUESPACES.
01 W01-FORMATNAME PIC X(8) VALUESPACES.
01 W01-USERID PIC X(12) VALUESPACES.
01 W01-PUTAPPLTYPE PIC X(8) VALUESPACES.
01 W01-PUTAPPLNAME PIC X(28) VALUESPACES. * * W02 - MQAPI Variables *
01 W02-COMPCODE PIC S9(09) BINARY.
01 W02-COMPCODE-CHAR PIC Z(1)9 VALUESPACES.
01 W02-REASON PIC S9(09) BINARY.
01 W02-REASON-CHAR PIC Z(4)9 VALUESPACES. * MQINQ
01 W02-SELECTORS PIC S9(09) BINARY.
01 W02-SELECTORCOUNT PIC S9(09) BINARY.
01 W02-INTATTRS PIC S9(09) BINARY.
01 W02-INTATTRCOUNT PIC S9(09) BINARY.
01 W02-CHARATTRS PIC X(48) VALUESPACES.
01 W02-CHARATTRLENGTH PIC S9(09) BINARY. * MQOPEN
01 W02-OPENOPTIONS PIC S9(09) BINARY. * MQGET
01 W02-MSGBUFFER PIC X(99) VALUESPACES.
01 W02-DATALENGTH PIC S9(09) BINARY. * * API control blocks *
01 MQM-OBJECT-DESCRIPTOR.
COPY CMQODV.
01 MQM-MESSAGE-DESCRIPTOR.
COPY CMQMDV.
01 MQM-GET-MESSAGE-OPTIONS.
COPY CMQGMOV. * * MQV contains constants (for filling in the control blocks) * and return codes (for testing the result of a call) *
01 MQM-CONSTANTS.
COPY CMQV SUPPRESS. * * ISPLINK Strings *
01 IDISPLAY PIC X(8) VALUE'DISPLAY '.
01 ISELECT PIC X(8) VALUE'SELECT '.
01 ISHARED PIC X(8) VALUE'SHARED '.
01 IVDEFINE PIC X(8) VALUE'VDEFINE '.
01 IVPUT PIC X(8) VALUE'VPUT '.
01 IVGET PIC X(8) VALUE'VGET '.
01 ICOPY PIC X(8) VALUE'COPY '.
01 ICHAR PIC X(8) VALUE'CHAR '.
01 IFIXED PIC X(8) VALUE'FIXED '.
01 IBIT PIC X(8) VALUE'BIT '.
01 IPANEL2 PIC X(8) VALUE'CSQ4CHP2'.
01 IPROG3 PIC X(13) VALUE'PGM(CSQ4TVH3)'.
01 ITBTOP PIC X(8) VALUE'TBTOP '.
01 ITBDISPL PIC X(8) VALUE'TBDISPL '.
01 ITBGET PIC X(8) VALUE'TBGET '.
01 ITBADD PIC X(8) VALUE'TBADD '.
01 ITBEND PIC X(8) VALUE'TBEND '.
01 ITBCREATE PIC X(8) VALUE'TBCREATE'.
01 INOWRITE PIC X(8) VALUE'NOWRITE '.
01 IREPLACE PIC X(8) VALUE'REPLACE '.
01 I2 PIC 9(6) VALUE 2 COMP.
01 I4 PIC 9(6) VALUE 4 COMP.
01 I8 PIC 9(6) VALUE 8 COMP.
01 I9 PIC 9(6) VALUE 9 COMP.
01 I12 PIC 9(6) VALUE 12 COMP.
01 I13 PIC 9(6) VALUE 13 COMP.
01 I24 PIC 9(6) VALUE 24 COMP.
01 I28 PIC 9(6) VALUE 28 COMP.
01 I48 PIC 9(6) VALUE 48 COMP.
01 I79 PIC 9(6) VALUE 79 COMP.
01 I99 PIC 9(6) VALUE 99 COMP. *
01 IMESSAGE PIC X(8) VALUE'MSG '.
01 IHOBJ PIC X(8) VALUE'HOBJ '.
01 IHCONN PIC X(8) VALUE'HCONN '.
01 IQNAME PIC X(8) VALUE'QNAME '.
01 IQMGRNAME PIC X(8) VALUE'QMGRNAME'. *
01 IMSGNUM PIC X(8) VALUE'MN '.
01 INUMMSGS PIC X(8) VALUE'NM '.
01 ITOTALNUMMSGS PIC X(8) VALUE'TOTALNM '. *
01 ILINENUM PIC X(8) VALUE'LN '.
01 IMSGID PIC X(8) VALUE'MSGID '.
01 ICORRELID PIC X(8) VALUE'CORRELID'.
01 IPUTTIME PIC X(8) VALUE'PUTTIME '.
01 IPUTDATE PIC X(8) VALUE'PUTDATE '.
01 IFORMATNAME PIC X(8) VALUE'FORMAT '.
01 IUSERID PIC X(8) VALUE'USERID '.
01 IPUTAPPLTYPE PIC X(8) VALUE'PUTATYPE'.
01 IPUTAPPLNAME PIC X(8) VALUE'PUTANAME'. *
01 IMSG-TABLE PIC X(8) VALUE'MSGTABLE'.
01 IMSG-TABLE-KEY PIC X(4) VALUE'(LN)'.
01 IMSG-TABLE-FIELDS PIC X(64) VALUE '(MSGID CORRELID PUTDATE PUTTIME FORMAT USERID
- ' PUTATYPE PUTANAME)'. * * ------------------------------------------------------------- * LINKAGESECTION. * ------------------------------------------------------------- *
EJECT * ------------------------------------------------------------- * PROCEDUREDIVISION. * ------------------------------------------------------------- * * ------------------------------------------------------------- *
A-MAIN SECTION. * ------------------------------------------------------------- * * * * Set up variables used with ISPF * * * PERFORM ISPF-INIT. * * * Blank ISPF panel message * * * MOVESPACESTO W01-MESSAGE. PERFORM PRINT-MESSAGE. * * * Set default message number to the first message in table * * and place value into the ISPF shared variable pool. * * * MOVE'01'TO W01-MSGNUM. CALL'ISPLINK'USING IVPUT IMSGNUM ISHARED. * * * Loop until ready to quit the program. * * * PERFORM DISPLAY-MESSAGE-LIST. PERFORMWITHTESTBEFOREUNTIL (W02-REASON NOT = 0) * * * Call the program to display the message chosen from * * the message table. * * * CALL'ISPLINK'USING ISELECT I13 IPROG3 CALL'ISPLINK'USING IVGET IMESSAGE ISHARED * PERFORM DISPLAY-MESSAGE-LIST * END-PERFORM. *
A-MAIN-EXIT. * GOBACK.
EJECT * * *---------------------------------------------------------------*
DISPLAY-MESSAGE-LIST SECTION. *---------------------------------------------------------------* * This section creates a table of messages on the specified * * queue. This table is then displayed and the number of a * * desired message can be input. The details of the chosen * * message are placed into the ISPF shared variable pool. * *---------------------------------------------------------------* * * * * Get the current queue depth. * * Upon an error exit to calling section. * * * PERFORM CURRENT-Q-DEPTH. IF (MQRC-NONE NOT = W02-REASON) THEN GOTO DISPLAY-MESSAGE-LIST-EXIT END-IF. * * * Create the message table to be displayed. * * Upon an error exit to calling section. * * * PERFORM CREATE-MSG-TABLE. IF (MQRC-NONE NOT = W02-REASON) THEN GOTO DISPLAY-MESSAGE-LIST-EXIT END-IF. * * * Set the table cursor to the first element in the table. * * If this fails display an error message and exit to * * the calling section. * * * CALL'ISPLINK'USING ITBTOP IMSG-TABLE. IF (0 NOT = RETURN-CODE) THEN MOVERETURN-CODETO W02-REASON MOVE W02-REASON TO W02-REASON-CHAR STRING'Message table handling error. Return Code : ',
W02-REASON-CHAR, DELIMITEDBYSIZEINTO W01-MESSAGE PERFORM PRINT-MESSAGE GOTO DISPLAY-MESSAGE-LIST-EXIT END-IF. * * * Display the ISPF panel and message table. * * Upon failure exit to calling section. * * * CALL'ISPLINK'USING ITBDISPL IMSG-TABLE IPANEL2. IF (0 NOT = RETURN-CODE) THEN MOVERETURN-CODETO W02-REASON GOTO DISPLAY-MESSAGE-LIST-EXIT END-IF. * * * Get the chosen message number. * * If an error occurs display * * message and return. * * * CALL'ISPLINK'USING IVGET IMSGNUM ISHARED. MOVE W01-MSGNUM TO W01-LINENUM. CALL'ISPLINK'USING ITBGET IMSG-TABLE. IF (0 NOT = RETURN-CODE) THEN MOVERETURN-CODETO W02-REASON MOVE W02-REASON TO W02-REASON-CHAR STRING'Message table handling error. Return Code : ',
W02-REASON-CHAR, DELIMITEDBYSIZEINTO W01-MESSAGE PERFORM PRINT-MESSAGE GOTO DISPLAY-MESSAGE-LIST-EXIT END-IF. * * * Copy the chosen message details from table into * * the ISPF shared variable pool. * * * CALL'ISPLINK'USING IVPUT IMSGID ISHARED. CALL'ISPLINK'USING IVPUT ICORRELID ISHARED. *
DISPLAY-MESSAGE-LIST-EXIT. * EXIT.
EJECT * *---------------------------------------------------------------*
CREATE-MSG-TABLE SECTION. *---------------------------------------------------------------* * This section tries to create an ISPF table with a maximum * * length of 99. The table created consists of details of the * * first 99, at most, messages browsed in the specified queue. * *---------------------------------------------------------------* * * * * Set the number of messages in table to zero. * * * MOVE'00'TO W01-NUMMSGS. * * * Set up MQGET variables and browse the first message. * * * MOVE MQMI-NONE TO MQMD-MSGID. MOVE MQCI-NONE TO MQMD-CORRELID. COMPUTE MQGMO-OPTIONS = MQGMO-BROWSE-FIRST +
MQGMO-NO-WAIT +
MQGMO-ACCEPT-TRUNCATED-MSG +
MQGMO-NO-SYNCPOINT. * CALL'MQGET'USING W01-HCONN
W01-HOBJ
MQMD
MQGMO
I99
W02-MSGBUFFER
W02-DATALENGTH
W02-COMPCODE
W02-REASON. * * * If MQGET failed displayed an appropriate error message * * and return to the calling section. * * * * If successful set the MQGET browse options for further * * calls to MQGET. * * * IF (MQCC-FAILED NOT = W02-COMPCODE) THEN COMPUTE MQGMO-OPTIONS = MQGMO-BROWSE-NEXT +
MQGMO-NO-WAIT +
MQGMO-ACCEPT-TRUNCATED-MSG +
MQGMO-NO-SYNCPOINT ELSE EVALUATETRUE WHEN (MQRC-GET-INHIBITED = W02-REASON) MOVE'Get Inhibited set on queue.'TO W00-ERRORMSG WHEN (MQRC-NO-MSG-AVAILABLE = W02-REASON) MOVE'No messages on queue.'TO W00-ERRORMSG WHENOTHER MOVE'Get from queue failed.'TO W00-ERRORMSG END-EVALUATE PERFORM ERROR-MESSAGE GOTO CREATE-MSG-TABLE-EXIT END-IF. * * * Create an ISPF table to hold the message details. * * If create failed display an error message and * * exit from the section. * * NB: a return code of 4 from TBCREATE means that * * a new table has been created replacing an old * * table of the same name. This is not an error. * * * CALL'ISPLINK'USING ITBCREATE
IMSG-TABLE
IMSG-TABLE-KEY IMSG-TABLE-FIELDS
INOWRITE IREPLACE. IF (4 = RETURN-CODE) THEN MOVE 0 TORETURN-CODE END-IF. IF (0 NOT = RETURN-CODE) THEN MOVERETURN-CODETO W02-REASON MOVE W02-REASON TO W02-REASON-CHAR STRING 'Creation of message table failed. Return Code : ',
W02-REASON-CHAR, DELIMITEDBYSIZEINTO W01-MESSAGE PERFORM PRINT-MESSAGE GOTO CREATE-MSG-TABLE-EXIT END-IF. * * * While there is still space remaining in the ISPF table * * place the message details into the table and read the * * next message from the queue. * * * PERFORMWITHTESTAFTERVARYING W00-TABLESIZE FROM 1 BY 1 UNTIL (W00-TABLESIZE >= 99) * * * * Copy details read from queue into ISPF table variables. * * * MOVE W00-TABLESIZE TO W00-TABLESIZE-CHAR MOVE W00-TABLESIZE-CHAR TO W01-LINENUM MOVE MQMD-PUTTIME TO W00-TIME STRING W00-HOUR, ':',
W00-MIN, ':',
W00-SEC DELIMITEDBYSIZEINTO W01-PUTTIME MOVE MQMD-PUTDATE TO W00-DATE STRING W00-MONTH, '/',
W00-DAY, '/',
W00-YEAR DELIMITEDBYSIZEINTO W01-PUTDATE MOVE MQMD-FORMAT TO W01-FORMATNAME MOVE MQMD-USERIDENTIFIER TO W01-USERID MOVE MQMD-PUTAPPLTYPE TO W00-PUTAPPLTYPETEMP MOVE W00-PUTAPPLTYPETEMP TO W01-PUTAPPLTYPE MOVE MQMD-PUTAPPLNAME TO W01-PUTAPPLNAME * * * Add a new line of table details to the message table. * * If a failure occurs then display an error message * * and return to calling section. * * * CALL'ISPLINK'USING ITBADD IMSG-TABLE IF (0 NOT = RETURN-CODE) THEN MOVERETURN-CODETO W02-REASON MOVE W02-REASON TO W02-REASON-CHAR CALL'ISPLINK'USING ITBEND IMSG-TABLE STRING'Addition to message table failed. ', 'Return Code : ', W02-REASON-CHAR DELIMITEDBYSIZEINTO W01-MESSAGE PERFORM PRINT-MESSAGE GOTO CREATE-MSG-TABLE-EXIT END-IF * * * Blank the MsgId and CorrelId so that any message on * * the queue will qualify on the next call to MQGET. * * * MOVE MQMI-NONE TO MQMD-MSGID MOVE MQCI-NONE TO MQMD-CORRELID * CALL'MQGET'USING W01-HCONN
W01-HOBJ
MQMD
MQGMO
I99
W02-MSGBUFFER
W02-DATALENGTH
W02-COMPCODE
W02-REASON * * * * Check for a failure with the previous MQGET call. * * If the failure was caused by having no more * * messages on the queue then reset the error codes * * and break from while loop. * * Otherwise delete the message table, display an * * error message and return from section. * * * * MQCC_WARNINGs are in relation to truncated * * messages which are accepted and hence ignored. * * * IF (MQCC-FAILED = W02-COMPCODE) THEN * IF (MQRC-NO-MSG-AVAILABLE = W02-REASON) THEN ADD 100 TO W00-TABLESIZE MOVE MQRC-NONE TO W02-REASON MOVE MQCC-OK TO W02-COMPCODE ELSE CALL'ISPLINK'USING ITBEND IMSG-TABLE MOVE'Get from queue failed.'TO W00-ERRORMSG PERFORM ERROR-MESSAGE END-IF * ELSE MOVE MQRC-NONE TO W02-REASON MOVE MQCC-OK TO W02-COMPCODE END-IF * END-PERFORM. * * * Copy the number of entries in the message table * * into the ISPF shared variable pool. Ensure that the * * message number is set to a message which exists. * * * MOVE W01-LINENUM TO W01-NUMMSGS. CALL'ISPLINK'USING IVPUT INUMMSGS ISHARED. IF W01-MSGNUM > W01-NUMMSGS THEN MOVE W01-NUMMSGS TO W01-MSGNUM CALL'ISPLINK'USING IVPUT IMSGNUM ISHARED END-IF. *
CREATE-MSG-TABLE-EXIT. * EXIT.
EJECT * *---------------------------------------------------------------*
CURRENT-Q-DEPTH SECTION. *---------------------------------------------------------------* * This section inquires on the current queue depth for the * * specified queue and returns the depth if successful. * *---------------------------------------------------------------* * MOVE MQIA-CURRENT-Q-DEPTH TO W02-SELECTORS. MOVE 1 TO W02-SELECTORCOUNT. MOVE 1 TO W02-INTATTRCOUNT. MOVE 0 TO W02-CHARATTRLENGTH. * * * Call MQINQ with variables set to inquire the queue depth * * * CALL'MQINQ'USING W01-HCONN
W01-HOBJ
W02-SELECTORCOUNT
W02-SELECTORS
W02-INTATTRCOUNT
W02-INTATTRS
W02-CHARATTRLENGTH
W02-CHARATTRS
W02-COMPCODE
W02-REASON. * * * If the inquire was successful then copy the queue depth * * to the ISPF shared variable pool. * * * * A failure will cause an error message to be displayed. * * * IF (MQCC-OK = W02-COMPCODE) THEN MOVE W02-INTATTRS TO W01-TOTALNUMMSGS CALL'ISPLINK'USING IVPUT ITOTALNUMMSGS ISHARED ELSE MOVE'Error finding queue depth.'TO W00-ERRORMSG PERFORM ERROR-MESSAGE END-IF. *
CURRENT-Q-DEPTH-EXIT. * EXIT.
EJECT * *---------------------------------------------------------------*
ERROR-MESSAGE SECTION. *---------------------------------------------------------------* * This section puts an error message to the ISPF panel. * * The message consists of some text message, a completion code * * and a reason code. * *---------------------------------------------------------------* * MOVE W02-COMPCODE TO W02-COMPCODE-CHAR. MOVE W02-REASON TO W02-REASON-CHAR. * STRING W00-ERRORMSG, ' CompCode: ',
W02-COMPCODE-CHAR, ' Reason: ',
W02-REASON-CHAR, ' ' DELIMITEDBYSIZEINTO W01-MESSAGE. * PERFORM PRINT-MESSAGE. *
ERROR-MESSAGE-EXIT. * EXIT.
EJECT * *---------------------------------------------------------------*
PRINT-MESSAGE SECTION. *---------------------------------------------------------------* * This section places a message onto the ISPF panel. * *---------------------------------------------------------------* * CALL'ISPLINK'USING IVPUT IMESSAGE ISHARED. *
PRINT-MESSAGE-EXIT. * EXIT.
EJECT * *---------------------------------------------------------------*
ISPF-INIT SECTION. *---------------------------------------------------------------* * This section declares all variables which are to be stored * * in the ISPF shared variable pool. These variables are used * * with the ISPF panels or passed to the programs called. * *---------------------------------------------------------------* * CALL'ISPLINK'USING
IVDEFINE IQMGRNAME W01-QMGRNAME ICHAR I48 ICOPY. CALL'ISPLINK'USING
IVDEFINE IQNAME W01-QNAME ICHAR I48 ICOPY. CALL'ISPLINK'USING
IVDEFINE IHCONN W01-HCONN IFIXED I4 ICOPY. CALL'ISPLINK'USING
IVDEFINE IHOBJ W01-HOBJ IFIXED I4 ICOPY. CALL'ISPLINK'USING
IVDEFINE IMESSAGE W01-MESSAGE ICHAR I79 ICOPY. * CALL'ISPLINK'USING
IVDEFINE IMSGNUM W01-MSGNUM ICHAR I2. CALL'ISPLINK'USING
IVDEFINE INUMMSGS W01-NUMMSGS ICHAR I2. CALL'ISPLINK'USING
IVDEFINE ITOTALNUMMSGS W01-TOTALNUMMSGS ICHAR I9. * CALL'ISPLINK'USING
IVDEFINE ILINENUM W01-LINENUM ICHAR I2. CALL'ISPLINK'USING
IVDEFINE IMSGID MQMD-MSGID IBIT I24. CALL'ISPLINK'USING
IVDEFINE ICORRELID MQMD-CORRELID IBIT I24. CALL'ISPLINK'USING
IVDEFINE IPUTTIME W01-PUTTIME ICHAR I8. CALL'ISPLINK'USING
IVDEFINE IPUTDATE W01-PUTDATE ICHAR I8. CALL'ISPLINK'USING
IVDEFINE IFORMATNAME W01-FORMATNAME ICHAR I8. CALL'ISPLINK'USING
IVDEFINE IUSERID W01-USERID ICHAR I12. CALL'ISPLINK'USING
IVDEFINE IPUTAPPLTYPE W01-PUTAPPLTYPE ICHAR I8. CALL'ISPLINK'USING
IVDEFINE IPUTAPPLNAME W01-PUTAPPLNAME ICHAR I28. *
ISPF-INIT-EXIT. * EXIT.
EJECT * * ------------------------------------------------------------- * * End of program * * ------------------------------------------------------------- *
¤ Dauer der Verarbeitung: 0.28 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.