Error al migrar equivalencias - post contorles

No es lo mismo que el pos-control que te envie.
Fijate que cambia la query en la linea 126.

    SELECT filas INTO cant_inicial FROM mig._tablas_g3 where tabla = 'sga_reconocimiento_act_homologada';

Te envio el script que tenemos con estos cambios.


fx_pos_ctrl_equivalencias.sql (13 KB)

Hola Alejandro
Volví a hacer una nueva migración con la base que tiene problemas con las equivalencias (llamemosla D).
Y persiste el error en la misma cantidad de registros, para la misma tabla (sga_reconocimiento_act).
Envío en adjunto el resultado. Y el script que estoy usando para los postcontroles.

Aclaración: Migré la base D, sobre otra base de G3 que ya tenía las bases A+B+C.

Cuando comenté esto:

Estaba migrando la base E, sobre la base de G3 que ya tenia A+B+C+D.

Necesito poder identificar los 1349 registros que no están migrando (correspondientes a la base D), para entender qué información se está perdiendo y si es relevante o no.
Gracias por la ayuda.
Saludos

Iris


error_postcontroles_equiv_fce.png

error_postcontroles_equiv_fce.png

fx_pos_ctrl_equivalencias.sql (13 KB)

Entonces la diferencia la da en las actividades extracurriculares que se informan en sga_reconocimiento y sga_reconocimiento_act

Fijate si esta consulta devuelve registros. Si devuelve son las actividades extracurriculares que no se pasaron a G3.

-- Guarani 2
SELECT 
mig.sga_activ_alumno.resol_actividades,
mig.sga_activ_alumno.unidad_academica,
mig.sga_activ_alumno.carrera,
mig.sga_activ_alumno.legajo,
mig.sga_activ_alumno.actividad,
mig.sga_activ_alumno.fecha
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    
EXCEPT 
-- Guarani 3
SELECT m_r.resol_actividades,
alu.unidad_academica, alu.carrera, alu.legajo, e.codigo as materia, r.fecha
FROM sga_reconocimiento as r 
JOIN mig._cnv_pk_alumnos as alu ON alu.alumno = r.alumno
JOIN sga_reconocimiento_act as r_act  on r_act.nro_tramite = r.nro_tramite
JOIN mig._cnv_pk_elementos as e ON e.elemento = r_act.elemento
JOIN mig._cnv_pk_reconocimiento as m_r ON m_r.nro_tramite = m_r.nro_tramite

Y corre esta otra sin recuperar el dato resol_actividades:

-- Guarani 2
SELECT 
mig.sga_activ_alumno.unidad_academica,
mig.sga_activ_alumno.carrera,
mig.sga_activ_alumno.legajo,
mig.sga_activ_alumno.actividad,
mig.sga_activ_alumno.fecha
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    
EXCEPT 
-- Guarani 3
SELECT alu.unidad_academica, alu.carrera, alu.legajo, e.codigo as materia, r.fecha
FROM sga_reconocimiento as r 
JOIN mig._cnv_pk_alumnos as alu ON alu.alumno = r.alumno
JOIN sga_reconocimiento_act as r_act  on r_act.nro_tramite = r.nro_tramite
JOIN mig._cnv_pk_elementos as e ON e.elemento = r_act.elemento

¿Que valores retornan las siguientes consultas?

1) 
SELECT filas FROM mig._tablas_g3 where tabla = 'sga_reconocimiento_act';

2) 
SELECT count(*)
FROM sga_reconocimiento as r 
JOIN mig._cnv_pk_alumnos as alu ON alu.alumno = r.alumno
JOIN sga_reconocimiento_act as r_act  on r_act.nro_tramite = r.nro_tramite
JOIN mig._cnv_pk_elementos as e ON e.elemento = r_act.elemento
JOIN mig._cnv_pk_reconocimiento as m_r ON m_r.nro_tramite = m_r.nro_tramite

2) SELECT count(*)
FROM sga_reconocimiento as r 
JOIN mig._cnv_pk_alumnos as alu ON alu.alumno = r.alumno
JOIN sga_reconocimiento_act as r_act  on r_act.nro_tramite = r.nro_tramite
JOIN mig._cnv_pk_elementos as e ON e.elemento = r_act.elemento
JOIN mig._cnv_pk_reconocimiento as m_r ON m_r.nro_tramite = m_r.nro_tramite
WHERE m_r.origen = 'EXTRACURRICULAR';

