martes, 7 de octubre de 2008

Modificar menu PetSis

Para modificar el menú de Petición de Sistema (tecla PetSis) hemos de cambiar el mensaje CPX2313 para modificar los mandatos que llama el sistema cuando se pulsa esta tecla.
La opción "1. Visualizar inicio de sesión para trabajo alternativo" no se puede modificar, o sea que la primera opción que se puede modificar es "2. Finalizar petición anterior " que corresponde al mandato ENDQRS del texto del mensaje.
El valor por omisión del mensaje se puede ver con el mandato:
DSPMSGD RANGE(CPX2313) MSGF(QSYS/QCPFMSG)




Por ejemplo, Como modificar la opción "3.Visualizar trabajo actual" para utilizar el comando WRKJOB, en lugar del DSPJOB, y de paso disponer de una línea de mandatos, pero solo según el tipo de usuario, ya que no queremos que ningún usuario normal tenga acceso a la línea de mandatos en mitad de una aplicación.

Para ello seguiremos el siguiente procedimiento:
  1. Crearemos el programa CL DSPJOB2CL
  2. Crearemos el mandato DSPJOB2 que llama al programa DSPJOB2CL
  3. Este programa comprueba el tipo de usuario, si es *SECOFR o *PGMR o *SYSOPR ejecuta el mandato WRKJOB, en caso contrario ejecuta el mandato DSPJOB (como hasta ahora).
  4. Finalmente cambiamos el texto de mensaje CPX2313 para que ejecute DSPJOB2 en lugar de DSPJOB: CHGMSGD MSGID(CPX2313) MSGF(QSYS/QCPFMSG) MSG('ENDRQS DSPJOB2 DSPMSG SNDMSG SIGNOFF DSPMSG DSCJOB DSPWSUSR ENDRDBRQS ')
  5. ¡¡ Respetar espacios en blanco en el cuerpo del mensaje!!

Notas:
  • El código de DSPJOB2 lo podemos bajar de aquí.
  • Si tenemos lenguajes secundarios instalados, deberemos realizar el mismo cambio para todas las bibliotecas QSYSnnnn.
  • Deberemos revisar este mensaje cada vez que actualicemos el sistema operativo, o que alguna ptf modifique el archivo de mensajes QCPFMSG.
Publicar un comentario