Al comenzar el proceso de migracion la tabla mig._tablas_g3 se carga con datos de cantidad de filas que hay en cada tabla de la base de Guarani 3. En este caso de las 3 unidades academicas ya migradas.
Ajuste el pos control de equivalencias relacionadas con las homologaciones de actividades.
Actualizá estos archivos que adjunto en el mensaje y volve a realizar la migracion desde el comienzo.
Modifiqué la línea 103, especificando una de las tablas como origen del campo nro_tramite, y pude continuar.
-- fx_pos_control_equivalencias - Homologaciones
SELECT count(distinct r.nro_tramite) INTO cant
FROM sga_reconocimiento as r
JOIN sga_reconocimiento_act as ra ON ra.nro_tramite = r.nro_tramite
WHERE ra.homologada = 'S';
Hola Alejandro
Ahí estoy con una nueva prueba de migración y ahora sólo emite este error los postcontroles:
sga_reconocimiento Error: Cantidad de Trámites de Equivalencias de Homologaciones (sga_equiv_tramite) no coinciden... 5,00 48.855,00
Pero se solucionó lo de la tabla sga_reconocimiento_act. Las cantidades corresponden.
La migración es sobre una base de G3 que ya cuenta con otras responsables académicas.
Alguna idea de por qué puede persistir el error en la tabla sga_reconocimiento? O detectar cuales son los casos?
Gracias!!
5 contra 48855?
Volviste a hacer una nueva migracion?
¿Que devuelven estas consultas?
SELECT count(*)
FROM mig.sga_equiv_otorgada as a
JOIN mig.sga_equiv_operac as b ON a.operacion_equiv = b.operacion_equiv
WHERE b.origen = 'H';
SELECT filas FROM mig._tablas_g3 where tabla = 'sga_reconocimiento_act_homologada';
SELECT count(*) FROM sga_reconocimiento_act WHERE homologada = 'S' ;
SELECT count(*) FROM sga_reconocimiento as r
JOIN sga_reconocimiento_act as ra ON ra.nro_tramite = r.nro_tramite
WHERE ra.homologada = 'S' ;
Que extraño, porque la 3er query es la que esta en el pos-control.
Adjunto este archivo en este mensaje, fijate de reemplazar el archivo y ejecutar la funcion a ver si dan los mismos valores.
Saludos
Hola Alejandro
Corrí el script que me enviaste y sigue dando el mismo error.
El archivo es idéntico al que tenía.
La inconsistencia salta en sga_reconocimiento (y no en sga_reconocimiento_act)
Observando un poco, creo que en la línea 72, en la parte del else, debieran ser las siguientes cantidades: cnt_homologaciones_g2 + cnt_extracurriculares_g2, cnt_homologaciones_g3
(Tiene: cnt_homologaciones_g2, cnt_homologaciones_g3)
Pero aún corrigiendo eso persiste una diferencia:
[tr]
[td]Tabla[/td][td]Resultado[/td][td]cant_g2[/td][td]cant_g3[/td]
[/tr][tr]
[td]sga_reconocimiento.[/td][td]Error: Cantidad de Trámites de Equivalencias de Homologaciones (sga_equiv_tramite) no coinciden…[/td][td]48.166,00[/td][td]48.855,00[/td]
[/tr]
Estos son los valores que obtengo con el script de control:
-- HOMOLOGACIONES: Cuento tramites de equivalencias relacionados con Homologaciones
SELECT count(DISTINCT eo.operacion_equiv || '-' || e.carrera || '-' || e.legajo || '-' || e.plan || '-' || e.version)
--INTO cnt_homologaciones_g2 = 5
FROM mig._cnv_pk_reconocimiento as m_r
JOIN mig.sga_equiv_operac as eo ON eo.operacion_equiv = m_r.operacion_equiv_g2
JOIN mig.sga_equiv_otorgada as e ON e.operacion_equiv = eo.operacion_equiv
WHERE eo.operacion_equiv IN (SELECT operacion_equiv FROM mig.sga_equiv_otorgada)
AND eo.origen = 'H'
AND m_r.origen = 'EQUIVALENCIA';
5 registros
-- Tramites de Resoluciones de actividades extracurriculares
SELECT count(1)
--INTO cnt_extracurriculares_g2 = 48161
FROM mig._cnv_pk_reconocimiento as m_r
JOIN mig.sga_resol_activ as rs ON rs.unidad_academica = m_r.unidad_academica AND rs.resol_actividades = m_r.resol_actividades
WHERE m_r.origen = 'EXTRACURRICULAR';
-- G2
SELECT count(DISTINCT m_r.nro_tramite)
FROM mig._cnv_pk_reconocimiento as m_r
JOIN mig.sga_equiv_operac as eo ON eo.operacion_equiv = m_r.operacion_equiv_g2
JOIN mig.sga_equiv_otorgada as e ON e.operacion_equiv = eo.operacion_equiv
WHERE eo.operacion_equiv IN (SELECT operacion_equiv FROM mig.sga_equiv_otorgada)
AND eo.origen = 'H'
AND m_r.origen = 'EQUIVALENCIA';
SELECT COUNT(DISTINCT m_r.nro_tramite)
FROM mig._cnv_pk_reconocimiento as m_r
JOIN mig.sga_resol_activ as rs ON rs.unidad_academica = m_r.unidad_academica AND rs.resol_actividades = m_r.resol_actividades
WHERE m_r.origen = 'EXTRACURRICULAR';
-- Guarani 3
SELECT count(DISTINCT r.nro_tramite) INTO cnt_homologaciones_g3
FROM sga_reconocimiento as r
JOIN sga_reconocimiento_act as ra ON ra.nro_tramite = r.nro_tramite
WHERE ra.homologada = 'S';
-- G2
SELECT count(DISTINCT m_r.nro_tramite)
FROM mig._cnv_pk_reconocimiento as m_r
JOIN mig.sga_equiv_operac as eo ON eo.operacion_equiv = m_r.operacion_equiv_g2
JOIN mig.sga_equiv_otorgada as e ON e.operacion_equiv = eo.operacion_equiv
WHERE eo.operacion_equiv IN (SELECT operacion_equiv FROM mig.sga_equiv_otorgada)
AND eo.origen = 'H'
AND m_r.origen = 'EQUIVALENCIA';
5 registros
SELECT COUNT(DISTINCT m_r.nro_tramite)
FROM mig._cnv_pk_reconocimiento as m_r
JOIN mig.sga_resol_activ as rs ON rs.unidad_academica = m_r.unidad_academica AND rs.resol_actividades = m_r.resol_actividades
WHERE m_r.origen = 'EXTRACURRICULAR';
48161 registros
-- Guarani 3
SELECT count(DISTINCT r.nro_tramite)-- INTO cnt_homologaciones_g3
FROM sga_reconocimiento as r
JOIN sga_reconocimiento_act as ra ON ra.nro_tramite = r.nro_tramite
WHERE ra.homologada = 'S';
Los dos primeros que dan error estaba mal el control, pero si miras dan iguales los nros de G2 y G3.
El que da diferente es el de las actividades extracurriculares.
¿Estan migrando las actividades extracurriculares como actividades dentro del plan de estudios, no?
Por lo que veo que se esta completando la tabla sga_reconocimiento_act
¿Que resultados dan estas consultas?
1)
SELECT count(*)
FROM mig.sga_resol_activ
JOIN mig.sga_activ_resol ON mig.sga_activ_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_activ_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_activ_alumno.unidad_academica = mig.sga_activ_resol.unidad_academica AND
mig.sga_activ_alumno.resol_actividades = mig.sga_activ_resol.resol_actividades AND
mig.sga_activ_alumno.area = mig.sga_activ_resol.area AND
mig.sga_activ_alumno.actividad = mig.sga_activ_resol.actividad AND
mig.sga_activ_alumno.fecha = mig.sga_activ_resol.fecha;
2)
SELECT count(*)
FROM mig.sga_resol_activ
JOIN mig.sga_activ_resol ON mig.sga_activ_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_activ_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_activ_alumno.unidad_academica = mig.sga_activ_resol.unidad_academica AND
mig.sga_activ_alumno.resol_actividades = mig.sga_activ_resol.resol_actividades AND
mig.sga_activ_alumno.area = mig.sga_activ_resol.area AND
mig.sga_activ_alumno.actividad = mig.sga_activ_resol.actividad AND
mig.sga_activ_alumno.fecha = mig.sga_activ_resol.fecha
JOIN mig.sga_alumnos_resol ON mig.sga_alumnos_resol.unidad_academica = mig.sga_activ_alumno.unidad_academica AND
mig.sga_alumnos_resol.resol_actividades = mig.sga_activ_alumno.resol_actividades AND
mig.sga_alumnos_resol.carrera = mig.sga_activ_alumno.carrera AND
mig.sga_alumnos_resol.legajo = mig.sga_activ_alumno.legajo
3)
SELECT count(*)
FROM mig.sga_resol_activ
JOIN mig.sga_activ_resol ON mig.sga_activ_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_activ_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_activ_alumno.unidad_academica = mig.sga_activ_resol.unidad_academica AND
mig.sga_activ_alumno.resol_actividades = mig.sga_activ_resol.resol_actividades AND
mig.sga_activ_alumno.area = mig.sga_activ_resol.area AND
mig.sga_activ_alumno.actividad = mig.sga_activ_resol.actividad AND
mig.sga_activ_alumno.fecha = mig.sga_activ_resol.fecha
JOIN mig.sga_alumnos_resol ON mig.sga_alumnos_resol.unidad_academica = mig.sga_activ_alumno.unidad_academica AND
mig.sga_alumnos_resol.resol_actividades = mig.sga_activ_alumno.resol_actividades AND
mig.sga_alumnos_resol.carrera = mig.sga_activ_alumno.carrera AND
mig.sga_alumnos_resol.legajo = mig.sga_activ_alumno.legajo
JOIN mig._cnv_pk_elementos as m_act ON m_act.unidad_academica = mig.sga_activ_resol.unidad_academica AND
m_act.codigo = mig.sga_activ_resol.actividad AND
m_act.tipo = 'ACTIVIDAD_EXT'
JOIN sga_elementos as ele ON ele.elemento = m_act.elemento
4)
SELECT count(*)
FROM mig.sga_resol_activ
JOIN mig.sga_activ_resol ON mig.sga_activ_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_activ_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_activ_alumno.unidad_academica = mig.sga_activ_resol.unidad_academica AND
mig.sga_activ_alumno.resol_actividades = mig.sga_activ_resol.resol_actividades AND
mig.sga_activ_alumno.area = mig.sga_activ_resol.area AND
mig.sga_activ_alumno.actividad = mig.sga_activ_resol.actividad AND
mig.sga_activ_alumno.fecha = mig.sga_activ_resol.fecha
JOIN mig.sga_alumnos_resol ON mig.sga_alumnos_resol.unidad_academica = mig.sga_activ_alumno.unidad_academica AND
mig.sga_alumnos_resol.resol_actividades = mig.sga_activ_alumno.resol_actividades AND
mig.sga_alumnos_resol.carrera = mig.sga_activ_alumno.carrera AND
mig.sga_alumnos_resol.legajo = mig.sga_activ_alumno.legajo
JOIN mig._cnv_pk_elementos as m_act ON m_act.unidad_academica = mig.sga_activ_resol.unidad_academica AND
m_act.codigo = mig.sga_activ_resol.actividad AND
m_act.tipo = 'ACTIVIDAD_EXT'
JOIN sga_elementos as ele ON ele.elemento = m_act.elemento
JOIN mig._cnv_pk_alumnos as m_alu ON m_alu.unidad_academica = mig.sga_alumnos_resol.unidad_academica AND
m_alu.carrera = mig.sga_alumnos_resol.carrera AND
m_alu.legajo = mig.sga_alumnos_resol.legajo;
5)
SELECT count(*)
FROM mig.sga_resol_activ
JOIN mig.sga_activ_resol ON mig.sga_activ_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_activ_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_activ_alumno.unidad_academica = mig.sga_activ_resol.unidad_academica AND
mig.sga_activ_alumno.resol_actividades = mig.sga_activ_resol.resol_actividades AND
mig.sga_activ_alumno.area = mig.sga_activ_resol.area AND
mig.sga_activ_alumno.actividad = mig.sga_activ_resol.actividad AND
mig.sga_activ_alumno.fecha = mig.sga_activ_resol.fecha
JOIN mig.sga_alumnos_resol ON mig.sga_alumnos_resol.unidad_academica = mig.sga_activ_alumno.unidad_academica AND
mig.sga_alumnos_resol.resol_actividades = mig.sga_activ_alumno.resol_actividades AND
mig.sga_alumnos_resol.carrera = mig.sga_activ_alumno.carrera AND
mig.sga_alumnos_resol.legajo = mig.sga_activ_alumno.legajo
JOIN mig._cnv_pk_elementos as m_act ON m_act.unidad_academica = mig.sga_activ_resol.unidad_academica AND
m_act.codigo = mig.sga_activ_resol.actividad AND
m_act.tipo = 'ACTIVIDAD_EXT'
JOIN sga_elementos as ele ON ele.elemento = m_act.elemento
JOIN mig._cnv_pk_alumnos as m_alu ON m_alu.unidad_academica = mig.sga_alumnos_resol.unidad_academica AND
m_alu.carrera = mig.sga_alumnos_resol.carrera AND
m_alu.legajo = mig.sga_alumnos_resol.legajo;
6)
SELECT count(*)
FROM mig._cnv_pk_reconocimiento as cnv_r
JOIN sga_reconocimiento as r ON r.nro_tramite = cnv_r.nro_tramite
JOIN mig.sga_resol_activ ON mig.sga_resol_activ.unidad_academica = cnv_r.unidad_academica AND
mig.sga_resol_activ.resol_actividades = cnv_r.resol_actividades
JOIN mig.sga_activ_resol ON mig.sga_activ_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_activ_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_activ_alumno.unidad_academica = mig.sga_activ_resol.unidad_academica AND
mig.sga_activ_alumno.resol_actividades = mig.sga_activ_resol.resol_actividades AND
mig.sga_activ_alumno.area = mig.sga_activ_resol.area AND
mig.sga_activ_alumno.actividad = mig.sga_activ_resol.actividad AND
mig.sga_activ_alumno.fecha = mig.sga_activ_resol.fecha
JOIN mig.sga_alumnos_resol ON mig.sga_alumnos_resol.unidad_academica = mig.sga_activ_alumno.unidad_academica AND
mig.sga_alumnos_resol.resol_actividades = mig.sga_activ_alumno.resol_actividades AND
mig.sga_alumnos_resol.carrera = mig.sga_activ_alumno.carrera AND
mig.sga_alumnos_resol.legajo = mig.sga_activ_alumno.legajo
JOIN mig._cnv_pk_elementos as m_act ON m_act.unidad_academica = mig.sga_activ_resol.unidad_academica AND
m_act.codigo = mig.sga_activ_resol.actividad AND
m_act.tipo = 'ACTIVIDAD_EXT'
JOIN sga_elementos as ele ON ele.elemento = m_act.elemento
JOIN mig._cnv_pk_alumnos as m_alu ON m_alu.unidad_academica = mig.sga_alumnos_resol.unidad_academica AND
m_alu.carrera = mig.sga_alumnos_resol.carrera AND
m_alu.legajo = mig.sga_alumnos_resol.legajo
WHERE cnv_r.origen = 'EXTRACURRICULAR'
AND m_alu.alumno = r.alumno
Hola Alejandro
Tenés razón, los controles sobre las tablas sga_equiv_internas y sga_equiv_externas son consistentes.
Las actividades extracurriculares las estamos migrando con el parámetro actividades_extracur = 1, es decir como elementos.
Las 6 consultas retornan siempre la misma cantidad de registros: 47825 (no es el valor obtenido ni en cant_g2 ni en cant_g3, sino uno intermedio).
Esta consulta debería ser la que cuente actividades extracurriculares otorgadas en G2:
SELECT COUNT(*)
FROM mig.sga_resol_activ
JOIN mig.sga_activ_resol ON mig.sga_activ_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_activ_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_activ_alumno.unidad_academica = mig.sga_activ_resol.unidad_academica AND
mig.sga_activ_alumno.resol_actividades = mig.sga_activ_resol.resol_actividades AND
mig.sga_activ_alumno.area = mig.sga_activ_resol.area AND
mig.sga_activ_alumno.actividad = mig.sga_activ_resol.actividad AND
mig.sga_activ_alumno.fecha = mig.sga_activ_resol.fecha
JOIN mig.sga_alumnos_resol ON mig.sga_alumnos_resol.unidad_academica = mig.sga_activ_alumno.unidad_academica AND
mig.sga_alumnos_resol.resol_actividades = mig.sga_activ_alumno.resol_actividades AND
mig.sga_alumnos_resol.carrera = mig.sga_activ_alumno.carrera AND
mig.sga_alumnos_resol.legajo = mig.sga_activ_alumno.legajo ;
Hola Alejnadro
Esa consulta también devuelve 47825 registros.
Debería reemplazarla en algún lado del script de postcontrol?
Igual, cant_g3 tiene otro valor (46478)
Por qué puede ser la diferencia de 1347?
Gracias!
Iris
Hola Alejandro
Te envío captura del la nueva ejecución con el scripts que enviaste.
Sigue estando la diferencia de 1347 registros.
Quisiera al menos poder identificar cuáles son, para analizar el motivo, y estar tranquila de no estar perdiendo información importante…
Cómo puedo reconocerlos?
Gracias!