Error en Migración con tipo_inscripcion de detalle acta

Hola!
Estamos tratando de migrar G2 a G3 hacia la versión 3.18.

En los Pre Controles Actas nos da error:
Hay registros con tipo_inscripcion diferentes a L (libre), R (regular), T (tesis). Existe un tipo de inscripcion nuevo, agregar la instancia que corresponda en sga_instancias y modificar el script 03_sga_actas_detalle.sql

Es cierto, tenemos 4 tipos más:

[tr][td]A Libres y Regulares[/td][/tr]
[tr][td]X L. Resol[/td][/tr]
[tr][td]F L. Fundam[/td][/tr]
[tr][td]D Libre Puro[/td][/tr]

Al insertar los valores en la tabla negocio.sga_instancias, que aplica en los siguientes campos (qué significan)?

  • aplica_a
  • orden
  • visible_hist_academica
  • visible_regularidades

Por otro lado, cuando indican modificar el script, se están refiriendo a:
02_Modulos/55_Actas/02_Migracion/04_sga_actas_detalle.sql
correcto?

La modificación sería sólo esta (a partir de la línea 27)?


	CASE 
		WHEN sda.tipo_inscripcion = 'R' THEN 3  -- Regular
		WHEN sda.tipo_inscripcion = 'L' THEN 4  -- Libre
		WHEN sda.tipo_inscripcion = 'T' THEN 8  -- Tesis

		WHEN sda.tipo_inscripcion = 'A' THEN 14  -- Libres y Regulares
		WHEN sda.tipo_inscripcion = 'X' THEN 15  -- L. Resol
		WHEN sda.tipo_inscripcion = 'F' THEN 16  -- L. Fundam
		WHEN sda.tipo_inscripcion = 'D' THEN 17  -- Libre Puro

		-- WHEN sda.tipo_inscripcion = 'T' THEN 3  -- Tesis  (Se pasa como Regulares)
		WHEN sda.tipo_inscripcion = 'N' THEN 4  -- ?
		ELSE 3 -- Regular
	END,

Entiendo que también aplica la misma modificación en la línea 43.
Algún lugar más afecta?

Desde ya, muchas gracias!
Saludos.

Iris

Al insertar los valores en la tabla negocio.sga_instancias, que aplica en los siguientes campos (qué significan)?
aplica_a = Si es una instancia de mesasa de examen (M) o es de comisiones (C)
orden = Es el orden en que se van a controlar los requisitos segun la instancia. Por ejemplo si es una instancia de mesas de examen, y la instancia es de seleccion automatica, se van a controlar requisitos por cada instancia (Regular / Libre / Reválida de cursada / …) para poder ver en que instancia se lo inscribe por defecto. En este caso si los requisitos para inscribirse como libre fallan, entonces se sevaluan los requisitos para inscribirlo como Libre, y asi sucesivamente. Esto por cada instancia definida en la mesa de examen.

visible_hist_academica = Indica si es una instancia que hace que esa actividad se considere en la historia academica, y si aparece alli se considera como una actividad aprobada que se cumple para el plan de estudios. Ejemplo de esto son las Promociones, Examenes, Equivalencias Totales, Aprobaciones por Resolucion
visible_regularidades = Indica si esta instancia se considera como una regularidad. Ejemplo de esto son las cursadas, equivalencias de regularidad.

Algún lugar más afecta?
Si, tambien deben ajustar el archivo de migracion [b]\02_Modulos\35_Calendario Academico\02_Migracion\20_sga_mesas_examen_instancias.sql[/b]

Ademas deben verificar luego por sistema la creacion de mesas de examen, actas de examen y carga de notas para esta instancia que quieren seguir manteniendo en el sistema.

Agregar instancias nuevas implica agregar registros en la tabla sga_instancias_resultado. Ya que indica cual es el texto que se muestra en el campo “Resultado” en la carga de notas de actas de examenes (que en este caso son instancias de examen) cuando el alumno esta inscripto en esa instancia y se carga una nota.

3

Respecto a esto:

-- WHEN sda.tipo_inscripcion = 'T' THEN 3  -- Tesis  (Se pasa como Regulares)

Esto ya fue cambiado y la instancia “Tesis” existe en Guarani 3 (Instancia nro 8). Ya no se pasa como instancia Regular, sino como Tesis.

