Cómo acceder a una línea de comandos desde pantallas que no la tienen
Acceda a una línea de comandos desde pantallas AS400 que no la tienen mediante la Tecla de Atención
Cuando un usuario tiene autoridad para ingresar comandos (Limitar Posibilidades en *NO), utiliza para esto la línea de comandos presente en buena parte de los menúes y pantallas del AS/400. Justamente, una cualidad distintiva del OS/400 frente a otros entornos son los comandos WRK que preservan la línea de comandos.
Sin embargo, una vez iniciado otro tipo de tarea (prompts de comandos, pantallas de cancelaciones de programas, comandos tipo DSP, etc.), se pierde en estos casos la línea de comandos, aún cuando la entrada está desinhibida. Por ejemplo, si se está dentro de un DSPLOG y quiere ejecutar un WRKJOB para ver características adicionales de un trabajo, o está prompteando un CRTJOBD y no recuerda el nombre de una cola de salida, son todas situaciones donde acceder a la línea de comandos implicaría cancelar la tarea en curso para reiniciarla luego, perdiendo todo lo ejecutado hasta el momento.
Una buena alternativa para poder acceder a una línea de comandos desde pantallas que no la tienen y sin abandonar la tarea en curso, es posible utilizar la tecla de atención (no confundir con petición del sistema).
La tecla de atención tiene asociado un programa, para que se ejecute en el momento de presionarla, dejando en suspenso la tarea en ejecución. El programa invocado puede ser aquel que el usuario necesite, la llamada a un menú con funciones de uso frecuente o una línea de comandos en sí.
Al salir del programa de atención se retoma la tarea en curso.
No debe confundirse la tecla de atención con petición de sistema. Para presionar la tecla de atención, la pantalla debe estar desinhibida mientras que la petición de sistema puede invocarse aunque la pantalla esté ocupada. Sin embargo en la Petición de Sistema el menú visualizado es fijo, y para acceder a una línea de comandos sólo queda abrir una sesión alternativa, con la inversión de tiempo y recurso que esto conlleva.
Programa asociado a la tecla de atención: posibilidades
La tecla de atención proporciona la posibilidad de ejecutar un programa cuando se verifican dos condiciones: la pantalla está desinhibida y se presiona la tecla “Esc”. El “mapeo” de teclado de los emuladores más comunes asocia la tecla de atención con la tecla “Esc” o “Escape” de la PC.
De esta forma, la cadena de eventos sería la siguiente:
- Desde la pantalla que no posee línea de mandatos y con pantalla desinhibida, presionar la tecla de atención. Esta tecla tiene asociado un programa que abre línea de mandatos.
- Se obtiene la línea de comandos y se ejecuta el mandato deseado.
- Se regresa a la pantalla sin línea de comandos y se continúa con la tarea en cuestión.
Existen diferentes alternativas sobre cómo asociar un programa a la tecla de atención:
- A través del parámetro Programa de atención presente en los perfiles de usuarios.
- Una vez que el trabajo interactivo se ha iniciado, con el comando CL SETATNPGM.
Parámetro Programa de atención en los perfiles de usuario
Los perfiles de usuarios poseen el parámetro Programa de atención (palabra clave ATNPGM) donde se especifica el nombre del programa que se ejecutará. La siguiente pantalla muestra el prompt del mandato CHGUSRPRF (desde este comando aplicado sobre un determinado perfil de usuario, es posible ver y modificar el programa de atención establecido):
Los valores posibles para este parámetro son:
Nombre: Nombre calificado de un programa. Es necesario que se haga referencia al nombre de un objeto de tipo *PGM, sin importar el lenguaje. Si se desea invocar un menú, el mandato de llamada “GO bibl/menu” puede colocarse dentro de un programa CL.
*ASSIST: cuando este valor está especificado, se utiliza el menú Operational Assistant. Es equivalente a especificar el nombre de programa QEZMAIN de la biblioteca QSYS.
*SYSVAL: este valor es el default para cualquier perfil de usuario, y hace referencia al valor del sistema QATNPGM. El valor del sistema contiene, a su vez, el valor *ASSIST. Un cambio a este valor del sistema afecta a todos los usuarios que tienen *SYSVAL en este parámetro.
*NONE: no hay programa de atención especificado.
Si el cambio sobre este parámetro es realizado sobre un usuario activo, entrará en vigencia en el próximo inicio de sesión.
Comando SETATNPGM
Utilizando el parámetro Programa de atención, el usuario dispone desde el momento que inició el trabajo interactivo, de la posibilidad de invocarlo con sólo presionar la tecla “Esc”. Si durante la sesión interactiva se desea establecer otro programa distinto como programa de atención (o asociar uno en caso de no tenerlo) es posible “setearlo” utilizando el mandato SETATNPGM. El programa de atención establecido a través de este comando está asociado al nivel de petición en el cual se lo activó. Por ejemplo: si establezco un programa de atención con SETATNPGM desde la línea de comandos del PDM, al abandonar el PDM y llegar al MAIN, el programa de atención será el que estaba vigente cuando en el job se visualizó anteriormente el menú principal.
La siguiente pantalla muestra las posibilidades del mandato:
En la pantalla anterior, el parámetro Establecer tecla de atención (palabra clave SET) permite indicar si el programa del parámetro anterior se activará (*ON) o desactivará (*OFF) como programa de tecla de atención. Observar el siguiente cuadro para comprender alguno de sus usos:
(los círculos encierran el nombre del programa de atención vigente en cada caso):
El comando SETATNPGM puede interpretarse como una alteración temporal del programa de atención establecido por el perfil de usuario. La vigencia del “seteo” realizado por el mandato depende de si el mandato se lo ejecutó desde línea de comandos o dentro de un programa. En el primer caso, el efecto finaliza cuando se abandona la línea de mandatos con F3 o F12. Si el mandato está dentro de un programa, cuando el programa termina su ejecución.
Ejemplos de programas de atención
Los siguientes son ejemplos de programas que pueden asociarse a la tecla de atención:
- Programa QUSCMDLN de la biblioteca QSYS. Muestra una pequeña ventana con una línea de comandos. Es el invocado con F21 desde el SEU o con F9 desde el menú principal del Operational Assistant.
- Programa QCMD de la biblioteca QSYS. Si desde la pantalla Entrada de Mandatos se presiona F10, en la parte superior aparecen los comandos anteriormente ejecutados. Ubicándose sobre cualquiera de ellos y dando F9 puede “bajarse” el mandato a la línea de comandos.
- Puede generarse un menú a través de la opción correspondiente del SDA, y luego escribir un programa que lo invoque (GO a ese menú). El programa puede asociarse luego a la tecla de atención de alguna de las maneras vistas anteriormente.
Si el programa momentáneamente interrumpido tiene un bloqueo exclusivo sobre un objeto, el programa de atención, que corre en el mismo job, forma parte del trabajo que posee dicho bloqueo. Por lo tanto, no referirse a objetos bloqueados en el job interrumpido.
Para tener en cuenta...
- La tecla de atención no puede ser utilizada desde el menú de petición de sistema ni desde cualquiera de sus opciones. Tampoco está disponible desde la pantalla del mandato DSPMSG. Sin embargo, desde la pantalla de cancelación de un programa (Visualizar mensajes de programa), sí está habilitada.
- Los programas asociados a la tecla de atención no tienen la autoridad adoptada por el programa que estaba en proceso antes de que la tecla de atención fuera presionada.
- Si el programa de atención es el Operational Assistant, las tareas que desde allí se desarrollen corren en un job distinto. Utiliza una estructura de organización de trabajos llamada Trabajos de Grupo o Group Jobs, donde cada uno tiene su propio número de job, *LDA y joblog. Comparten, entre todos el área de datos *GDA. Los trabajos de grupo pueden distinguirtse en la pantalla del WRKACTJOB porque a la izquierda del nombre aparece el signo “+”.
- El menú Operational Assistant puede invocarse desde cualquier línea de comandos con GO ASSIST.
- Las opciones exhibidas por Operational Assistant son dependientes de las autorizaciones del perfil de usuario.
Copyright Teknoda S.A.
IMPORTANTE: “Notas técnicas de AS/400 - IBM i" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes IBM i - AS/400. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. NS iTech - Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos. |