Доступны ли услуги ISPEXEC на панели ISPF REXX?
Вот определение панели ISPF:
)BODY
Hello, world!
)PROC
*REXX
ADDRESS ISPEXEC "CONTROL ERRORS CANCEL"
*ENDREXX
)END
Панель отображается нормально, но встроенный REXX сразу дает сбой:
*-* ADDRESS ISPEXEC "CONTROL ERRORS CANCEL"
+++ RC(-3) +++
Код возврата -3 обычно означает, что командная среда не знает, что делать с командой.
Представляется разумным, что панель ISPF сможет справиться с запросом ISPF. Есть идеи, что происходит?
3 ответа
* Код REXX не может выдавать запросы на обслуживание ISPF согласно примечанию 5 в статье:
Я бы посоветовал хорошо прочитать статью.
Как уже было сказано, услуги ISPF недоступны в Panel REXX. Но это не должно помешать вам получить доступ к переменным ISPF и обновить их из REXX.
Прежде чем выполнять *REXX(.... просто выполните VGET переменной ISPF, а затем закодируйте *REXX таким образом
REXX( переменная1 переменная2 ...)
У вас будет доступ ко многим сервисам REXX (listdsi, sysdsn,...).
Вы также можете установить переменную (должна быть определена в *REXX), которую вы сможете протестировать в коде панели ISPF, чтобы что-то сделать. Одним из примеров является установка переменной в REXX, а затем проверка кода PANEL для выдачи сообщения ISPF.
Надеюсь, это поможет.
MikeT абсолютно прав, как указано в Руководстве разработчика ISPF Dialog. Я бы предложил загрузить PDF-файлы ISPF, если вы будете поддерживать или кодировать услуги ISPF.
http://www-03.ibm.com/systems/z/os/zos/library/bkserv/v2r2pdf/