Alejandro:
Gracias por la respuesta.

A ver si me queda claro:.

  1. Deberíamos agregar nuestras propias instancias a la tabla sga_instancias:
INSERT INTO negocio.sga_instancias(
	instancia, nombre, aplica_a, orden, visible_hist_academica, visible_regularidades)
	VALUES (14, 'Libres y Regulares', 'M', 7, 'S', 'N');
INSERT INTO negocio.sga_instancias(
	instancia, nombre, aplica_a, orden, visible_hist_academica, visible_regularidades)
	VALUES (15, 'L. Resol', 'M', 8, 'S', 'N');
INSERT INTO negocio.sga_instancias(
	instancia, nombre, aplica_a, orden, visible_hist_academica, visible_regularidades)
	VALUES (16, 'L. Fundam', 'M', 9, 'S', 'N');
INSERT INTO negocio.sga_instancias(
	instancia, nombre, aplica_a, orden, visible_hist_academica, visible_regularidades)
	VALUES (17, 'Libre Puro', 'M', 10, 'S', 'N');	
  1. Además de agregar estos registros en la tabla sga_instancias_resultado:
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('U', 14, 'Ausente');	
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('R', 14, 'Reprobado');	
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('A', 14, 'Aprobado');	
	
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('U', 15, 'Ausente');	
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('R', 15, 'Reprobado');	
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('A', 15, 'Aprobado');	

INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('U', 16, 'Ausente');	
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('R', 16, 'Reprobado');	
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('A', 16, 'Aprobado');	

INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('U', 17, 'Ausente');	
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('R', 17, 'Reprobado');	
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('A', 17, 'Aprobado');	

  1. Modificar el archivo 02_Modulos/55_Actas/02_Migracion/04_sga_actas_detalle.sql. Envío en adjunto, para corroborar que la modificación es la correcta.

  2. Pero no me queda claro cómo modificar el que indicás: 02_Modulos\35_Calendario Academico\02_Migracion\20_sga_mesas_examen_instancias.sql

Gracias por la paciencia y las explicaciones!!

Saludos.

Iris


04_sga_actas_detalle.sql (11.3 KB)

Iris, te comento lo siguiente:

  1. Si desean seguir usando esas instancias en Guarani 3, por favor usen id de instancias a partir de 100. Nos reservamos los primeros 99 lugares para el SIU por si en un futuro se agregan mas instancias.
    Por ejemplo la 14 ya esta siendo utilizada. Y tambien la tabla sga_instancias tienen nuevos campos cuyos valores impactan en lo que se lista en la vista de historia academica y en la vista de regularidades
INSERT INTO sga_instancias(instancia, nombre, aplica_a, visible_hist_academica, visible_regularidades, orden) VALUES (14,'Equivalencia de Regularidad - Correlativas', 'Q', 'N', 'N', 4);

  1. La instancia “Libres y Regulares” que veo que alli lo agregabas con isntancia 14 eso ya esta resuelto en la migración, pasa a ser instancia 3=Regular y 4=Libre.
    Ademas el alumno queda inscripto y en el acta en la instancia 3 o en la 4. NO puede quedar como que rinde regular y libre (en el caso de que sigas queriendo mantener una sola instancia).

  2. En el archivo tenes que agregar los ELSIF correspondientes a cada uno de esos valores que tenian personalizados y que quieren seguir usando como instancias de examen en G3. Por ejemplo:

            -- Si el valor   es "L. Resol", supongamos que en Guarani 2 el valor es "J", y en G3 pasa a ser la instancia 100
    ELSIF (cursor1.admite_libres = 'J') THEN
    	INSERT INTO sga_mesas_examen_instancias (mesa_examen,instancia,escala_nota)	VALUES(cursor1.mesa_examen, 100, _esc_nota);
            -- Si el valor   es "L. Fundam", supongamos que en Guarani 2 el valor es "K", y en G3 pasa a ser la instancia 101
    ELSIF (cursor1.admite_libres = 'K') THEN
    	INSERT INTO sga_mesas_examen_instancias (mesa_examen,instancia,escala_nota)	VALUES(cursor1.mesa_examen, 101, _esc_nota);
            -- Si el valor   es "Libre Puro", supongamos que en Guarani 2 el valor es "Q", y en G3 pasa a ser la instancia 102
    ELSIF (cursor1.admite_libres = 'Q') THEN
    	INSERT INTO sga_mesas_examen_instancias (mesa_examen,instancia,escala_nota)	VALUES(cursor1.mesa_examen, 102, _esc_nota);
    
  3. Por favor en lo posible migren con la version 3.18. Es mas, esta semana estamos liberando la version 3.19 asi que recomendamos que migren con esta última. Cada version de los scripts tiene mejoras.

