Error en Altas de Bienes al realizar migración del sist,propio (SOLUCIONADO)

Hola a todos
Estuvimos intentando realizar la migración de nuestro sistema “legado” de Bienes Patrimoniales a Diaguita (Bienes Patrimoniales)
Para ello seguí otras experiencias encontradas en el foro. Luego de efectuar la migración surgieron algunos errores:

Trabajamos sobre la versión: Diaguita 2.3.0
La tablas que migramos fueron: scp_bienes_patrimoniales y ubicaciones_fisicas.

Para poder hacer el insert en la tabla scp_bienes_patrimoniales tuvimos que asignarles un valor y crear algunos registros que estaban relacionados con otras tablas. Con el fin de posteriormente modificar cada valor según las tablas completadas luego.
Esos campos son los siguientes:
id_catalogo_bien_patrimonial = 99
id_empleado_responsable = 99
id_ubicación_fisica = 99
id_motivo_alta = 7 (“migración”)

Los contadores que dimos de alta para empezar a trabajar son: altas de bienes patrimoniales, bien patrimonial y solicitud de transferencia de bienes patrimoniales.

El error se genera al intentar autorizar un alta de bien patrimonial.
Cuando queremos agregar un bien patrimonial tenemos el error que figura más abajo, no logramos identificar con que tabla está chocando.
No se puede autorizar el bien, y no hay un contador de estado de bienes para corregirlo si es que es ese el problema.

http://fotos.subefotos.com/ce433866f601485f240b8ab412869a71o.png

http://fotos.subefotos.com/5af4503fd0fd0147e5f5a222200f017co.png

Hola Marcelo estoy viendo que tenes un problema con las secuencias deberías chequer cual es la próxima de la tabla scp_bienes_patrimoniales.

Hola Diego, como estás? Estoy siguiendo este problema que consultó Marcelo desde la UNTREF. Te hago un par de preguntas para entender mejor.

Cuando te referís a las secuencias, a cual de lo indices te referís? Configurando el contador no es suficiente? Hay que configurarlo para que sea correlativo o se pueden saltear números? Porque en la importación de datos salteamos algunos números. Y dejamos un rango reservado para migrar algunos bienes más posteriormente.

Muchas gracias

Saludos!

Leandro

Cuando te referís a las secuencias, a cual de lo indices te referís?
Índice me refiero al de la tabla en la base de datos.
Configurando el contador no es suficiente?
Hay que configurarlo para que sea correlativo o se pueden saltear números? Porque en la importación de datos salteamos algunos números. Y dejamos un rango reservado para migrar algunos bienes más posteriormente.
la correlación es cuando das de alta bienes desde la aplicación si por ej. parte del 1000 si dejaste los primeros 999 reservados para migrar .

Hola Diego, muchas gracias por la respuesta. Voy punto por punto.

Particularmente me refiero al campo “numero_patrimonial” Que es donde no tenemos todos los números consecutivos.

Pero también ahora que miro bien la tabla el campo “id_bien_patrimonial” empieza con el registro número “4”. El resto de los registros en ese campo tiene todos los números consecutivos.

¿Puede ser que el problema lo tenga con el campo “id_bien_patrimonial” no?

Saludos!

No importa con cual comience sino que la secuencia continué con el ultimo valor del id_bien_patrimonial, cualquier cosa pásame el log de la aplicación así lo vemos con mas detalle.

Muchas gracias

Recien empiezo con Diaguita… donde están los logs de la aplicación?

Saludos!

El log de la aplicación se encuentra en la siguiente ruta:
ruta_de_tu_instalacion/diaguita/instalacion/i__produccion/p__diaguita/logs/sistema.log

Buenos días!
Acá copio la info del log donde está el error y claramente se trata del campo “id_bien patrimonial”. Lo que no entiendo es porque utiliza ese id=13 al momento de autorizar estos bienes. Evidentemente no está teniendo en cuenta los bienes que migramos, más de 13 mil bienes. ¿Como puedo solucionarlo? Muchas gracias!
Saludos!

[ERROR][toba] toba_error_db:

SQLSTATE: db_23505

CODIGO: 7

MENSAJE: SQLSTATE[23505]: Unique violation: 7 ERROR: llave duplicada viola restricción de unicidad «scp_bienes_patrimoniales_pkey»
DETAIL: Ya existe la llave (id_bien_patrimonial)=(13).

SQL: INSERT INTO scp_bienes_patrimoniales ( fecha_incorporacion, numero_anterior, titular_bien_tercero, id_area_responsable, id_ubicacion_fisica, factura_fecha, factura_numero, debe_amortizarse, meses_amortizados, valor_bien, vida_util, amortizacion_acumulada, valor_residual, fecha_amortizacion_ultima, id_catalogo_bien_patrimonial, numero_patrimonial, descripcion_bien, fecha_alta, id_motivo_alta, id_estado_bien, orden_compra, expediente, persona, fecha_baja, observaciones, id_imagen, id_motivo_baja, id_alta_detalle, id_alta, id_solicitud_baja, tipo_de_documentacion, documento_numero, documento_ejercicio, numero_serie, id_empleado_responsable, id_empleado_responsable_uso )
VALUES (‘2016-09-01’, DEFAULT, DEFAULT, ‘3’, ‘46’, ‘2016-08-23’, ‘0005-00001635’, ‘S’, ‘0’, ‘14520’, ‘10’, ‘0’, ‘0’, DEFAULT, ‘10006179’, ‘00030059’, ‘MatteBox Sympla Manfrotto MVA512W’, ‘2016-11-14’, ‘5’, ‘2’, ‘3442’, ‘501/16’, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, ‘2’, ‘2’, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, ‘2’, DEFAULT); – toba_log: 254


Hola Leandro
Deberías chequear cual es tu próxima secuencia de la tabla se consulta de la siguiente manera.

select last_value from diaguita.sq_scp_bienes_patrimoniales

y si te dice un numero inferior a tus 13000 bienes deberias utilizar el siguiente linea de sql para actualizarla.


SET search_path=diaguita;
SELECT setval(‘sq_scp_bienes_patrimoniales’, (SELECT count(*)+1 FROM scp_bienes_patrimoniales));

Buenisimo! Después de correr esa sentencia sql, pudimos autorizar los bienes.

Muchas gracias Diego

De nada Leandro, buenísimo que se haya podido solucionar el problema.