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
