Hola a todos:
Feliz año 2006!!!!!!!!!
Referente al tema que planteas, nosotros, en su momento utilizamos:
ENVIARMSG: IF COND(&BACIN *EQ '1') THEN(DO) /* si proceso +
interactivo */
SNDPGMMSG MSG(&SAL) TOPGMQ(*EXT) MSGTYPE(*INQ) KEYVAR(&B)
ENDDO
IF COND(&BACIN *EQ '0') THEN(DO) /* si proceso +
batch */
SNDPGMMSG MSG(&SAL) TOMSGQ(QSYSOPR) MSGTYPE(*INQ) +
KEYVAR(&B)
ENDDO
RCVMSG MSGTYPE(*RPY) MSGKEY(&B) WAIT(*MAX) MSG(&RESP)
IF COND(((&RESP *EQ 'c') *OR (&RESP *EQ C))) +
THEN(GOTO CMDLBL(ERROR))
IF COND(((&RESP *EQ 'g') *OR (&RESP *EQ G))) +
THEN(GOTO CMDLBL(BIEN))
ELSE CMD(GOTO CMDLBL(ENVIARMSG))
Teníamos en cuenta si era un trabajo batch o interactivo, para enviar el mensaje a una cola u otra. (&BACIN)
Al recuperar la respuesta, en ésta podian teclear el carácter en mayúsculas o minúsculas, y debíamos tenerlo presente.
Espero pueda aclararte algo, pero básicamente es lo mismo que has hecho.
Saludos.
Toni Tort
Sistemes d'Informació.
Vives Vidal, Vivesa, S.A
| SISTEMAS DEPARTAMENTALES
<[EMAIL PROTECTED]>
Sent by: [EMAIL PROTECTED] 29/12/2005 09:33
|
|
--- Recibido de BBVINFOR.C014439A/A928263 SISTEMAS DEPART* 29-12-05 09.33
-> [email protected]
Hola a todos. Antes de nada, desearos felices fiestas y todo lo mejor para
el 2006.
A ver si nos podeis echar una mano con un problema que nos ha surgido.
Se trata de recibir la contestación a un mensaje enviado previamente tipo
*INQ (consulta). El esquema que seguimos en el CL es una copia exacta de lo que
viene en el manual "CL PROGRAMING Version 5", el cual os transcribo a
continuación:
SNDMSG:SNDPGMMSG MSG('Account number ' *CAT &ACCTNO *CAT 'is +
not valid. Do you want to cancel the update +
(Y or N)?') TOMSGQ(&MSGQLIB/&MSGQ) MSGTYPE(*INQ) +
KEYVAR(&MSGKEY)
RCVMSG MSGQ(*PGMQ) MSGTYPE(*RPY) MSGKEY(&MSGKEY) +
MSG(&REPLY) WAIT(*MAX)
IF (&REPLY *EQ 'Y') THEN(RETURN)
ELSE IF (&REPLY *NE 'N') THEN(GOTO SNDMSG)
Ahora os comento el problema en cuestión:
PROBLEMA:
En este caso concreto el sistema no hace caso de WAIT(*MAX) y lo convierte en
WAIT(0), es decir el tiempo de espera es cero con lo cual el programa se mete en
un bucle que nos llena el log y no nos permite contestarlo. En la ayuda hemos
comprobado que el sistema lo maneja así.
Sin enbargo, este programa lleva mucho tiempo funcionando y antes no actuaba
así, antes se quedaba en una espera infinita hasta que se contestara el mensaje,
que es lo que pretendemos. Estamos en V5R2, no sabemos se esto ha sido algún
cambio en las versiones.
La solución que hemos dado ha sido poner un tiempo de espera determinado WAIT
(1800) y nos sirve, pero no es esto exactamente lo que queremos, queremos una
espera infinita y pensamos que el sistema debe tener alguna solución para esto.
A ver si alguno habeis tenido esta misma casuística y nos podeis hacer algún
comentario.
Gracias de antemano y un saludo.
====================================================================
........................... DISCLAIMER .............................
This message and its attachments are intended exclusively for the
named addressee. If you receive this message in error, please
immediately delete it from your system and notify the sender. You
may not use this message or any part of it for any purpose.
The message may contain information that is confidential or
protected by law, and any opinions expressed are those of the
individual sender. Internet e-mail guarantees neither the
confidentiality nor the proper receipt of the message sent.
If the addressee of this message does not consent to the use
of internet e-mail, please inform us inmmediately.
====================================================================
......................... AVISO LEGAL ............................
La presente comunicación y sus anexos tiene como destinatario la
persona a la que va dirigida, por lo que si usted lo recibe
por error debe notificarlo al remitente y eliminarlo de su
sistema, no pudiendo utilizarlo, total o parcialmente, para
ningún fin. Su contenido puede tener información confidencial o
protegida legalmente y únicamente expresa la opinión del
remitente. El uso del correo electrónico vía internet no
permite asegurar ni la confidencialidad de los mensajes
ni su correcta recepción. En el caso de que el
destinatario no consintiera la utilización del correo electrónico,
deberá ponerlo en nuestro conocimiento inmediatamente.
===================================================================
__________________________________________________
Forum.HELP400 es un servicio más de NEWS/400.
© Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________
Para darte de baja visita la siguente URL:
http://coyote.combios.es/mailman/listinfo/forum.help400