3

Hola Alejandro.

Bien. Genial lo de usar instancias mayores a 100, porque justamente me entraba la duda que me aclaraste muy bien.
Es decir, lo que corresponde hacer es:

  1. Insertar los siguientes valores:
INSERT INTO negocio.sga_instancias(instancia, nombre, aplica_a, orden, visible_hist_academica, visible_regularidades)
	VALUES (100, 'L. Resol', 'M', 7, 'S', 'N');
INSERT INTO negocio.sga_instancias(instancia, nombre, aplica_a, orden, visible_hist_academica, visible_regularidades)
	VALUES (101, 'L. Fundam', 'M', 8, 'S', 'N');
INSERT INTO negocio.sga_instancias(instancia, nombre, aplica_a, orden, visible_hist_academica, visible_regularidades)
	VALUES (102, 'Libre Puro', 'M', 9, 'S', 'N');	
	
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('U', 100, 'Ausente');	
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('R', 100, 'Reprobado');	
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('A', 100, 'Aprobado');	

INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('U', 101, 'Ausente');	
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('R', 101, 'Reprobado');	
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('A', 101, 'Aprobado');	

INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('U', 102, 'Ausente');	
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('R', 102, 'Reprobado');	
INSERT INTO negocio.sga_instancias_resultado(resultado, instancia, descripcion)
	VALUES ('A', 102, 'Aprobado');	

  1. Modificar el archivo 02_Modulos/55_Actas/02_Migracion/04_sga_actas_detalle.sql. En adjunto lo envío, para corroborar que la modificación es la correcta (tiene modificaciones en 2 SELECT).

  2. Modificar el archivo 02_Modulos/35_Calendario Academico/02_Migracion/20_sga_mesas_examen_instancias.sql. Que también envío en adjunto, no sólo para corroborar, sino porque me surge otra duda… que no se cómo resolver, ya que una de las instancias justamente es “X” y veo que ese valor lo usan para otro caso.

En cuanto a tu recomendación, si, estamos haciendo las pruebas con la versión 3.18.0.

Gracias por la paciencia!!
Saludos.

Iris


04_sga_actas_detalle.sql (11.1 KB)

20_sga_mesas_examen_instancias.sql (4.89 KB)

Creo falta que agregues esas nuevas instancias en el archivo 03_sga_actas_instancias.sql, en la parte donde por cada instancia se carga la tabla temporal _Tactasinst.
Fijate que hay un insert en esta tabla por cada “tipo de inscripcion”. Deberias agregar algo como lo siguiente, (siguiendo el caso anterior que los datos personalizados eran J, K y Q)

    INSERT INTO _Tactasinst  (id_acta, instancia, escala_notas_g2)
    SELECT DISTINCT cpa.id_acta, 
              CASE  mda.tipo_inscripcion WHEN 'J' THEN 100 WHEN 'K' THEN 101 WHEN 'Q' THEN 102 END,
              se.escala_notas
		FROM 
		    mig.sga_actas_examen as se, 
			mig._cnv_pk_actas as cpa, 
			mig.sga_detalle_acta as mda
	  WHERE cpa.unidad_academica = se.unidad_academica 
		AND cpa.tipo_acta        = se.tipo_acta 
		AND cpa.acta             = se.acta 
		AND cpa.tabla = 'sga_actas_examen' 
	    AND mda.unidad_academica = se.unidad_academica 
		AND mda.tipo_acta        = se.tipo_acta 
		AND mda.acta             = se.acta 
		AND mda.tipo_inscripcion IN ('J', 'K', 'Q');

