Parseo de Mensajes de Error
Funcionamiento
Este esquema trabaja recuperando los metadatos de tablas/campos agregados la base de datos y luego armando un mensaje que trate de ser más comprensible para el usuario final de la aplicación. Para ello es importante:
Definir comentarios para cada campo, tabla, pk y fk de la base de negocio. Si el comentario no existe entonces se utilizará directamente el nombre del elemento en cuestión. Los comentarios se definen mediante el uso de alguna herramienta CASE (ej. pgadmin3) o mediante el comando:
"COMMENT ON COLUMN tabla_x.campo_x IS 'comentario';"
Definir un método para cada
sql\_state
que se quiera capturar. Estos metodos deberan devolver el mensaje parseado para ser mostrado al cliente. Ej de definición:function parsear_sqlstate_23503($accion, $sql, $mensaje)
Adicionalmente se pueden definir metodos auxiliares a este:
- Definir un método que armara el mensaje en cuestión uniendo todos los trozos.
- Definir un método que recupere los datos de los comentarios para los objetos involucrados.
Es importante notar que el manejador de errores usa una conexión alternativa a la base de datos y no la conexión principal sobre la que opera el sistema.
Activación
El parseo de los mensajes de error se puede activar de dos maneras distintas a partir de Toba 1.4.0:
- Haciendo uso del check Parsea Errores dentro del Editor de fuentes de datos
- Activándolo manualmente desde una subclase definida para la fuente de datos en cuestión:
<?php
class toba_referencia_fuente_datos extends toba_fuente_datos
{
/**
* Antes de conectarse a la base de datos, le digo que la misma posee esquema de auditoría
* De esta forma se creará automáticamente la tabla temporal y se asignará el usuario.
*/
function pre_conectar()
{
$this->set_fuente_parsea_errores(true);
}
}
?>