[RESPONDIDO] UNPA_ERROR AL SINCRONIZAR PILAGA CON ARAI

Leo, para continuar con el problema planteado en el foro http://foro.comunidad.siu.edu.ar/index.php?topic=10741.0, te adjunto el log de postgres que se genera cuando intentamos sincronizar pilaga con arai.

Muchas gracias por la ayuda!!

Saludos
Paola
UNPA


postgresql-9.1-main.log.zip (65.9 KB)

Por lo visto en el log hay diferencias en los datos de las tablas sau_rt_condiciones y sau_rt_conceptos de las BDs diaguita, pilaga y arai.
Estas tablas tienen que tener los mismos datos en las tres bases.

Para solucionar esto tendrías que ver cuales son las diferencias y ajustar el script que le pasé a nicodemo para copiar los datos faltantes en la base que corresponda (la lógica es la misma, solo tendrías que poner los datos que estén faltando en cada BD).

Una vez que tengas los datos iguales en las tres BD (para las dos tablas mencionadas) volver a ejecutar la sincronización inicial para ver si el resto de las tablas maestras no tienen diferencias.

Hola Leo!
1- Quizas me exprese mal respecto a los scripts… Los scripts que yo baje son los que vos le pasaste para replicar los datos que tenes en pilaga en arai y en diaguita, donde no hace referencia a datos especificos de la institución sino que detalla los inserts que debemos ejecutar. La duda que yo tenia es que quizas esos scripts usaban una estructura de datos que en la ultima versión de alguno de los sistemas quizas haya cambiado, suponete la tabla sau_rt_condiciones tiene un nuevo campo, por ende el scritp que inserta en esta tabla debiera modificarse y agregar el nuevo campo… Pero los chequee y funciona bien…

2- Respecto a lo que me mencionaste sobre los datos es cierto que en pilaga tengo nuevos conceptos y condiciones que no estan en arai y diaguita…

3- Ahora bien necesito que me indiques que es lo mejor. Resulta que nosotros iniciamos la prueba de diaguita a fines del 2015, en la versión 2.0.0. Por lo que utilizamos los migradores para incorporar los agentes y proveedores a la base diaguita, de la base pilaga de Septiembre de 2015.

Ahora bien, fuimos actualizando sobre esta base en la 2.0.0 hasta pasarnos a la base en la 2.3.2. Cuando queremos probar la sincronización con la base diaguita no me genera error, pero con pilaga si. Los errores que te subi en el log del postgres…
Como me sugeriste identifique los datos que se encuentran en pilaga, pero no en diaguita ni en arai. Y tambien tengo otros casos en los que exiten los datos pero no estan identicos. Por ejemplo en pilaga figura el organismo y en diaguita no…
Entonces pense que lo mejor era limpiar las tablas de sau_rt_condiciones y sau_rt_conceptos y sau_rt_conceptos_proveedor, tanto de la base arai como diaguita, y agregar el insert de sau_rt_conceptos_proveedor a los scripts que me pasaste. Pero cuando ejecuto me salta un error de que la llave (proveedor)=(1012681) no está presente en la tabla «sau_pr_proveedores, y asumo que esto es porque son proveedores nuevos que estan en la base pilaga actual, y que por ende no existen en la base diaguita que contiene los proveedores migrados inicialmente el año pasado… Es asi??

Entonces ahi viene la pregunta. Si en realidad lo que queremos hacer es probar la ultima version de diaguita, lo ideal sería que la instalaramos y probaramos alli directamente la sincronización y recien ver los errores arrojados??

O es indistinto?? Es decir, este error que me salio no tiene nada que ver con lo que te mencione arriba??

Cual seria la mejor alternativa, instalar la ultima y probar derecho la sincro?? O bien, probar sobre la base en la que ya tenemos los proveedores migrados con los scritps???
En caso de que lo mejor sea probar en una base limpia, que en realidad va a ser nuestra situación real al momento de implantar… Instalo la version base 2.3.0 o puedo instalar derecho la 2.3.2???

Espero se haya entendido…

Gracias!
Paola