Fijate que en el archivo 20_sga_mesas_examen_instancias el tipo de inscripcion X ya estaba pasando como instancia 6=Reválida de examen
Si asi lo usaban en Guarani 2, entonces dejen como esta el script original, sino cambienlo por el personalizado.
Deben dejar uno de estos dos ELSIF:

		ELSIF (cursor1.admite_libres = 'X') THEN
			INSERT INTO sga_mesas_examen_instancias (mesa_examen,instancia,escala_nota)	VALUES(cursor1.mesa_examen, 6, _esc_nota);		
      ...............................		

        ---Personalizado para ECONOMICAS				   
        -- Si el valor   es "L. Resol", supongamos que en Guarani 2 el valor es "J", y en G3 pasa a ser la instancia 100 -----------> es X!!!! ¿cómo lo resuelvo?
        ELSIF (cursor1.admite_libres = 'X') THEN
            INSERT INTO sga_mesas_examen_instancias (mesa_examen,instancia,escala_nota)   VALUES(cursor1.mesa_examen, 100, _esc_nota);

Hola.
Si, en Guarani2 usamos la instancia “X” para “L. Resol”.

Lo que hice para no perder la info, fue lo siguiente:

La tabla sga_tipos_mesa está referenciada por:

  • sga_detalle_acta
  • sga_insc_examen
  • sga_mesas_examen

SELECT DISTINCT tipo_inscripcion FROM mig.sga_detalle_acta; —> No hay tipo_inscripcion = ‘X’
SELECT DISTINCT tipo_inscripcion FROM mig.sga_insc_examen; —> No hay tipo_inscripcion = ‘X’
SELECT DISTINCT admite_libres FROM mig.sga_mesas_examen; —> Si hay admite_libres = ‘X’

Entonces:

BEGIN; 
SET CONSTRAINTS ALL DEFERRED; 
UPDATE mig.sga_mesas_examen SET admite_libres = 'Q' WHERE admite_libres = 'X';
UPDATE mig.sga_tipos_mesa SET tipo_mesa = 'Q' WHERE tipo_mesa = 'X';
COMMIT;

Y con eso ya puedo mantener los datos y pasarlos sin que interfiera con el tipo “X” existente en el modelo de G3.

No me estaría faltando ninguna tabla más, no?

Y agrego también la info indicada en el archivo 03_sga_actas_instancias.sql.

Gracias por toda la explicación e indicaciones!!
Luego les comento como migró!

Saludos.

Iris

Para la migración creo que no.
Luego de migrar, deben configurar a que punto de control de las operaciones de Examenes agregan esas instancias.
Por ejemplo el punto de control nro 10 (Instancia Regular) estan configurados los siguientes controles:

  • Correlativas de aprobacion - Examen Regular (requisito 98)
  • Que el alumno tenga la actividad regularizada (requisito 74)
  • Cantidad de veces que puede rendir examen regular (requisito 69)

Si quieren controlar lo mismo, entonces deben por ejemplo agregar las nuevas instancias en ese punto de control:

INSERT INTO sga_instancias_puntos_ctrl (pto_control, instancia) VALUES (10, 100);  -- L. Resol
INSERT INTO sga_instancias_puntos_ctrl (pto_control, instancia) VALUES (10, 101);  -- L. Fundam
INSERT INTO sga_instancias_puntos_ctrl (pto_control, instancia) VALUES (10, 102);  -- Libre Puro

En cambio si los controles son los mismos que estan para la instancia Libre, entonces deben agregar estas instancias en el punto de control nro 11 (Alumno - Instancia libre), que tiene los siguientes controles configurados:

  • Correlativa de Aprobacion - Examen Libre (requisito 99)
  • Cantidad máxima de veces para rendir examen libre (requisito 76)

INSERT INTO sga_instancias_puntos_ctrl (pto_control, instancia) VALUES (11, 100);  -- L. Resol
INSERT INTO sga_instancias_puntos_ctrl (pto_control, instancia) VALUES (11, 101);  -- L. Fundam
INSERT INTO sga_instancias_puntos_ctrl (pto_control, instancia) VALUES (11, 102);  -- Libre Puro

Hola Alejandro.

Bien, gracias por la explicación de lo que corresponde configurar para continuar.

El punto es , si no hago el cambio que planteaba antes y decís que no es necesario para la migración, cómo hago para no perder los valores existentes? La idea es mantener la información de los datos.

Por ahí hay algo que no estoy terminando de comprender.

Gracias!!

