Error con materias optativas/genericas al versionar un Plan

Hola,

tenemos el siguiente problema:

Hay alumnos que tienen creditos aprobados en una plan 2012 version 2, vamos a ver los creditos en “Materias genericas y puntaje asignado para un alumno” y aparece todo bien, como Aprobado y con el puntaje correcto.

Luego, creamos una versión nueva del plan: 3, por una modificación de una materia (que nada tiene que ver con el credito), y de repente no me aparece mas como Aprobada y el Puntaje de los creditos en la operación anterior, es decir, la columna Estado me aparece vacia, y arriba donde dice Aprobado y Regularizado en 0. Mientras que ante aparecian los valores.

Investigando un poco los procedimientos, veo que : el SP sp_opt_al_gen, busca las optativas/genericas aprobadas sobre la versón “que la aprobó”, es decir, en el caso de este alumno debería ser la versión 2, pero por lo que veo, la variable ls_version_apro , mirando mas arriba la saca del plan actual del plan, es decir el 3, y no la version en que aprobó la materia, por eso no encuentra los valores:

Esta parte del código toma ls_version_actual, que sale del SP
EXECUTE PROCEDURE sp_plan_de_alumno(punidadAcademica, pCarrera, pLegajo, Current year to second) INTO ls_plan,ls_version_actual;

Que devuelve el 3 y no el 2 que aprobó el alumno, por lo que nunca encuentra la materia.

SELECT vha.materia, vha.resultado, atm.plan, atm.version
FROM vw_hist_academica as vha,
sga_atrib_mat_plan as atm
WHERE vha.unidad_academica = pUnidadAcademica
AND vha.carrera = pCarrera
AND vha.legajo = pLegajo
AND atm.unidad_academica = vha.unidad_academica
AND atm.carrera = vha.carrera
AND atm.plan = ls_plan – AND vha.plan = atm.plan
AND atm.version = ls_version_actual – AND vha.version = atm.version
AND atm.materia = vha.materia
AND atm.tipo_materia <> ‘G’
AND vha.resultado = ‘A’
– y que la materia sea una optativa de una generica
– perteneciente al plan del alumno
AND vha.materia IN (SELECT materia_optativa
FROM sga_mat_genericas as smg,
sga_atrib_mat_plan as samp
WHERE smg.unidad_academica = samp.unidad_academica
and smg.materia_generica = samp.materia
and samp.unidad_academica = pUnidadAcademica
and samp.carrera = pCarrera
and samp.plan = ls_plan
and samp.version = ls_version_actual
and samp.tipo_materia =‘G’);

Esto está en la versión 2.07.0, pero en prueba además probamos esto en la versión 2.08.0, haciendo solamente el versionado del plan sin modificar nada, y se comporta exactamente igual.

A alguien le paso lo mismo?

Desde ya muchas gracias.

Martin, esa optativa que no se la esta considerando para la materia generica, no existe mas en la version actual del plan del alumno?

Si Reemplazas en la siguiente query:

SELECT vha.materia, vha.resultado, atm.plan, atm.version
FROM vw_hist_academica as vha,
sga_atrib_mat_plan as atm
WHERE vha.unidad_academica = pUnidadAcademica
AND vha.carrera = pCarrera
AND vha.legajo = pLegajo
AND atm.unidad_academica = vha.unidad_academica
AND atm.carrera = vha.carrera
AND atm.plan = ls_plan – AND vha.plan = atm.plan
AND atm.version = ls_version_actual – AND vha.version = atm.version
AND atm.materia = vha.materia
AND atm.tipo_materia <> ‘G’
AND vha.resultado = ‘A’

Esto:

AND atm.plan = ls_plan – AND vha.plan = atm.plan
AND atm.version = ls_version_actual – AND vha.version = atm.version

Por :

AND atm.plan = vha.plan
AND atm.version = vha.version

Y lo mismo en la query siguiente:
INSERT INTO TMP_MAT_OPT
SELECT cur.materia, ‘R’, atm.plan, atm.version
FROM sga_cursadas as cur ,
sga_atrib_mat_plan as atm
WHERE cur.unidad_academica = pUnidadAcademica
AND cur.carrera = pCarrera
AND cur.legajo = pLegajo
AND atm.unidad_academica = cur.unidad_academica
AND atm.carrera = cur.carrera
AND atm.plan = ls_plan – cur.plan
AND atm.version = ls_version_actual – cur.version
AND atm.materia = cur.materia
AND atm.tipo_materia <> ‘G’
AND cur.resultado = ‘A’

Reemplazar:

AND atm.plan = ls_plan – cur.plan
AND atm.version = ls_version_actual – cur.version

Por:

AND atm.plan = cur.plan
AND atm.version = cur.version

Ahi recupera la optativa que fue aprobada en la version anterior del plan actual del alumno?

