Efectivamente, Alberto. No obstante ten en cuenta varias cosas:

1� No todos los c�digos de operaci�n admiten el extensor (E).
2� No son incompatibles la *PSSR y otra rutina de control de errores que t�
te definas para controlar los %STATUS.

Por tanto, podr�as utilizar los extensores (E) en algunas sentencias,
desvi�ndolos incluso a diferentes rutinas de control dependiendo del punto
en el que est�s del programa, y adem�s incorporar la *PSSR para controlar
otros errores.

Saludos.

Juan Carlos

> -----Mensaje original-----
> De:   Alberto [SMTP:[EMAIL PROTECTED]]
> Enviado el:   martes, 28 de enero de 2003 9:27
> Para: [EMAIL PROTECTED]
> Asunto:       RE: %error y %status <correcci�n>
> 
> Hola.
> O sea, que si no entiendo mal, en vez de definir en la hoja 'F'una
> subrutina
> de error a nivel de archivo, o coger la *pssr a nivel de programa,ahora
> poniendo el extensor (e)en la sentencia 'sospechosa' y luego el If %error
> y
> mirando el valor del %status, se pueden controlar los errores de forma
> individualizada.Es esto �no?
> 
> -----Mensaje original-----
> De: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]En nombre de Fernando P�rez
> Enviado el: martes 28 de enero de 2003 9:02
> Para: '[EMAIL PROTECTED]'
> Asunto: RE: %error y %status <correcci�n>
> 
> 
> La mitad de mis neuronas a�n no han despertado :)
> 
> Para que el programa no casque y puedas utilizar %Error, has de a�adir el
> extensor (E) en la sentencia que 'se sospecha' que pueda generar el error
> (el if %error ha de ser la siguiente l�nea de c�digo). En %status se
> devuelve informaci�n adicional sobre el tipo de error que se ha producido.
> 
> Un ejemplo del manual:
> 
> C EXFMT(E) INFILE
> C IF %ERROR
> C EXSR CheckError
> C ENDIF
> C ...
> *-------------------------------------------------------------------
> * CheckError: Subroutine to process a file I/O error
> *-------------------------------------------------------------------
> C CheckError BEGSR
> C SELECT
> C WHEN %STATUS < 01000
> * No error occurred
> C WHEN %STATUS = 01211
> * Attempted to read a file that was not open
> C EXSR InternalError
> C WHEN %STATUS = 01331
> * The wait time was exceeded for a READ operation
> C EXSR TimeOut
> C WHEN %STATUS = 01261
> * Operation to unacquired device
> C EXSR DeviceError
> C WHEN %STATUS = 01251
> * Permanent I/O error
> C EXSR PermError
> C OTHER
> * Some other error occurred
> C EXSR FileError
> C ENDSL
> C ENDSR
> 
> Saludos.
> 
> Fernando P�rez.
> Cer�mica Saloni. Dpto. Sistemas
> <mailto:[EMAIL PROTECTED]>
> 
> 
> -----Mensaje original-----
> De: Fernando P�rez [mailto:[EMAIL PROTECTED]]
> Enviado el: martes, 28 de enero de 2003 8:53
> Para: '[EMAIL PROTECTED]'
> Asunto: RE: %error y %status
> 
> 
> Hola.
> 
> Hasta donde yo se, hay pocas similitudes entre %error y la forma en que se
> gestionaban los errores en RPG 3. En RPG ILE, %error simplemente te
> devuelve
> si se ha producido un error en la sentencia anterior, evitando adem�s que
> casque el programa. No se indica la contestaci�n al mensaje (*getin, ...),
> ya que �ste no se produce. Dentro del if %error puedes poner el c�digo que
> trate el problema (mostrar mensaje al usuario, reintentar la operaci�n
> E/S,
> terminar el programa ...).
> 
> Desconozco si hay alguna manera de indicar a nivel de todo el programa la
> acci�n a realizar en caso de error (%error solo se refiere a la sentencia
> anterior a donde lo especifiques).
> 
> 
> 
> 
> � Publicaciones Help400, S.L. - Todos los derechos reservados
> http://www.help400.es
> _____________________________________________________
> 
> Para darte de baja, env�a el mensaje resultante de pulsar
> mailto:[EMAIL PROTECTED]?body=LEAVE
> 
> _____________________________________________________
> 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, env�a el mensaje resultante de pulsar
> mailto:[EMAIL PROTECTED]?body
> 
> 
> _____________________________________________________
> 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, env�a el mensaje resultante de pulsar
> mailto:[EMAIL PROTECTED]?body=LEAVE

_____________________________________________________
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, env�a el mensaje resultante de pulsar
mailto:[EMAIL PROTECTED]?body=LEAVE

Responder a