Error al confirmar cambios Materia Generica - car00022

Buenos dias, tenemos una nueva optativa (con correlativas) que agregar a una genérica y cuando vamos a confirmar cambios nos tira el mensaje de error relacionado con la “fk_corfor_at_mat”
Probamos de insertar la optativa sin correlativas y la graba correctamente.
¿Alguna idea que puede estar pasando?

Muchas Gracias, Pablo.-

pd. Adjunto imagen del error.


Erorr 691.JPG

Erorr 691.JPG_thumb.png

Hola Pablo, fijate si pueden hacer un debug al procedure sp_cambiomgenerica
Deben editar el procedure y agregar lo siguiente:
Al comienzo luego del “end exception;” agregar:


SET DEBUG FILE TE "path\debug_generica.txt";
TRACE ON;

y al final antes del “end procedure”:

TRACE OFF;

Una vez agregado esto vuelvan a recrear el procedure e intentar confirmar los cambios del agregado de la/s optativa/s con las correlativas cargadas. Si falla adjunta el archivo “debug_generica.txt” a este mensaje y vemos cual es el problema.
Por la fk que falla quiere decir que la optativa no llega a insertarse en la tabla sga_atrib_mat_plan, es decir en los planes de estudios en donde se encuentra la genérica.

Hola Alejandro, ahi recien pude hacer el debug. Te adjunto el archivo con las salidas.

Muchas gacias.

Pablo.-


debug_generica.txt (51.9 KB)

Existe la materia 3T7 en?:
carrera = 11
plan = 2003
version = 1

Podes comprobarlo ejecutando lo siguiente:

SELECT * FROM sga_atrib_mat_plan WHERE unidad_academica = 'INGE' and carrera = '11'  AND plan = '2003' AND  version = '1'  AND  materia = '3T7';

Porque intenta incluir la materia 3T7 en esa version del plan. Es esta materia la nueva optativa que agregan a la generica?
Es correcto que esa optativa se agregue en esa carrera/plan/version? Existe alli la materia generica?


Que devuelve cada una de estas consultas?

SELECT sga_planes.carrera, sga_planes.plan,sga_versiones_plan.version, sga_planes.version_actual
          FROM   sga_planes, sga_versiones_plan, sga_atrib_mat_plan
	        WHERE sga_planes.unidad_academica = 'INGE'
	        AND sga_versiones_plan.unidad_academica = sga_planes.unidad_academica
	        AND sga_versiones_plan.carrera = sga_planes.carrera
	        AND sga_versiones_plan.plan    = sga_planes.plan
	        AND sga_planes.estado IN ('V','A','N')
	        AND (sga_versiones_plan.version = sga_planes.version_actual  OR  sga_versiones_plan.fecha_ent_vigencia IS NULL)
	        AND sga_versiones_plan.unidad_academica = sga_versiones_plan.unidad_academica
	        AND sga_versiones_plan.carrera  = sga_atrib_mat_plan.carrera
	        AND sga_versiones_plan.plan      = sga_atrib_mat_plan.plan
	        AND sga_versiones_plan.version  = sga_atrib_mat_plan.version 
	        AND sga_atrib_mat_plan.materia   = 'CODIGO MATERIA GENERICA';

 SELECT  DISTINCT   carrera, plan, version
	    FROM  sga_modmatgen_atmp
	    WHERE  unidad_academica = 'INGE'
	    AND  materia_generica = 'CODIGO MATERIA GENERICA';

Hola Alejandro:

1.- La materia 3T7 NO está incluida en el plan y se quiere agregar a la generica G11 que SI existe en el plan.

2.- Salida de la 1er consulta
11 2003 1 0
11 03V0 1 1
11 03V1 0 0
11 2003 0 0

3.- Salida 2da consulta
11 03V0 1
11 03V1 0
11 2003 0
11 2003 1

Saludos, Pablo.-

Pablo, desde que hicieron esta modificacion en la generica hasta que intentaron confirmar esta modificación para que impacte en los planes donde se encuentra la generica, se activó alguna versión del plan de estudios?
Hace la prueba de sacar esa optativa de esa genérica y volverla a agregar, asignarle las correlativas y luego confirmar esa modificacion.

Hola Alejandro,

No se activo ninguna versión del plan de estudio para esta carrera previamente.
La version 0 es la activa vigente y la 1 esta sin activar, todos los cambios en la generica se hicieron posterior a la nueva version .
Ya hicimos la prueba de sacar la generica y volverla a agregar y da el mismo error.

Pablo.-

Por los datos que enviaste, la generica existe en estos planes de estudios:
Carrera = 11 Plan = 2003 Version = 1
Carrera = 11 Plan = 2003 Version = 0
Carrera = 11 Plan = 03V0 Version = 1
Carrera = 11 Plan = 03V1 Version = 0

Las correlativas que le asignaste a la optativa 3T7, existen en estas versiones de planes de estudios?

¿Que datos devuelven las siguientes consultas? (Falta el còdigo de la materia genérica)


SELECT sga_mod_mat_gen.materia_optativa
	FROM sga_mod_mat_gen
    WHERE sga_mod_mat_gen.unidad_academica = 'INGE'
	 AND sga_mod_mat_gen.materia_generica =   ;

SELECT unidad_academica, carrera, plan, version, materia, condicion, formula
		FROM sga_modmg_corrform
		 WHERE  unidad_academica = 'INGE'
		   AND  materia_generica = 
		   AND materia = '3T7';

Hola Alejandro,

Las correlativas de la optativa 3T7 existen en estas versiones de los planes de estudios. Para hacer otra prueba borramos a la optativa de la genérica y sigue tirando el mismo error.

Te paso la salida de la primer consulta, la segunda sale vacía (acordate que la borre a la 3T7 para hacer la prueba)

Materia_optativa
878
879
1QP
914

Pablo.-

Justamente es la primera la 2da consulta la que me interesa.
Volve a agregar la optativa 3T7 a esa generica, asignarle las correlativas que corresponden y volver a correr esa consulta y enviarme el resultado.

Hola Alejandro, ahi le agregamos las correlativas. Te paso la salida de la segunda consutla.

INGE 11 2003 0 3T7 C *
INGE 11 2003 0 3T7 A *

Pablo.-

Pablo, ingresa una solicitud por el GDS, vere de enviarte el procedure con una modificación y ver si eso resuelve el problema.
Una consulta mas, puede ser que la materia 3T7 ya existe en alguna de esas versiones de planes de la carrera 11?

Hola Alejandro, estuvimos revisando la base de datos y encontramos que la materia 3T7 ya estaba asignada a una carrera como obligatoria y el error ocurria porque se intento agregar a otro plan como materia optativa dentro de la genérica G11 que estaba en ambos planes.

Ya pudimos arreglarlo!!!

Muchas Gracias nuevamente por tu ayuda Alejandro.

Saludos, Pablo.-

Bueno, casualmente el ajuste que queria enviarles tenia en cuenta esa situaciòn por eso les habia solicitado que ingresen una solicitud asi les enviaba el ajuste.
El proceso actual cuando detecta que la optativa ya existe en algunas de las versiones del plan donde se lo esta agregando, entonces falla y no lo insertaba en las otras versiones del plan de estudios con lo cual cuando intentaba insertar las correlativas en esas otras versiones de plan d eestudios es cuando fallaba el proceso.