wiki:logCrearCodigo

Version 2 (modified by trac, 7 years ago) (diff)

--

Cómo crear un nuevo código de error y su mensaje asociado.

Los códigos de errores se hayan definidos

  • para la línea de comandos en /opt/opengnsys/client/etc/preinit/loadenviron.sh
  • para la consola en la web del proyecto en branches/version1.0/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.h

Los mensajes de error están en los ficheros de idiomas: /opt/opengnsys/client/etc/lang.XX_XX.conf.

La función que devuelve el mensaje de error de un código es ogRaiseError y se haya definida en /opt/opengnsys/client/lib/engine/bin/System.lib

Los códigos de error tiene el comienzan con el prefijo OG_ERR_ y los mensajes por MSG_ERR_ la útima parte será igual para el código de error y el mensaje que le corresponde.

Para crear un nuevo código de error hemos de modificar todos estos ficheros:

Añadimos loadenviron.sh

# Declaración de códigos de error.
export OG_ERR_FORMAT=1          # Formato de ejecución incorrecto.
export OG_ERR_NOTFOUND=2        # Fichero o dispositivo no encontrado.
...
export OG_ERR_NUEVO=NUM         # Mensaje de error.

En el comentario ponemos el mismo mensaje que contenga la variable MSG_ERR_NUEVO.

Añadimos a ogAdmClient.h

// Tabla de errores de la ejecución de los scripts
char* tbErroresScripts[]={"Se han generado errores desconocidos. No se puede continuar la ejecución de este módulo",\
                "001-Formato de ejecución incorrecto.",\
                "002-Fichero o dispositivo no encontrado",\
                "NUM-Mensaje de error.",\
                "Error desconocido "
        };
        #define MAXERRORSCRIPT NUM_ULTIMO              // Error máximo cometido

Por coherencia entre la línea de comando y la consola web debemos utilizar el mismo código de error los dos archivos anteriores.

En ogAdmClient.h no puede haber saltos en la numeración de los códigos. En caso de no existir algún código intermedio en loadenviron.sh se le asigna un mensaje genérico:

                "NUM_NOEXISTE-Error no definido",\

Hay que compilar de nuevo el cliente de opengnsys para que contenga el mensaje de error que acabamos de definir.

Añadimos en todos los ficheros de idioma: lang.es_ES.conf, lang.ca_ES.conf y lang.en_GB.conf.

MSG_ERR_FORMAT="Formato de ejecución incorrecto"
MSG_ERR_NOTFOUND="Fichero o dispositivo no encontrado"
...
MSG_ERR_NUEVO="Mensaje de error."

Para relacionar el código de error con su mensaje en el archivo System.lib, dentro de la función ogRaiseError incluimos:

function ogRaiseError () {
...
case "$CODE" in
     $OG_ERR_FORMAT)     MSG="$MSG_ERR_FORMAT \"$2\"" ;;
     $OG_ERR_NOTFOUND)   MSG="$MSG_ERR_NOTFOUND \"$2\"" ;;
     ...
     $OG_ERR_NUEVO)      MSG="$MSG_ERR_NUEVO \"$2\"" ;;
     *)                  MSG="$MSG_ERR_GENERIC"; CODE=$OG_ERR_GENERIC ;;
esac