Ищите логику CLIST/REXX 'HOLD', которая может быть выполнена из командной строки TSO мейнфрейма
На мэйнфреймах IBM я смог набрать 'hold' в командной строке, нажать enter, и у меня появился новый экран TSO без потери моего исходного экрана. Чтобы вернуться к моему предыдущему экрану, я бы нажал F3. Кто-нибудь знает, где я могу найти код CLIST/REXX для этого?
3 ответа
Предполагая, что когда вы говорите "TSO", вы подразумеваете "ISPF", есть несколько способов получить новый логический экран ISPF в режиме 3270.
Один вводит команду SWAP LIST. Появляется окно, из которого вы можете запросить новый логический экран.
Вы также можете ввести команду SPLIT NEW. Это создаст новый логический экран и разделит экран, на котором находится ваш курсор - если вы не отметили "Всегда показывать разделенную линию" в настройках. Настройки обычно - опция 0 из главного меню ISPF.
Все это описано в Руководстве пользователя ISPF.
Если вы действительно хотите написать диалоговое приложение ISPF для такого рода вещей, я думаю, вы захотите ознакомиться с API-интерфейсами ISPEXEC.
В старые времена у вас могло быть только 2 разделенных экрана ISPF. Например, если вы редактировали 2 набора данных на 2-х разделенном экране и вам нужно было что-то проверить в SDSF, вам нужно было бы выполнить PF3 из одного из ваших правок и перейти в SDSF на этом разделенном экране.
На нескольких сайтах, над которыми я работал, была реализована команда, чтобы дать вам новый "псевдо" разделенный экран, так что если вы используете оба своих разделенных экрана, вы можете быстро сделать что-то еще. Похоже, что ваша команда 'hold' была чем-то вроде этого.
В настоящее время вы можете иметь много разделенных экранов. В моем примере выше вы можете просто набрать "split new", чтобы получить новый разделенный экран (или, возможно, "start s", если "s" - это опция для SDSF в вашем основном меню опций), сделать то, что вам нужно, в SDSF и затем вернитесь к своим 2 правкам. Ранее это было невозможно.
Если вы знаете, как редактировать таблицу ISPCMDS, вы можете добавить туда команду HOLD.
Используйте глагол HOLD, T = 0 и действие SELECT PANEL(ISR@PRIM) OPT(&ZPARM) NEWAPPL(ISR) SUSPEND
Если имя основной панели вашего сайта - другое, используйте его вместо ISR@PRIM. Это добавит команду HOLD, как в EDS.
Возможно, вам придется скопировать текущую таблицу ISPCMDS в новый набор данных и переименовать ее во что-то другое (например, TSTCMDS), прежде чем вы сможете изменить ее. Вы также должны будете выделить новый набор данных для ISPTABL.
После добавления новой команды в конце переименованной таблицы ISPCMDS выйдите из ISPF, переименуйте элемент набора данных новых таблиц в ISPCMDS, а затем выделите ваш набор данных перед данными, предоставленными вашей установкой. Поиск в Google может пролить больше света на то, что нужно сделать, чтобы изменить ISPCMDS.
Если вы в хороших отношениях с системным программистом своего сайта, он может сделать это для вас и сделать его доступным для всех. Это хороший хак, который не требует никакого нового кода.