Hola Alejandro,

en sga_atrib_mat_plan está bien, aparece registro para todas esas materias con la version 3.

Ahora pruebo lo que me pasaste…

Ahi probé lo que me mandaste.

Anduvo bien!

Reemplazo el SP con esas modificaciones??

SALUDOS

Alejandro:

Estoy viendo otra cosa:
En esa operacion “Materias genericas y puntaje asignado para un alumno” me aparece como que tiene aprobado los dos creditos, te lo mando adjunto en Imagen01.jpg.

Pero al ir a la otra operación: “Reporte de Estado de Aprobación de Materias Genericas” me aparecen como Pendientes. Te lo mando adjunto en Imagen02.jpg

Por las dudas te mando lo que me dio la salida modificando el SP sp_opt_al_gen:

M102 A 2012 1
M102 A 7140 2012 1
M103 A 2012 1
M103 A 7140 2012 1
M202 A 2012 2
M202 A 7241 2012 2
M204 A 2012 2
M204 A 7241 2012 2


Imagen01.jpg

Imagen01.png

Imagen02.jpg

Imagen02.png

En la operación b Reporte de Estado de Aprobación de Materias Genéricas[/b] se ejecuta el procedure sp_matGen_Aprob para ese alumno seleccionado. Este procedure a su vez ejecuta el procedure sp_resultGenerica que es el utilizado para evaluar si una materia genérica esta aprobada (es el que se usa en la solicitud del titulo, en correlativas, etc)

Podes probar la salida del procedure siguiente:
EXECUTE PROCEDURE sp_matGenAprob( , , );
Este retorna:
Código Carrera | Nombre Carrera | PLAN | Apellido y Nombre del alumno | código de materia genérica | nombre materia genérica | Resultado (Aprobado / Desaprobado) | Alumno regular (Si / No)|calidad del alumno

Y tambien probar por cada genérica el resultado de la ejecución del procedure siguiente:
EXECUTE PROCEDURE sp_resultGenerica( , , , ,‘0’ ,);
– En pasa el codigo de titulo de nivel final de ese plan de estudios.
Este retorna:
Resultado (A - Aprobo / R - No Aprobo la Mat. Generica) | Total de creditos obtenidos de las materias optativas


Consulta:

  1. ¿El título final de ese plan de estudio tiene orientaciones?
  2. ¿Las materias genéricas estan en alguna orientación?
  3. Existen mas de una materia generica en el plan? Si es asi, comparten materias optativas?

Hola Alejandro, te paso las salidas y a lo ultimo las respuestas a las preguntas:

EXECUTE PROCEDURE sp_matgen_aprob( “FCAL”, “157”, “25065304”);
157 Tecnicatura Universitaria en Mecatrónica 2012 xxxxxx 7140 CREDITOS: 1º Año 60 horas R S E
157 Tecnicatura Universitaria en Mecatrónica 2012 xxxxxx 7241 CREDITOS: 2º Año 60 horas R S E

EXECUTE PROCEDURE sp_resultGenerica( “FCAL”, “157”, “25065304”, “00007”,‘0’ ,“7140”);
R 0

EXECUTE PROCEDURE sp_resultGenerica( “FCAL”, “157”, “25065304”, “00007”,‘0’ ,“7241”);
R 0

Consulta:

  1. ¿El título final de ese plan de estudio tiene orientaciones?
    NO

  2. ¿Las materias genéricas estan en alguna orientación?
    NO

  3. Existen mas de una materia generica en el plan? Si es asi, comparten materias optativas?
    Esas dos genéricas son las únicas del plan, y tienen las siguientes optarivas:

  • Materia Genérica 7140: Optativas: M101, M102, M103 y M104 , todas con 30 puntos cada una, salvo M101 que tiene 60. El total del crédito es de 60
  • Materia Genérica 7240: Optativas: M201, M202, M203 y M204 , todas con 30 puntos cada una. El total del crédito es de 60

Avisame cualquier cosa que otra cosa mas probar.

GRACIAS!

Segun la respuesta de la ejecución del primer procedure, ese alumno ya esta Egresado en esa carrera, no?

Al verificar el cumplimiento de las dos materias genericas (7140, 7241) te dice que las tiene desaprobadas.

Podes enviar la salida de la siguientes consultas:


