How to resolve compound SYSPROG variables
The SYSPROG utility EXECs are called by other EXECs with the WAIT(YES) parameter.
These EXECs produce LOCAL variables that are available to their callers upon return; the variables are prefixed with the name of the EXEC. The LOCAL variables can be accessed with the IMFEXEC VGET command by naming the specific variable or in a do-loop if more than one variable of the same type is required.
An example of using a SYSPROG utility EXEC is shown in the following figure.
PROC 1 REPLIES
IMFEXEC SELECT EXEC(RREP) WAIT(YES) <=== CALL REPLIES EXEC
IMFEXEC VGET (RREPROL1) LOCAL <=== NUMBER OF OUTPUT LINES
RETURNED IN LOCAL POOL
SET &N = 1
IMFEXEC MSG 'LIST OF OUTSTANDING REPLIES'
DO WHILE (&N LE &RREPROL1)
IMFEXEC VGET (RREPI&N RREP1&N) LOCAL <=== LOCAL VARIABLE
SET &REPID = &&RREPI&N <=== RESOLVED COMPOUND VARIABLE
SET &MSG = &&RREP1&N <=== FOR PROCESSING
WITHIN EXEC
IMFEXEC MSG 'MESSAGE = &MSG, REPLYID = &REPID'
SET &N = &N +1
END
IMFEXEC SELECT EXEC(RREP) WAIT(YES) <=== CALL REPLIES EXEC
IMFEXEC VGET (RREPROL1) LOCAL <=== NUMBER OF OUTPUT LINES
RETURNED IN LOCAL POOL
SET &N = 1
IMFEXEC MSG 'LIST OF OUTSTANDING REPLIES'
DO WHILE (&N LE &RREPROL1)
IMFEXEC VGET (RREPI&N RREP1&N) LOCAL <=== LOCAL VARIABLE
SET &REPID = &&RREPI&N <=== RESOLVED COMPOUND VARIABLE
SET &MSG = &&RREP1&N <=== FOR PROCESSING
WITHIN EXEC
IMFEXEC MSG 'MESSAGE = &MSG, REPLYID = &REPID'
SET &N = &N +1
END
This section contains the following topics:
Related topic
Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*