Saludos

Iris

Te referis a no perder el uso del valor X ?

Si, en Guarani2 usamos la instancia "X" para "L. Resol".
Si quieren migrar esto a la nueva instancia donde registraran "L. Resol", entonces en el archivo [b]20_sga_mesas_examen_instancias [/b]deben quitar lo siguiente:
ELSIF (cursor1.admite_libres = 'X') THEN
			INSERT INTO sga_mesas_examen_instancias (mesa_examen,instancia,escala_nota)	VALUES(cursor1.mesa_examen, 6, _esc_nota);

y Agregar el codigo personalizado que habías indicado (que X pase a ser la instancia 100 en G3):

---Personalizado para ECONOMICAS				   
        -- Si el valor   es "L. Resol", supongamos que en Guarani 2 el valor es "J", y en G3 pasa a ser la instancia 100
        ELSIF (cursor1.admite_libres = 'X') THEN
            INSERT INTO sga_mesas_examen_instancias (mesa_examen,instancia,escala_nota)   VALUES(cursor1.mesa_examen, 100, _esc_nota);

Ahh!!!
Bien!! Entendido!!!
Muchas gracias!!!
Saludos.

Iris

Hola

Estoy probando nuevamente el circuito de migración, pero ahora a la versión 3.19.1.

Con respecto a este hilo,

a) Corrí el script que mando en adjunto: 00_Pre_Controles_Actas_Ajuste.sql
b) Modifique como me orientaron los archivos de migración siguientes (que también envío en adjunto):

  • 02_Modulos/35_Calendario Academico/02_Migracion/20_sga_mesas_examen_instancias.sql
  • 02_Modulos/55_Actas/02_Migracion/03_sga_actas_instancias.sql
  • 02_Modulos/55_Actas/02_Migracion/04_sga_actas_detalle.sql

Pero luego de ejecutar 02_Modulos/55_Actas/01_Pre_Controles/prectrl_Actas.kjb sigo obteniendo el mismo error:

Error: Hay registros con tipo_inscripcion diferentes a L (libre), R (regular), T (tesis). Existe un tipo de inscripcion nuevo, agregar la instancia que corresponda en sga_instancias y modificar el script 03_sga_actas_detalle.sql

Y efectivamente, la consulta:

SELECT tipo_inscripcion FROM mig.sga_detalle_acta WHERE tipo_inscripcion NOT IN ('L','R','T')

retorna tipo ‘D’ y ‘F’.

Qué estoy haciendo mal?
Gracias!!

Iris


00_Pre_Controles_Actas_Ajuste_econ.sql (1.68 KB)

02_Modulos.zip (6.16 KB)

Qué estoy haciendo mal?
Nada. El pre-control se basa en los datos originales del SIU. Si agregaron datos personalizados, en este caso [b]D[/b] y [b]F[/b], esa query es una advertencia indicando que hay valores que estan personalizados y que deben revisar que van a hacer; revisr si estan mal esos datos o realmente son datos que usan y deben hacer un ajuste en los scripts de migracion, para que estos datos personalizados de tipo de inscripción se traduzcan a alguno de los tipos de inscripción (instancias) existentes en Guarani 3, o a las nuevas instancias de mesas de examen si es que quieren seguir manteniendo esos tipos de inscripcion en Guarani 3.

Tenés razón Alejandro.
Es una advertencia, y ya realicé los ajustes correspondientes. Ahora ejecuto la migración.
Creo que migró bien!!
Cuando hagamos los circuitos de prueba les comento cómo nos fue!!
Gracias por todo!

Iris

Hola de nuevo Alejandro
Un detalle que me quedé pensando… y que tendremos que testear también… pero voy adelantando la consulta…
Estos nuevos tipos de inscripción que tuve que hacer los ajustes necesarios para que migren… quedarán disponibles / visibles para las restantes unidades académicas?
Gracias!

Iris

Si, quedara disponible para cualquier unidad académica. No se aplica perfil de datos para las instancias que se permitan registrar en las mesas de examen. Si necesitan esto van a tener que personalizar el combo de instancias en la operacion de administrar mesas de examen, crear mesas de examen fuera de calendario para que dependiendo de la propuesta (y con esta llegas a la unidad academica) liste unas instancias u otras…

Gracias Alejandro!