4) 
SELECT count(*)
FROM sga_reconocimiento as r
JOIN mig._cnv_pk_alumnos as alu ON alu.alumno = r.alumno
JOIN sga_reconocimiento_act as r_act  on r_act.nro_tramite = r.nro_tramite
JOIN mig._cnv_pk_elementos as e ON e.elemento = r_act.elemento
JOIN mig._cnv_pk_reconocimiento as m_r ON m_r.nro_tramite = m_r.nro_tramite
WHERE r_act.homologada = 'N';

5) 
SELECT count(*)
FROM sga_reconocimiento as r 
JOIN mig._cnv_pk_alumnos as alu ON alu.alumno = r.alumno
JOIN sga_reconocimiento_act as r_act  on r_act.nro_tramite = r.nro_tramite
JOIN mig._cnv_pk_elementos as e ON e.elemento = r_act.elemento;

Hola Alejandro

Te respondo

-- Guarani 2
SELECT
mig.sga_activ_alumno.resol_actividades,
mig.sga_activ_alumno.unidad_academica,
mig.sga_activ_alumno.carrera,
mig.sga_activ_alumno.legajo,
mig.sga_activ_alumno.actividad,
mig.sga_activ_alumno.fecha
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   
EXCEPT
-- Guarani 3
SELECT m_r.resol_actividades,
alu.unidad_academica, alu.carrera, alu.legajo, e.codigo as materia, r.fecha
FROM sga_reconocimiento as r
JOIN mig._cnv_pk_alumnos as alu ON alu.alumno = r.alumno
JOIN sga_reconocimiento_act as r_act  on r_act.nro_tramite = r.nro_tramite
JOIN mig._cnv_pk_elementos as e ON e.elemento = r_act.elemento
JOIN mig._cnv_pk_reconocimiento as m_r ON m_r.nro_tramite = m_r.nro_tramite

37 registros

-- Guarani 2
SELECT
mig.sga_activ_alumno.unidad_academica,
mig.sga_activ_alumno.carrera,
mig.sga_activ_alumno.legajo,
mig.sga_activ_alumno.actividad,
mig.sga_activ_alumno.fecha
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   
EXCEPT
-- Guarani 3
SELECT alu.unidad_academica, alu.carrera, alu.legajo, e.codigo as materia, r.fecha
FROM sga_reconocimiento as r
JOIN mig._cnv_pk_alumnos as alu ON alu.alumno = r.alumno
JOIN sga_reconocimiento_act as r_act  on r_act.nro_tramite = r.nro_tramite
JOIN mig._cnv_pk_elementos as e ON e.elemento = r_act.elemento

37 registros

Con respecto a las últimas consultas:

  1. 1349 registros -----------> intuyo que estos deben ser los que no migraron, correcto? pero cómo los identifico?
  2. 2321862707 registros
  3. 2321622612 registros
  4. 2321524236 registros
  5. 48019 registros

Gracias!!
Iris

Estaba mal el pos-control, porque restaba los 1349 que no debía restar por como se cuentan las filas migradas:
46663 + 1349 (registros que ya existian en la base) = 48012
Adjunto nuevamente el pos-control. Con este cambio deberia darte todo OK en el resultado de cada control.


Lo que aun tengo dudas de esos 37 registros de actividades extracurriculares que no se migraron, o que no las encuentra en Guarani 3.
Fijate que alli estan los legajos de los alumnos, buscalo en G3 si estan reconocidos.

-- Guarani 2
SELECT
mig.sga_activ_alumno.resol_actividades,
mig.sga_activ_alumno.unidad_academica,
mig.sga_activ_alumno.carrera,
mig.sga_activ_alumno.legajo,
mig.sga_activ_alumno.actividad,
mig.sga_activ_alumno.fecha
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   
EXCEPT
-- Guarani 3
SELECT m_r.resol_actividades,
alu.unidad_academica, alu.carrera, alu.legajo, e.codigo as materia, r.fecha
FROM sga_reconocimiento as r
JOIN mig._cnv_pk_alumnos as alu ON alu.alumno = r.alumno
JOIN sga_reconocimiento_act as r_act  on r_act.nro_tramite = r.nro_tramite
JOIN mig._cnv_pk_elementos as e ON e.elemento = r_act.elemento
JOIN mig._cnv_pk_reconocimiento as m_r ON m_r.nro_tramite = m_r.nro_tramite

