Error en el poscontrol del módulo 55_Actas

Hola,
Estoy probando el proceso de migración con las siguientes versiones:
g2: 2.9.1
g3: 3.11.1
migrador: 3.11.4

Se me presentó un problema con el poscontrol del módulo 55_Actas, particularmente el error es:

tabla resultado cant_g2 cant_g3
sga_eval_detalle_examen Error: Cantidad de detalle_examen no coinciden… 133,00 669,00

Haciendo una consulta sobre la tabla sga_eval_detalle_examen de g2 verifico que tiene 1337 registros.

Espero sus sugerencias.

Saludos cordiales.

Hola Gustavo!
En mig.sga_detalle_acta (esquema mig migracion) están los 1337 registros?
Si hacés un join de mig.sga_detalle_acta con mig.sga_actas_examen, con el campo estado de sga_actas_examen = ‘A’, ‘I’ o ‘N’… cuántos registros hay?

	SELECT count(*) 
	  FROM mig.sga_detalle_acta sda, mig.sga_actas_examen msa  
	  WHERE sda.unidad_academica = msa.unidad_academica AND
	        sda.tipo_acta = msa.tipo_acta AND
	        sda.acta = msa.acta AND
	        msa.estado IN ('A','I','N');  

Es la primer base de G2 que estás migrando? O ya existen registros migrados en esa base de G3?

Hola Juliana,
¡gracias por responder!

En mig.sga_detalle_acta (esquema mig migracion) hay 62550 registros.
La consulta que me adjuntaste devuelve 133 registros.

La tabla que te mencioné en mi mensaje que tiene 1337 registros es sga_eval_detalle_examenes (del esquema negocio) que corresponde a G2.
Saludos cordiales.

Olvidé mencionar que es la primera base de datos que estoy migrando.
Saludos cordiales.

La tabla sga_eval_detalle_examen de G3 es solo para actas de examen abiertas.
Lo que en Guarani 2 serian actas con estado A-Abierto, I-Impreso con Notas, N-Impreso sin Notas.

Si te informa que hay diferente cantidad de registros, podes enviar la consulta que te muestra alli para que corras? Que es la misma que se corre cuando luego muestra estas diferencias.

Hola,
me informa las diferencias en Postcontroles. La salida es la siguiente:

tabla resultado cant_g2 cant_g3
sga_actas OK: Cantidad de Actas de Examen y Reválidas de Cursadas (origen = E)… 11.928,00 11.928,00
sga_actas OK: Cantidad de Actas de Cursado (origen = R)… 2.014,00 2.014,00
sga_actas OK: Cantidad de Actas de Promocion (origen = P)… ,00 ,00
EXAMENES sga_actas_detalle OK: cantidad de alumnos en actas de examen y revalidas de cursadas cerradas o anuladas. … 62.417,00 62.417,00
CURSADAS sga_actas_detalle OK: cantidad de alumnos en actas de cursadas cerradas o anuladas. … 57.212,00 57.212,00
PROMOCION sga_actas_detalle OK: cantidad de alumnos en actas de promocion cerradas o anuladas. … ,00 ,00
sga_eval_detalle_examen Error: Cantidad de detalle_examen no coinciden… 133,00 669,00
sga_eval_detalle_cursadas OK: Cantidad de alumnos en actas de cursadas abiertas… 1.402,00 1.402,00

No hay ninguna consulta sugerida.
Entiendo que se ejecuta la consulta “fx_pos_ctrl_actas.sql” que se encuentra en el job “postctrl_Actas” del modulo “55_Actas”

Adjunto una planilla con la salida de las consultas que se utilizan en los postcontroles por si resultase de ayuda.
Saludos cordiales.


Migracion-55_Actas.xlsx.zip (67.2 KB)

Gustavo, me equivoque con el tema de la consulta, estas se informan en los pre-controles pero no en los pos-controles.

¿Tienen Actas de Examen de Reválidas de Cursadas?
Si tienen, puede ser que existan actas abiertas?

¿Que te dan las siguientes consultas?
1)
SELECT count(*)
FROM mig.sga_detalle_acta as sda,
mig.sga_actas_examen as msa
WHERE sda.unidad_academica = msa.unidad_academica AND
sda.tipo_acta = msa.tipo_acta AND
sda.acta = msa.acta AND
msa.estado IN (‘A’,‘I’,‘N’);

  1. – Detalle de Actas de revalidas de cursadas
    SELECT count(*)
    FROM mig.sga_det_acta_reval as sda,
    mig.sga_actas_reval as msa
    WHERE sda.unidad_academica = msa.unidad_academica AND
    sda.acta_revalida = msa.acta_revalida AND
    msa.estado NOT IN (‘B’,‘C’); – Que no esten cerradas ni anuladas.

  2. – Detalle de actas de examen abiertas en G3.
    SELECT count(*)
    FROM sga_eval_detalle_examenes as d, sga_actas as a
    WHERE d.id_acta = a.id_acta
    AND a.origen = ‘E’
    AND a.estado = ‘A’;

  3. SELECT filas FROM mig._tablas_g3 where tabla=‘q_alu_actas_ex_ab’;

