Функция OUTTRAP должна перехватывать выходные данные команды DSN. OUTTRAP предназначен для TRAP ввода OUT большинства команд TSO. Вывод помещается в переменную (обычно переменную основы), которую вы предоставляете. (Некоторые команды TSO не могут быть перехвачены; это обсуждается в другом месте в справочнике TSO / E REXX .)
Принимая ваш код, как указано выше, мы можем объединить это:
ORC = OUTTRAP('O.') /* preserve prior setting of OUTTRAP */
QUEUE "-DIS DATABASE(*) SPACENAM(*) RESTRICT(CHKP,COPY)"
QUEUE "END"
ADDRESS TSO "DSN SYSTEM(DB2D)"
CALL OUTTRAP ORC /* restore OUTTRAP setting */
DO #O = 1 TO O.0 /* The 0 entry by convention has the number of records */
/* You can PARSE, analyze, or do whatever here */
SAY "O."'#O "='"O.#O"'" /* example */
END #O /* end the loop */
OUTTRAP - очень мощная функция при написании скриптов в TSO / E REXX.