Bien. Ya vi donde esta el problema. Voy a ajustar el script de migracion de las equivalencias de tipo homologación, que son las que en G3 se registran como aprobaciones por resolución.
Las que están dando problemas en este control son aquellas que fueron rectificadas y anuladas. De ahi la diferencia entre el script que migra y el script que controla.
Modifico ambos y te los vuelvo a enviar. Mientras tanto fíjate de levantar un backup previo a la migración de este modulo de equivalencias para volver a migrar todo el modulo completo.
De acuerdo!
Muchas gracias Alejandro por todo!!
Saludos.
Iris
Iris, te adjunto 3 archivos, 2 son de migracion y el 3ro es el de controles. Reemplazalos y volve a probar migrar este modulo.
Recorda levantar un backup previo a la migracion del modulo de Equivalencias.
Avisa como fue el resultado del pos-controles.
02_sga_equiv_tramite.sql (9.27 KB)
03_sga_equiv_otorgada.sql (5.46 KB)
fx_pos_ctrl_equivalencias.sql (7.46 KB)
De acuerdo Alejandro.
En la próx prueba de migración te aviso. Contá con eso.
Saludos.
Iris
Hola Alehandro
Volví a hacer una nueva migración, y persiste error con la migración de Trámites de Equivalencias de Homologaciones.
Ahora el postcontrol da lo siguiente:
[tr]
[td]Error: Cantidad de Trámites de Equivalencias de Homologaciones (sga_equiv_tramite) no coinciden…[/td][td]5,00[/td][td]47.824,00[/td]
[/tr][tr]
[td]Error: Cantidad de actividades homologadas no coinciden (sga_equiv_otorgada)…[/td][td]7,00[/td][td]47.832,00[/td]
[/tr]
Aclaro que estoy migrando sobre una base que ya cuenta con otras 3 responsables académicas.
Gracias!
Iris
Hola de nuevo
Corriendo los scripts originales, en dónde sólo tenía como error:
tabla: sga_reconocimiento resultado: Error: Cantidad de Trámites de Equivalencias de Homologaciones (sga_equiv_tramite) no coinciden... cant_g2: 1 cant_g3: 5
Ahora el postcontrol da lo siguiente:
tabla: sga_reconocimiento
Error: Cantidad de Trámites de Equivalencias de Homologaciones (sga_equiv_tramite) no coinciden…
cant_g2: 48.166,00
cant_g3: 47.824,00
tabla: sga_reconocimiento_act
Error: Cantidad de actividades homologadas no coinciden (sga_equiv_otorgada)…
cant_g2: 7,00
cant_g3: -1.340,00
Qué puede estar pasando?
(La diferencia es que estoy migrando sobre una base que tiene ya otras 3 responsables académicas. La vez anterior sólo tenía 2)
Gracias por la ayuda!
Saludos
Iris
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.
\02_Modulos\01_TablasConversionPK\02_app_migracion.sql
\02_Modulos\60_Equivalencias\03_Pos_Controles\fx_pos_ctrl_equivalencias.sql
02_app_migracion.sql (12.3 KB)
fx_pos_ctrl_equivalencias.sql (7.86 KB)
Hola Alejandro
Probé hacer una nueva migración con los scripts enviados, pero da el error que te envío en adjunto.
Gracias.
Saludos
Iris
errror_cnv_pk_tablas_x_modulo.txt (21.6 KB)
Hola Alejandro
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';
Saludos
Iris
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!!
Iris
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' ;
Hola Alejandro
Te respondo:
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';
7 registros
SELECT filas FROM mig._tablas_g3 where tabla = 'sga_reconocimiento_act_homologada';
0 registros
SELECT count(*) FROM sga_reconocimiento_act WHERE homologada = 'S' ;
7 registros
SELECT count(*) FROM sga_reconocimiento as r
JOIN sga_reconocimiento_act as ra ON ra.nro_tramite = r.nro_tramite
WHERE ra.homologada = 'S' ;
7 registros
Alguna inconsistencia en el postcontrol puede ser?
Gracias por la ayuda
Iris
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
fx_pos_ctrl_equivalencias.sql (7.86 KB)
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';
48161 registros
-- Guarani 3
SELECT count(*)
--INTO cnt_homologaciones_g3 = 48855
FROM sga_reconocimiento;
48855 registros
SELECT filas
--INTO cant_inicial = 0
FROM mig._tablas_g3 where tabla = 'sga_reconocimiento_homologada';
0 registros
A que se puede deber la diferencia de 689 registros?
Gracias!
Saludos
Iris
¿Que valores retornan estas consultas?
-- 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';
Hola Alejandro
Respondo
-- 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';
5 registros
Saludos,
Iris
Envio el archivo de pos-controles. Actualiza la funcion en la base, ejecutalo y enviá el resultado.
Saludos.
fx_pos_ctrl_equivalencias.sql (11.8 KB)
Hola Alejandro
Ahora da otros errores…
Va en adjunto.
Iris
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).
Iris