Hola, buenos días
Cuando queremos eliminar una persona, (probamos con una creada de 0 sin datos asociados) nos sale el cartel: “Error de concurrencia en la edición de los datos.Mientras Ud. editaba esta información, la misma fue modificada por alguien más. Para garantizar consistencia sólo podrá guardar cambios luego de reiniciar la edición”
En los log aparece lo que sigue, no se si tiene que ver que primero borra el documento, pero después consutla ese registro para poder eliminar la persona y ahí se hace el quilombo.
Paso log:
[DEBUG][toba] AP_TABLA: [mdp_personas_documentos]
registro: 0 - DELETE FROM mdp_personas_documentos WHERE documento = ‘142927’ AND persona = ‘132887’ AND pais_documento = ‘54’ AND tipo_documento = ‘0’ AND nro_documento = ‘12121212’ AND fecha_otorgamiento IS NULL AND fecha_vencimiento IS NULL;
[DEBUG][toba] TABLA: [mdp_personas_documentos]
RESET!!
[DEBUG][toba] TABLA: [mdp_personas_documentos]
Se resetea el cursor
[DEBUG][toba] TABLA: [mdp_personas_foto]
RESET!!
[DEBUG][toba] TABLA: [mdp_personas_foto]
Se resetea el cursor
[DEBUG][toba] TABLA: [int_pv_usuarios]
RESET!!
[DEBUG][toba] TABLA: [int_pv_usuarios]
Se resetea el cursor
[DEBUG][toba] TABLA: [mdp_personas]
Se resetea el cursor
[DEBUG][toba] AP_TABLA: [mdp_personas]
registro: 0 - DELETE FROM mdp_personas WHERE documento_principal = ‘142927’ AND uid_arai IS NULL AND persona = ‘132887’ AND apellido = ‘prueba’ AND nombres = ‘prueba’ AND sexo = ‘F’ AND fecha_nacimiento = ‘1982-05-30’ AND localidad_nacimiento IS NULL AND nacionalidad = ‘1’ AND fecha_ingreso_pais IS NULL AND pais_origen IS NULL AND usuario = ‘12121212’ AND clave IS NULL AND fecha_vencimiento_clave IS NULL AND autenticacion = ‘md5’ AND bloqueado = ‘0’ AND parametro_a IS NULL AND apellido_elegido IS NULL AND nombres_elegido IS NULL AND recibe_mensajes_x_mail = ‘1’ AND pertenece_pueblo_originario IS NULL AND pueblo_originario IS NULL AND pueblo_originario_otro IS NULL AND token IS NULL AND email_valido = ‘0’ AND id_imagen IS NULL AND email_temporal IS NULL AND tipo_usuario_inicial IS NULL;
[DEBUG][toba] ************ ABORTAR transaccion (toba_3_3@postgres116) ****************
[DEBUG][toba] ************ ABORTAR transaccion (toba_3_3@postgres116) ****************
[INFO][guarani] El manejador de entidades: RESETEAR
[INFO][guarani] ENTIDAD: Resetear
[DEBUG][toba] TABLA: [int_pv_usuarios]
RESET!!
[ERROR][guarani] Error de concurrencia en la edición de los datos.
Mientras Ud. editaba esta información, la misma fue modificada por alguien más. Para garantizar consistencia sólo podrá guardar cambios luego de reiniciar la edición.
Probé creando una persona de cero, guarde, luego le elimine el DNI y seguido elimine la persona, pero no me dio error “Error de concurrencia en la edición de los datos”.
¿nos podrías detallar el caso (si es posible envía capturas)?
¿nos podrías enviar el log completo? En vendor/siu-toba/framework/php/nucleo/componentes/persistencia/toba_ap_tabla_db.php función evt__perdida_sincronizacion guarda info en los logs.
¿tenes un pgAdmin o algún otro programa conectado a la DB de SIU-Guaraní?
Si es posible volve a probar cerrando previamente dichas conexiones a la DB.
Probé generando el mismo caso de ustedes, pero no pude reproducir el error, dejo captura.
La eliminación de la persona se hace en la función evt__eliminar de la clase php/operaciones/matriculas/personas/ci_nav_personas.php, y va invocando funciones de la clase php/nucleo/matriculas/personas/cn_ent_personas.php, finalmente se llama a la función eliminar de php/nucleo/_lib/cn_manejador_entidad_nucleo.php, ¿no tienen nada personalizado de eso?
¿que ocurre si ejecutan la siguiente query?
SELECT * FROM pg_stat_activity WHERE datname = 'db_guarani' AND state = 'active';
Buenos días,
Estoy trabajando con Guaraní 3 - Gestión en la versión 3.20.2.
Me pasa algo similar, dí de alta una persona, la inscribí a una propuesta formativa, realicé la baja de la inscripción de ese alumno en la propuesta formativa (se realizó la baja pues el alumno no tenía actividad en el sistema ni historia académica), luego intenté eliminar a la persona en cuestión y me sale un error de concurrencia, adjunto figura con el nombre ErrorConcurrencia.png. No tengo abierto el pgadmin para consultar la base de datos.
Adjunto imagen log.png con la captura del error (no tenemos personalizaciones).
Podes ver que campo hace que de “Error de concurrencia en la edición de los datos” de la siguiente forma:
En la función evt__perdida_sincronizacion de vendor/siu-toba/framework/php/nucleo/componentes/persistencia/toba_ap_tabla_db.php antes de que ejecute throw new toba_error_usuario($mensaje_usuario, $mensaje_debug); agrega lo siguiente:
toba::logger()->crit("Error de concurrencia - mensaje de debug:");
toba::logger()->crit($mensaje_debug);
throw new toba_error_usuario($mensaje_usuario, $mensaje_debug);
Luego cuando intentes eliminar la persona te debería registrar algo como sigue en los logs (archivo instalacion/i__desarrollo/p__guarani/logs/sistema.log):
[CRITICAL][guarani] Error de concurrencia - mensaje de debug:
[CRITICAL][guarani] <p><b>Tabla:</b> mdp_personas</p><p><b>Diff de datos:</b> Cambios en fila 0 <ul><li>tipo_usuario_inicial: tenía el valor 'Preinscripcion' y ahora tiene NULL </li></ul></p><p><b>SQL:</b> DELETE FROM mdp_personas WHERE arai_identificador_sso IS NULL AND identidad_genero IS NULL AND identidad_genero_otro IS NULL AND persona = '85' AND apellido = 'Apellido ticket 45100' AND nombres = 'Nombre ticket 45100' AND sexo = 'F' AND fecha_nacimiento = '1935-02-15' AND localidad_nacimiento IS NULL AND nacionalidad = '1' AND fecha_ingreso_pais IS NULL AND pais_origen IS NULL AND usuario = '45100' AND clave = '$2a$10$/kzdvUSk370yx2OHCY7uqekarxgUbFUlynlXUvPjry.Xx1ppdgxfe' AND fecha_vencimiento_clave IS NULL AND autenticacion = 'md5' AND bloqueado = '0' AND parametro_a IS NULL AND apellido_elegido IS NULL AND nombres_elegido IS NULL AND recibe_mensajes_x_mail = '1' AND pertenece_pueblo_originario IS NULL AND pueblo_originario IS NULL AND pueblo_originario_otro IS NULL AND token IS NULL AND email_valido = '0' AND id_imagen IS NULL AND email_temporal IS NULL AND tipo_usuario_inicial = 'Preinscripcion' AND arai_uuid IS NULL;</p>
Crea un GDS y anota el numero del mismo a este foro, si estas en la versión 3.18.1 seguramente se soluciona con el ticket #33727 que salio en la versión 3.18.2.
Igualmente estaría bueno probar la Respuesta #10 para saber que campo esta causando el problema de concurrencia.
[CRITICAL][guarani] Error de concurrencia - mensaje de debug:
[CRITICAL][guarani]
Tabla: mdp_personas
Diff de datos: Cambios en fila 0
documento_principal: ten�a el valor ‘59564’ y ahora tiene NULL
SQL: DELETE FROM mdp_personas WHERE documento_principal = ‘59564’ AND uid_arai IS NULL AND persona = ‘32228’ AND apellido = ‘----’ AND nombres = ‘----’ AND sexo = ‘M’ AND fecha_nacimiento = ‘2000-01-01’ AND localidad_nacimiento IS NULL AND nacionalidad = ‘1’ AND fecha_ingreso_pais IS NULL AND pais_origen IS NULL AND usuario = ‘12312312’ AND clave IS NULL AND fecha_vencimiento_clave IS NULL AND autenticacion = ‘md5’ AND bloqueado = ‘0’ AND parametro_a IS NULL AND apellido_elegido IS NULL AND nombres_elegido IS NULL AND recibe_mensajes_x_mail = ‘1’ AND pertenece_pueblo_originario IS NULL AND pueblo_originario IS NULL AND pueblo_originario_otro IS NULL AND token IS NULL AND email_valido = ‘0’ AND id_imagen IS NULL AND email_temporal IS NULL AND tipo_usuario_inicial IS NULL;
[ERROR][guarani] Error de concurrencia en la edici�n de los datos.
Mientras Ud. editaba esta informaci�n, la misma fue modificada por alguien m�s. Para garantizar consistencia s�lo podr� guardar cambios luego de reiniciar la edici�n.
Hola buenas tardes. Estamos usando la version 3.20.2 y tenemos el mismo error al querer eliminar un usuario habiendolo inscripto en una propuesta, y luego se lo dió de baja en dicha propuesta. El log indica lo siguiente:
"
Tabla: mdp_personas
Diff de datos: Cambios en fila 0
tipo_usuario_inicial: tenía el valor ‘Preinscripcion’ y ahora tiene NULL
SQL: DELETE FROM mdp_personas WHERE uid_arai IS NULL AND identidad_genero = ‘1’ AND identidad_genero_otro IS NULL AND persona = ‘11414’ AND apellido = ‘—’ AND nombres = ‘—’ AND sexo = ‘F’ AND fecha_nacimiento = ‘1999-12-14’ AND localidad_nacimiento = ‘1’ AND nacionalidad = ‘1’ AND fecha_ingreso_pais IS NULL AND pais_origen IS NULL AND usuario = ‘—’ AND clave = ‘—’ AND fecha_vencimiento_clave IS NULL AND autenticacion = ‘md5’ AND bloqueado = ‘0’ AND parametro_a IS NULL AND apellido_elegido IS NULL AND nombres_elegido = ‘—’ AND recibe_mensajes_x_mail = ‘1’ AND pertenece_pueblo_originario = ‘N’ AND pueblo_originario IS NULL AND pueblo_originario_otro IS NULL AND token IS NULL AND email_valido = ‘0’ AND id_imagen IS NULL AND email_temporal IS NULL AND tipo_usuario_inicial = ‘Preinscripcion’;