Как передать аргументы в программу REXX через JCL
-
21-09-2019 - |
Вопрос
Можем ли мы передать аргументы программе REXX из JCL?
Я полагаю, JCL PARM можно использовать так же, как мы используем для передачи аргументов программам на COBOL..Пожалуйста, выкладывайте свои идеи здесь...
Решение
Ты хочешь EXEC PGM=IRXJCL,PARM='member_name exec_args'
. SYSEXEC
должен указывать на PDS, содержащий member name
. SYSTSIN
является входным сигналом для PULL
, SYSTSPRT
является выходным DD для SAY
Ознакомьтесь с "Использование REXX в TSO / E и других адресных пространствах MVS" глава в "Руководство пользователя TSO/E Rexx" книга (SA22-7791) для полного примера.
Другие советы
Добавленное примечание:Если ваш REXX exec использует службы ISPF, вы можете запустить его в пакетном режиме с PGM=IKJEFTxx (xx - суффикс переменной) и выделить ISPxLIB на этапе задания.
Если параметры вместе с именем члена REXX превышают 100 байт, метод, упомянутый Роном Паттерсоном, не будет работать, поскольку синтаксис JCL допускает только максимальную длину параметра 100 байт.В этом случае я рекомендую использовать IKJEFTxx (уже опубликовано Тони).Затем вы должны передать имя программы REXX в качестве данных instream в SYSTSIN.Параметры этой программы могут быть просто записаны за названием программы.Если вам нужно более одной строки, используйте дефис в качестве последнего символа строки, чтобы указать объединение со следующей строкой.Пример:
//EXAMPLE EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=30
//SYSPRINT DD SYSOUT=*
//SYSEXEC DD DISP=SHR,DSN=YOUR.REXX.LIBRARY
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
SCHLABB PARAMETER1 PARAMETER2 PARAMETER3 -
VERY_LONG_PARAMETER4 -
LAST_PARAMETER5
/*
//
Я получал RC (-3) для базовых команд EXECIO, LIBDEF, когда пытался запустить IRXJCL.Я хотел бы, чтобы была лучшая документация о том, что IRXJCL может и не может делать.
Наконец, последовал подходу из приведенной ниже ссылки, чтобы динамически передавать значения в REXX, записывая их в файл и считывая из файла. Как запустить dymanic SQL через утилиту IKJEFT01?