Как передать аргументы программе REXX через JCL - PullRequest
3 голосов
/ 25 декабря 2009

Можем ли мы передать аргументы в программу REXX из JCL?

Полагаю, JCL PARM можно использовать так же, как мы используем для передачи аргументов программам на языке COBOL. Оставьте свои идеи здесь ...

Ответы [ 4 ]

7 голосов
/ 01 января 2010

Вы хотите 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 ) для полного примера.

3 голосов
/ 11 июня 2010

Если параметры вместе с именем члена 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                                
/*                                                   
//                                                   
3 голосов
/ 02 июня 2010

Добавление примечания: если ваш REXX exec использует службы ISPF, вы можете запустить его пакетно с PGM = IKJEFTxx (xx - суффикс переменной) и выделить ISPxLIB на шаге задания.

0 голосов
/ 27 мая 2015

Я получал RC (-3) для базовых команд EXECIO, LIBDEF, когда я пытался запустить IRXJCL. Хотелось бы, чтобы была лучшая документация о том, что IRXJCL может и не может делать.

Наконец, следовал подходу из ссылки ниже, чтобы динамически передавать значения в REXX, записывая их в файл и читая из файла. Как запустить dymanic SQL через утилиту IKJEFT01?

...