Deberia darse lo siguiente:
(1 + 2) = (3 - 4)

Los resultados de las consultas son:

  1. 133
  2. 0
  3. 669
  4. 0

Obviamente no se cumple: 1)+2)=3)-4)

Por otro lado, comparando los resultados de las consultas que dan diferencias que envié en formato excel, pude verificar que los registros que están en la base “negocio” y no están en “mig” son aquellos cuyo campo “version” (columna Z de la pestaña negocio del xls enviado) es mayor que version_impresa (columna AA de la pestaña negocio del xls enviado).
Específicamente cuando:
version= 2 y version_impresa= 1
o
version=1 y version_impresa=0

No sé si tendrá que ver pero es lo que pude verificar.

Saludos cordiales.

Podes enviar lo siguiente:

SELECT * FROM mig.sga_detalle_acta as sda,
mig.sga_actas_examen as msa
WHERE sda.unidad_academica = msa.unidad_academica AND
sda.tipo_acta = msa.tipo_acta AND
sda.acta = msa.acta AND
msa.estado IN (‘A’,‘I’,‘N’)
ORDER BY msa.acta, msa.tipo_acta, sda.legajo;

SELECT d., alu.legajo, a.
FROM sga_eval_detalle_examenes as d, sga_actas as a, mig._cnv_pk_actas as m, sga_alumnos as a
WHERE d.id_acta = a.id_acta
AND a.origen = ‘E’
AND a.estado = ‘A’
AND m.id_acta = a.id_acta
AND alu.alumno = d.alumno
ORDER BY a.nro_acta, a.tipo_acta, alu.legajo;

Hola,
adjunto lo solicitado.
La segunda consulta la hice así:

SELECT d., alu.legajo, a.
FROM negocio.sga_eval_detalle_examenes as d, negocio.sga_actas as a, mig._cnv_pk_actas as m, negocio.sga_alumnos as alu
WHERE d.id_acta = a.id_acta
AND a.origen = ‘E’
AND a.estado = ‘A’
AND m.id_acta = a.id_acta
AND alu.alumno = d.alumno
ORDER BY a.nro_acta, a.tipo_acta, alu.legajo;

Le agregué “negocio” a las tablas correspondientes y “negocio.sga_alumnos as a” lo reemplacé por “negocio.sga_alumnos as alu” porque sinó emite un error.
Saludos cordiales.


consultas_Migracion-55_Actas.xlsx.zip (66 KB)

Gustavo, para poder comparar, te pido de nuevo estas salidas.
Por el tema del esquema podes setear la variable “search_path” en la base, seleccionando “Propierties” y alli setear esta variable con el nombre del esquema “negocio” o correr junto a la select el “Set search_path=negocio;”


-- 1. Actas de Guarani 2
SET search_path= negocio;
SELECT  msa.acta, msa.tipo_acta,  msa.estado, sda.carrera, sda.legajo, sda.nota  
   FROM mig.sga_detalle_acta as sda,
          mig.sga_actas_examen as msa
     WHERE sda.unidad_academica = msa.unidad_academica AND
           sda.tipo_acta = msa.tipo_acta AND
           sda.acta = msa.acta AND
           msa.estado IN ('A','I','N')
ORDER BY msa.acta, msa.tipo_acta, sda.legajo;

-- 2. Actas de Guarani 3
SET search_path= negocio;
SELECT  a.nro_acta, a.tipo_acta,  a.estado, p.codigo, alu.legajo, d.nota, a.id_acta  
      FROM sga_eval_detalle_examenes as d, sga_actas as a, mig._cnv_pk_actas as m, sga_alumnos as alu, sga_propuestas as p
     WHERE d.id_acta = a.id_acta
       AND a.origen = 'E'
       AND a.estado = 'A'
       AND m.id_acta = a.id_acta
       AND alu.alumno = d.alumno
     AND p.propuesta = alu.propuesta
ORDER BY a.nro_acta, a.tipo_acta, alu.legajo;

-- 3. Datos de Actas de G3 que no estan en G2
SET search_path= negocio;
SELECT  a.nro_acta, a.tipo_acta,  a.estado, p.codigo, alu.legajo, d.nota  
      FROM sga_eval_detalle_examenes as d, sga_actas as a, mig._cnv_pk_actas as m, sga_alumnos as alu, sga_propuestas as p
     WHERE d.id_acta = a.id_acta
       AND a.origen = 'E'
       AND a.estado = 'A'
       AND m.id_acta = a.id_acta
       AND alu.alumno = d.alumno
     AND p.propuesta = alu.propuesta