Hola,

Te respondo en orden

1- Los datos pueden variar entre instituciones, por eso se provee un ejemplo de script usando dblink para tomar la idea, y que cada institución lo ajuste para replicar los datos de las tablas maestras, las estructuras de estas tablas no cambiaron recientemente.

3- Te recomiendo actualizar la versión de Diaguita, al menos a la 2.3.0

Respecto al error la llave (proveedor)=(1012681) no está presente en la tabla «sau_pr_proveedores como aún no tenés sincronizado los proveedores no lo encuentra, deberías borrar ese dato (dejalo en NULL) en primera instancia de sau_rt_conceptos_proveedor, y una vez sincronizado lo podés agregar con el ID local que tiene el proveedor.

Cualquier consulta sobre la forma de actualizar Diaguita te recomiendo que le consultes al equipo Diaguita en el foro.

Con los dos ajustes que te comento, y actualizando Diaguita, tendría que funcionar correctamente (a menos que te queden diferencias en datos de otras tablas maestras por ajustar)

Saludos

Hola Leo!
Una consulta, al ejecutar psql arai < arai_replicador_datos_tablas_maestras.sql me salen los siguientes errores:
SET
ERROR: inserción o actualización en la tabla «sau_rt_conceptos» viola la llave foránea «r_385»
DETALLE: La llave (organismo_recaudador)=(1001507) no está presente en la tabla «sau_pr_proveedores».
ERROR: inserción o actualización en la tabla «sau_rt_condiciones» viola la llave foránea «r_323»
DETALLE: La llave (concepto)=(8) no está presente en la tabla «sau_rt_conceptos».
Entiendo que eso se debe a los CONSTRAINTS DE LAS TABLAS sau_rt_conceptos y sau_rt_condiciones, que tienen r_385 y r_323, respectivamente.
Donde el r_385 referencia a la columna persona de la tabla sau_pr_proveedores y el r_323 a la columna concepto de la tabla sau_rt_conceptos.
El problema es como bien mencionaste que aun no sincronice por lo tanto, no existen ni los conceptos ni los proveedores. Por ende, para que no me salgan estos errores y pueda replicar los datos de las tablas de pilaga, tanto en sau_rt_condiciones como en sau_rt_conceptos, es posible que elimine estos CONSTRAINTS, ejecute el dblink y una vez que haga la sincronizacion inicial, los cree nuevamente en las tablas sau_rt_condiciones y sau_rt_conceptos con los id locales??
Esto estaria bien??

Gracias!

Saludos
Paola

Hola,

Te respondo debajo porque cada error creo que tiene una resolución distinta

En este caso podrías mandarle vacío en el campo organismo_recaudador en el script y luego completarlo manualmente con el id local del proveedor correspondiente (luego de sincronizar).

Tendrías que dar de alta el concepto asociado (con ID 8) en sau_rt_conceptos, entiendo que eso es lo que está indicando este error, y luego el insert en sau_rt_condiciones

Hola Leo! Te cuento que logramos sincronizar SIU-Arai con SIU-Diaguita y SIU-Pilaga.
Tomamos como base tus scripts para la replica de las tablas sau_rt_conceptos y sau_rt_condiciones de pilaga, en las bases arai y diaguita. Antes de hacer esto, depuramos nuestras tablas de pilaga, completando datos que no son obligatorios para pilaga pero si para arai o diaguita, por ej: la descripcion de los conceptos de retencion, o los nombres de los organismo_recaudador… de esta forma luego de ejeuctar los scripts que replican los datos, y ejecutar la sincronizacion todo funciona correctamente!.

Ahora tengo una duda existencial! en las versiones anteriores de diaguita, nosotros levantabamos los proveedores de pilaga y los agentes de mapuche, mediante unos scripts. Ahora bien. los proveedores los obtengo de arai, y los agentes??? se puede seguir ejecutando el script??

Gracias por la ayuda de siempre!

Saludos
Paola

Hola Paola, excelente!
Respecto a los agentes te recomiendo consultes en el foro técnico de Diaguita.