Доступны ли услуги 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 в статье:

Заявление *REXX.

Я бы посоветовал хорошо прочитать статью.

Как уже было сказано, услуги 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/

Другие вопросы по тегам