| 1 | = Cómo crear un nuevo código de error y su mensaje asociado. = |
| 2 | Los códigos de errores se hayan definidos |
| 3 | * para la línea de comandos en /opt/opengnsys/client/etc/preinit/'''loadenviron.sh''' |
| 4 | * para la consola en la web del proyecto en branches/version1.0/admin/Sources/Clients/ogAdmClient/sources/'''ogAdmClient.h''' |
| 5 | |
| 6 | Los mensajes de error están en los ficheros de idiomas: /opt/opengnsys/client/etc/'''lang.XX_XX.conf.''' |
| 7 | |
| 8 | 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''' |
| 9 | |
| 10 | 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. |
| 11 | |
| 12 | == Para crear un nuevo código de error hemos de modificar todos estos ficheros: == |
| 13 | |
| 14 | Añadimos loadenviron.sh |
| 15 | {{{ |
| 16 | # Declaración de códigos de error. |
| 17 | export OG_ERR_FORMAT=1 # Formato de ejecución incorrecto. |
| 18 | export OG_ERR_NOTFOUND=2 # Fichero o dispositivo no encontrado. |
| 19 | ... |
| 20 | export OG_ERR_NUEVO=NUM # Mensaje de error. |
| 21 | }}} |
| 22 | |
| 23 | En el comentario ponemos el mismo mensaje que contenga la variable MSG_ERR_NUEVO. |
| 24 | |
| 25 | Añadimos a ogAdmClient.h |
| 26 | {{{ |
| 27 | // Tabla de errores de la ejecución de los scripts |
| 28 | char* tbErroresScripts[]={"Se han generado errores desconocidos. No se puede continuar la ejecución de este módulo",\ |
| 29 | "001-Formato de ejecución incorrecto.",\ |
| 30 | "002-Fichero o dispositivo no encontrado",\ |
| 31 | "NUM-Mensaje de error.",\ |
| 32 | "Error desconocido " |
| 33 | }; |
| 34 | #define MAXERRORSCRIPT NUM_ULTIMO // Error máximo cometido |
| 35 | }}} |
| 36 | |
| 37 | Por coherencia entre la línea de comando y la consola web debemos utilizar el mismo código de error los dos archivos anteriores. |
| 38 | |
| 39 | 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: |
| 40 | {{{ |
| 41 | "NUM_NOEXISTE-Error no definido",\ |
| 42 | }}} |
| 43 | |
| 44 | Hay que compilar de nuevo el cliente de opengnsys para que contenga el mensaje de error que acabamos de definir. |
| 45 | |
| 46 | Añadimos en todos los ficheros de idioma: lang.es_ES.conf, lang.ca_ES.conf y lang.en_GB.conf. |
| 47 | {{{ |
| 48 | MSG_ERR_FORMAT="Formato de ejecución incorrecto" |
| 49 | MSG_ERR_NOTFOUND="Fichero o dispositivo no encontrado" |
| 50 | ... |
| 51 | MSG_ERR_NUEVO="Mensaje de error." |
| 52 | }}} |
| 53 | |
| 54 | Para relacionar el código de error con su mensaje en el archivo System.lib, dentro de la función ogRaiseError incluimos: |
| 55 | {{{ |
| 56 | function ogRaiseError () { |
| 57 | ... |
| 58 | case "$CODE" in |
| 59 | $OG_ERR_FORMAT) MSG="$MSG_ERR_FORMAT \"$2\"" ;; |
| 60 | $OG_ERR_NOTFOUND) MSG="$MSG_ERR_NOTFOUND \"$2\"" ;; |
| 61 | ... |
| 62 | $OG_ERR_NUEVO) MSG="$MSG_ERR_NUEVO \"$2\"" ;; |
| 63 | *) MSG="$MSG_ERR_GENERIC"; CODE=$OG_ERR_GENERIC ;; |
| 64 | esac |
| 65 | }}} |