SELECT materia, plan, version FROM vw_hist_academica WHERE unidad_academica = 'FCAL' AND carrera = '157' AND legajo = '25065304') AND materia IN ('M101', 'M102', 'M103' y 'M104' ,'M201', M202', 'M203','M204')
ORDER BY materia;


SELECT * FROM sga_opt_gen_alumno WHERE unidad_academica = 'FCAL' AND carrera = '157' AND legajo = '25065304' ORDER BY materia_generica, materia_optativa;

SELECT * FROM sga_opt_generica WHERE unidad_academica = 'FCAL' AND carrera = '157' ORDER BY plan, version, materia_generica, materia_optativa;

SELECT a.plan, p.version_actual FROM sga_alumnos as a, sga_planes as p
WHERE a.unidad_academica = 'FCAL' AND a.carrera = '157' AND a.legajo = '25065304'
AND a.unidad_academica = p.unidad_academica and a.carrera = p.carrera and a.plan = p.plan


Alejandro, van las salidas:

SELECT materia, plan, version FROM vw_hist_academica WHERE unidad_academica = “FCAL” AND carrera = “157” AND legajo = “25065304” AND materia IN (“M101”, “M102”, “M103”, “M104” ,“M201”, “M202”, “M203”,“M204”)
ORDER BY materia;

M102 2012 1
M103 2012 1
M202 2012 2
M204 2012 2

SELECT * FROM sga_opt_gen_alumno WHERE unidad_academica = “FCAL” AND carrera = “157” AND legajo = “25065304” ORDER BY materia_generica, materia_optativa;
–NO DEVUELVE NADA

SELECT * FROM sga_opt_generica WHERE unidad_academica = “FCAL” AND carrera = “157” ORDER BY plan, version, materia_generica, materia_optativa;

FCAL 157 2012 1 M101 7140 S
FCAL 157 2012 1 M102 7140 S
FCAL 157 2012 1 M103 7140 S
FCAL 157 2012 1 M201 7241 S
FCAL 157 2012 2 M101 7140 S
FCAL 157 2012 2 M102 7140 S
FCAL 157 2012 2 M103 7140 S
FCAL 157 2012 2 M104 7140 S
FCAL 157 2012 2 M201 7241 S
FCAL 157 2012 2 M202 7241 S
FCAL 157 2012 2 M203 7241 S
FCAL 157 2012 2 M204 7241 S

SELECT a.plan, p.version_actual FROM sga_alumnos as a, sga_planes as p
WHERE a.unidad_academica = “FCAL” AND a.carrera = “157” AND a.legajo = “25065304”
AND a.unidad_academica = p.unidad_academica and a.carrera = p.carrera and a.plan = p.plan

2012 3

Esta bien que en la tabla sga_opt_gen_alumno no exista registros ya que como las optativas solo pertenecen a solo una de las genericas que existe en el plan de estdios, esta tabla no se llena nunca.

Pero veo algo raro en la configuración de las materias genericas en las diferentes versiones del plan de estudios “2012” de la carrera “157”.

Por lo que dijiste en un mensaje anterior, la composición de las dos materias genericas es la siguiente:
Materia Genérica 7140:
Optativas: M101, M102, M103 y M104
Materia Genérica 7240:
Optativas: M201, M202, M203 y M204

Pero en la consulta que corriste, la que define como esta formada cada materia generica en cada version del plan de estudios, dice lo siguiente:

  • Plan 2012 - Version 1:

    • Genérica 7140 (M101, M102, M103)
    • Genérica 7241 (M201)
  • Plan 2012 - Version 2:

    • Genérica 7140 (M101, M102, M103, M104)
    • Genérica 7241 (M201, M202, M203, M204)
  • Plan 2012 - Version 3:
    No hay registro de materias genericas y sus optativas. Casualmente esta version es la version actual del plan de estudios.

Consulta:

  1. ¿Las dos materias genéricas estuvieron constituídas con todas esas optativas desde un comienzo, es decir desde que se agregaron a la version 1, luego a la version 2 y version 3 del plan de estudios?
    Porque veo que en la version 2 del plan aparecen materias optativas que no estaban en su momento registradas en la version 1 del plan, pareciera que las agregaron despues, es correcto?

  2. No veo registro para la version 3 del plan de estudios que es la version actual del plan de estudios. El porque no existe registro no lo se, pero si se que en todos los procesos estos que verifican si una materia generica esta cumplida o no se busca la composición de la materia generica en esta tabla (sga_opt_generica)

Posible solución:
Completar la tabla sga_opt_generica para la version 3 del plan de estudios con las dos materias genericas y sus componentes:

BEGIN WORK;
-- Genérica 7140
INSERT INTO sga_opt_generica (unidad_academica, carrera, plan, version, materia_generica, materia_optativa, generador) VALUES ('FCAL','157','2012','3','7140','M101','S');
INSERT INTO sga_opt_generica (unidad_academica, carrera, plan, version, materia_generica, materia_optativa, generador) VALUES ('FCAL','157','2012','3','7140','M102','S');
INSERT INTO sga_opt_generica (unidad_academica, carrera, plan, version, materia_generica, materia_optativa, generador) VALUES ('FCAL','157','2012','3','7140','M103','S');
INSERT INTO sga_opt_generica (unidad_academica, carrera, plan, version, materia_generica, materia_optativa, generador) VALUES ('FCAL','157','2012','3','7140','M104','S');

-- Genérica 7241
INSERT INTO sga_opt_generica (unidad_academica, carrera, plan, version, materia_generica, materia_optativa, generador) VALUES ('FCAL','157','2012','3','7241','M201','S');
INSERT INTO sga_opt_generica (unidad_academica, carrera, plan, version, materia_generica, materia_optativa, generador) VALUES ('FCAL','157','2012','3','7241','M202','S');
INSERT INTO sga_opt_generica (unidad_academica, carrera, plan, version, materia_generica, materia_optativa, generador) VALUES ('FCAL','157','2012','3','7241','M203','S');
INSERT INTO sga_opt_generica (unidad_academica, carrera, plan, version, materia_generica, materia_optativa, generador) VALUES ('FCAL','157','2012','3','7241','M204','S');

COMMIT WORK;

Luego probar nuevamente la ejecución del procedure que indica si la generica esta o no cumplida para ese alumno (ver si da el resultado: A=Esta aprobado 0=Cantidad de créditos ):


-- Genérica 7140
EXECUTE PROCEDURE sp_resultGenerica( "FCAL", "157", "25065304", "00007",'0' ,"7140");

-- Genérica 7241
EXECUTE PROCEDURE sp_resultGenerica( "FCAL", "157", "25065304", "00007",'0' ,"7241");

Hola Alejandro,

ejecuté esas lineas, luego ejecuté los EXECUTE de nuevo y me devuelven esto:

– Genérica 7140
EXECUTE PROCEDURE sp_resultGenerica( “FCAL”, “157”, “25065304”, “00007”,‘0’ ,“7140”);
A NULO

– Genérica 7241
EXECUTE PROCEDURE sp_resultGenerica( “FCAL”, “157”, “25065304”, “00007”,‘0’ ,“7241”);
A NULO

Con respecto a si se agregaron estas nuevas materias del 1 al 2m no lo se, le voy a trasmitir esta duda al personal de alumnado de esa Facultad.

Lo que si se es que de la versión 2 a la 3 el cambio que hubo fué solo la modificación de una materia, pero creo que no es ninguna de esas optativas, también le voy a consultar esto para asegurarme.

Bueno, por lo que veo entonces el problema era que la definición de la materia generica en la version 3 del plan de estudios 2012 no estaba (tabla sga_opt_generica), por ese motivo al verificar si esas materias genericas estaban aprobadas por ese alumno, indicaba que no.
Ahora el resultado que te da es A-Aprobado.
Volve a verificar las operaciones que mencionaste anteriormente desde el sistema y confirma si ya esta arreglado.

Quizas debas completar la version 1 con la definicion que faltaba:

BEGIN WORK;
-- Plan 2012 - Version 1
-- Genérica 7140
INSERT INTO sga_opt_generica (unidad_academica, carrera, plan, version, materia_generica, materia_optativa, generador) VALUES ('FCAL','157','2012','1','7140','M104','S');

-- Genérica 7241
INSERT INTO sga_opt_generica (unidad_academica, carrera, plan, version, materia_generica, materia_optativa, generador) VALUES ('FCAL','157','2012','1','7241','M202','S');
INSERT INTO sga_opt_generica (unidad_academica, carrera, plan, version, materia_generica, materia_optativa, generador) VALUES ('FCAL','157','2012','1','7241','M203','S');
INSERT INTO sga_opt_generica (unidad_academica, carrera, plan, version, materia_generica, materia_optativa, generador) VALUES ('FCAL','157','2012','1','7241','M204','S');

COMMIT WORK;

Martín y Alejandro:

Parece muy raro (y preocupante …) que en un cambio de versión falten materias que estaban en versiones anteriores. A mi criterio pueden haber sucedido una de 2 cosas: o al hacer el cambio de versión sacaron las materias genéricas (o se olvidaron de ponerlas) en los ciclos de la nueva versión o bien había algún trigger deshabilitado al armar el plan o el ciclo nuevo.

Sería bueno saber que pasó, porque sino como digo es preocupante una falla así.

Saludos

Gustavo

Gustavo, cuando se activa una version de plan de estudios se corre el proceso sp_opt_generica. Este proceso es el que completa la tabla sga_opt_generica.
Lo mismo sucede cuando se confirma la modificación de una materia genérica agregandole optativas y cuando esta genérica existe en planes de estudios que estan activos.

Lo que puede haber sucedido es que tuvieran desactivado el trigger de update de la tabla sga_versiones_plan cuando activaron esa version del plan de estudios…

Como decis es raro, porque sino un caso como estos hubiera ya sido informado hace mucho tiempo…