EXCEPT
SELECT  a.nro_acta, a.tipo_acta,  a.estado, p.codigo, alu.legajo, d.nota  
      FROM sga_eval_detalle_examenes as d, sga_actas as a, mig._cnv_pk_actas as m, sga_alumnos as alu, sga_propuestas as p
     WHERE d.id_acta = a.id_acta
       AND a.origen = 'E'
       AND a.estado = 'A'
       AND m.id_acta = a.id_acta
       AND alu.alumno = d.alumno
     AND p.propuesta = alu.propuesta
ORDER BY 1,2,5;


Estimado,
adjunto lo solicitado.
La última consulta (3. Datos de Actas de G3 que no estan en G2) no devuelve registros, ya que luego del EXCEPT se repite la consulta de arriba.
Saludos cordiales.


Actas-G2-G3.xlsx.zip (25.1 KB)

Podes enviar los resultados de la siguiente consulta (Son actas de examen de G3 que no estan en el listado de G2):


-- Actas: 2335, 2339, 4267
SELECT id_acta, tipo_acta, acta, estado, tabla  FROM mig._cnv_pk_actas  WHERE id_acta IN (3141, 3145, 5499);

Estimados,
En Unsam me esta pasando lo mismo. Todo coincide con las versiones que esta probando Gustavo,

El mensaje que me sale es:
sga_eval_detalle_examen Error: Cantidad de detalle_examen no coinciden… 206,00 253,00

Voy a seguir esta secuencia de query que mandaron pero aun no me queda claro cual seria la solucion o cual es el problema.

Saludos.

En los dos casos: ¿Tienen actas de revalidas? Si es asi, pueden verificar si tienen actas que no esten cerradas?

Les adjunto el pos_control de Actas. Por favor actualicen esta funcion y vean de correrla y ver si sigue dandoles diferencias.


fx_pos_ctrl_actas.sql (13.6 KB)

Estimado Alejandro,

  1. La consulta que me enviaste me devuelve 3 filas:

3141 N 2335 I sga_actas_examen
3145 N 2339 I sga_actas_examen
5499 N 4267 I sga_actas_examen

  1. Reemplacé el sql de poscontroles por el que enviaste y me da la misma diferencia que antes.
  2. Respecto a las actas reválidas y actas abiertas. ¿Cómo puedo verificar este tema?

Saludos cordiales.

Perdon, la 3er consulta era asi:

SELECT  a.nro_acta, a.tipo_acta,  p.codigo, alu.legajo
      FROM sga_eval_detalle_examenes as d, sga_actas as a, mig._cnv_pk_actas as m, sga_alumnos as alu, sga_propuestas as p
     WHERE d.id_acta = a.id_acta
       AND a.origen = 'E'
       AND a.estado = 'A'
       AND m.id_acta = a.id_acta
       AND alu.alumno = d.alumno
       AND p.propuesta = alu.propuesta
EXCEPT
SELECT  msa.acta, msa.tipo_acta, sda.carrera, sda.legajo
   FROM mig.sga_detalle_acta as sda,
          mig.sga_actas_examen as msa
     WHERE sda.unidad_academica = msa.unidad_academica AND
           sda.tipo_acta = msa.tipo_acta AND
           sda.acta = msa.acta AND
           msa.estado IN ('A','I','N')
ORDER BY 1, 2, 4;

Si el archivo que te envie sigue dando diferencias, entonces no debes tener actas de reválidas.
Podes consultar la tabla mig.sga_actas_reval:


SELECT count(*) 
  FROM mig.sga_det_acta_reval as sda, 
       mig.sga_actas_reval as msa  
  WHERE sda.unidad_academica = msa.unidad_academica AND
        sda.acta_revalida = msa.acta_revalida AND
        msa.estado NOT IN ('B','C');  -- Que no esten cerradas ni anuladas.

Hola Ale…
Ahora lo veo bien pero creo que son actas que quedaron abiertas.

Estimado Alejandro,
la 1er. consulta me devuelve lo que adjunto. Mientras que la 2da. devuelve 0 (cero).
Saludos cordiales.


3er-consulta.xlsx.zip (15.2 KB)

Alejandro,
A ver si esto puede ayudar. Yo estoy trabajando con Sandra en las migraciones y lo que encontré en una base que nos da el mismo problema que se trata en este tema es, que el acta que está demás en G3, en G2 está abierta y sin ningún alumno, cuando me fijo en las inscripciones a la mesa que corresponde esa acta hay un alumno.
Ese alumno aparece en el acta que se migró a G3. O sea que el proceso de migración tomó al alumno inscripto y lo agregó al acta. Obviamente en G2 borraron al alumno del acta pero no lo dieron de baja de la inscripción.
Saludos.

Jorge