Con los datos unidad_academica, carrera, legajo y actividad podes buscar en su historia academica:


-- Buscar el alumno
SELECT alu.*
 FROM mig._cnv_pk_alumnos as m
JOIN vw_alumnos as alu ON alu.alumno = m.alumno
JOIN vw_personas as p ON p.persona = alu.persona
WHERE m.unidad_academica = 
AND m.carrera = 
AND m.legajo =  

-- Buscar la actividad extracurricular
SELECT * FROM vw_hist_academica as ha
JOIN sga_elementos as e ON e.elemento = ha.elemento
WHERE ha.alumno = <ALUMNO> 
AND e.codigo = <ACTIVIDAD>

3


fx_pos_ctrl_equivalencias.sql (13.3 KB)

Hola Alejandro!
Al fin!!
Ahora si!!! Es decir que la migración está todo ok y no se pierde nada de info!!
Gracias por la paciencia y por toda la ayuda!
Saludos

Iris


postcontrol_equiv_ok.png

postcontrol_equiv_ok.png

Hola Alejandro
Con respecto a esto,

observo que 2 corresponden a entradas en mig.sga_resol_activ cuya modalidad es I y el estado C, mientras que las 35 restantes a modalidad G y estado A.
Puede influir eso?
Sigo mirando…
Gracias!
Iris

observo que 2 corresponden a entradas en mig.sga_resol_activ cuya modalidad es I y el estado C, mientras que las 35 restantes a modalidad G y estado A.
I = INDIVIDUAL G = GRUPAL

Ambos estan considerados en la migración.

Fijate esta query, anda comentando JOINs y ver cual hace que no se recuperen esos registros. Es la query que se usa en el INSERT de la tabla sga_reconocimiento_act. Aunque se basa en que el registro exista en la tabla de conversion de PK “mig._cnv_pk_reconocimiento”.
Verificalo para alguno de estos alumnos y actividad:

    SELECT 
    	cnv_r.nro_tramite,
    	ele.elemento,
    	'N' as homologada,
    	'S' as reconocimiento_total, -- La actividad extracurricular se reconoce en su totalidad.
    	sga_activ_alumno.puntaje_otorgado
    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

AND mig.sga_resol_activ.unidad_academica   = 
AND mig.sga_resol_activ.resol_actividades =  
AND mig.sga_activ_alumno.carrera  = 
AND mig.sga_activ_alumno.legajo  = 
AND mig.sga_activ_alumno.actividad  = 

ORDER BY cnv_r.nro_tramite, ele.nombre;

Y esta otra que es la que genera la cabecera del reconocimiento de actividades extracurriculares:
Fijate para alguno de esos alumnos y el dato de resolución “resol_actividades”, si la recupera o no:

SELECT ra.resol_actividades,
		   ra.unidad_academica, 
                   alu.carrera, 
		   alu.legajo   
 FROM mig.sga_resol_activ as ra
JOIN mig.sga_alumnos_resol as alu ON alu.unidad_academica  = ra.unidad_academica AND  alu.resol_actividades = ra.resol_actividades

WHERE ra.unidad_academica = 
AND ra.resol_actividades = 
AND alu.carrera = 
AND alu.legajo = 

ORDER BY ra.fecha, ra.resol_actividades; 

Hola Alejandro
Con la primer consulta, por más que trate de comentar JOINS, siempre devuelve registros.
Lo mismo con la segunda.

Saludos
Iris

Pudiste identificar esas 37 actividades y a que alumnos y en que fecha es?
Las ves desde el reporte de Historia Academica de la Ficha de la persona?

ola Alejandro
Si, pude identificar a los alumnos y a las resoluciones.
Pero buscando algunos casos en la historia académica de la ficha de la persona no las veo.
Saludos.

Iris

En G3 no las ves porque no se migraron.
En G2 si no las ves entonces pueden ser datos de actividades extracurriculares que hayan quedado mal registrados.