[SOLUCIONADO] Manejo de Parciales

Hola a todos,
en nuestra universidad estamos por empezar a trabajar con el módulo de parciales en las cursadas, me gustaría saber si hay documentación sobre esto para emepzar a hacer algunas pruebas con los docentes y que ellos puedan empezar a cargar las notas de parciales y recuperatorios. Desde ya muchas gracias por la info que nos puedan facilitar.

Saludos
Juan E. Gomez
UNSL

Hola Juan
No tengo a mano documentación específica de Parciales. A partir de la versión 2.6.4 se permite a los usuarios de Gestión manejar las operaciones de parciales, que antes sólo se permitía a los perfiles Docentes.

  • Desde Gestión tienen que crear los tipos de Parciales. Los recuperatorios son NO esenciales, es decir, dependen de otros.
  • Crear parciales: se pueden crear todos los que necesiten. Los recuperatorios tienen una Evaluación de Origen, pero sólo pueden tener una así que no es posible crear recuperatorios comunes a los 2 parciales.
    Después se puede hacer todo tanto desde Gestión por usuarios o docentes, como desde internet, desde el perfil docente:
  • Alta de evaluaciones parciales: para una comisión se pueden instanciar todas las evaluaciones que se hayan creado en al Alta de parciales, queda asociado a una comisión, y se debe ingresar fecha, hora (optativo) y escala de notas, que puede ser cualquiera, no necesariamente la de la comisión y diferente en cada evaluación parcial de la comisión.
  • Ingreso de notas: se ingresa la nota de cada alumno, si es que hay alguno, según la escala de notas de la evaluación.
    No está validando que un alumno en recuperatorio tenga nota de desaprobado en el origen. Tampoco se valida que en alguna instancia ya el alumno no pueda estar, por ejemplo si hay 2 parciales con un recuperatorio cada uno, si desaprobó el primero y su recuperatorio igual puede tener notas en el 2do parcial o en su recuperatorio.
    En la carga de notas los alumnos de cada parcial son todos los de la comisión siempre, por eso hay que tener cuidado al cargar notas especialmente en recuperatorios ya que no están sólo los desaprobados del parcial origen. En recuperatorio si un alumno no tiene nota no se sabe si es porque estuvo ausente o porque ya aprobó en el parcial de origen (si es que hay solo un recuperatorio) o en un recuperatorio anterior del miemo parcial (si hay mas de uno para ese parcial)
    No se pueden modificar los datos de una evaluación parcial (fecha, escala de notas), hay que borrarla y volver a crearla. Pero no se pueden borrar evaluaciones con notas cargadas.
    En general la recomendacion sería que los usen pero que tengan en cuenta que hay cosas que no se validan tanto en la creacion como en la carga de notas.

Espero que con esto tengas como para empezar.
saludos

La repuesta anterior me fue muy útil. Muchas Gracias.
Ahora nos surgió lo siguiente, el store procedure sp_eval_parc_alum me devuelve el error “684: Function () returns too many values.”, pero no puedo encontrar el error. Si me pueden ayudar con esto se los agradecería mucho.

Saludos.

Hola

En que versión sale ese error?

Emilio

Hola Emilio,
estamos en la versión 2.6.3.

Juan

no tendras dos fechas para la misma evaluacion?
la otra es que hayan modificado el retorno de sp_docentes_com

Emilio

Juan:

La otra cosa que se puede acotar a lo que dijo Guillermo, por si no lo sabías aún, es que las notas de los parciales no se vinculan con la nota de cursada. Es decir que no hay un cálculo automático y pasaje de una nota de cursada de los parciales al detalle del acta de cursada.

Si se desea alguna funcionalidad de ese tipo hay que programarla como una personalización.

Esto lo digo porque en una facultad me pedían que querían cargar los parciales los adminitrativos. Les hice la modificación (en la versión 2.06.2 no estaba esa funcionalidad) y cuando se enteraron que no les calculaba automáticamente el promedio me dijeron: “Entonces para que nos sirve cargar los parciales??”.

Saludos

Gustavo

No sucede que se de alguna de las situaciones que mencionas con relación a las fechas o al procedure sp_docentes_com al cual no le hemos hecho modificaciones.

Juan

Gustavo:

nos sirve tu aclaración para informarles a los docentes que este modulo solo serviría para publicar las notas de los parciales y que si desean que les brinde otras funcionalidades habrá que personalizar. Muchas gracias.

Juan

Hola Juan

podrás debuguear el procedure a ver donde sale el error?

Emilio

Hola Emilio,
estuve ejecutando por partes el prodedure sp_eval_parc_alum y falla en esta porción de código:

[b]-- Alumnos inscriptos en la comision.
FOREACH EXECUTE PROCEDURE sp_AluInscCom ( pComision )
INTO vcUnidadAcademica, vcMateria, vcMateriaNombre, vcAnio, vcPerLect, iComision, vcComisionDesc, vcCatedra, vcCalidadInsc, vcEstado, vcCarrera, vcCarreraNombre, vcAlumnoLegajo, vcAlumnoNombre, vcDocenteNombre,vcCarrNomRed, vcSede, vcNombreSede

   -- Traigo informacion que estuviera cargada, sino, no importa, deja nulos.
   -- EN CASO DE PROMOCIÓN, IGUALMENTE DEVUELVE COMO DESCRIPCIÓN APROBADO.
   SELECT sga_eval_parc_alum.nota,
          DECODE(sga_eval_parc_alum.resultado, 'A', 'Aprobado', 'R', 'Reprobado', 'U', 'Ausente', 'P', 'Aprobado' ),
          sga_eval_parc_alum.corregido_por,
          sga_eval_parc_alum.observaciones
     INTO vcNota, vcResultado, vcCorregidoPor, vcObservaciones
     FROM sga_eval_parc_alum
    WHERE sga_eval_parc_alum.unidad_academica = vcUnidadAcademica
      AND sga_eval_parc_alum.carrera = vcCarrera
      AND sga_eval_parc_alum.legajo = vcAlumnoLegajo
      AND sga_eval_parc_alum.comision = iComision
      AND sga_eval_parc_alum.evaluacion = vcEvaluacion;
   
   RETURN vcUnidadAcademica, vcMateria, vcMateriaNombre, vcAnio, vcPerLect, iComision, vcComisionDesc, vcEscalaNotas, vcEscalaNotasDesc, vcEvaluacion, vcEvaluacionDesc, vcCatedra, vcCalidadInsc, vcEstado, vcCarrera, vcCarreraNombre, vcAlumnoLegajo, vcAlumnoNombre, vcEvaluaFechaHora, vcNota, vcResultado, vcCorregidoPor, vcObservaciones WITH RESUME;

END FOREACH;[/b]

La verdad no me doy cuenta donde puede estar el error.

Juan

Hola

ponele al procedure un
set debug file to ‘c:\parciales.txt’;
trace on;

al principio y

trace off;

al final

Te generará el archivo parciales.txt y ahi veremos que está fallando.
La otra es ejecutar
EXECUTE PROCEDURE sp_AluInscCom ( pComision )
con la comision que da error y el select que tenes para ver si hay algun registro duplicado.

Emilio

Hola Emilio,
ahí te paso la salida del archivo:

[b]trace on

let vcunidadacademica = NULL.
let vcmateria = NULL.
let vcmaterianombre = NULL.
let vcanio = NULL.
let vcperlect = NULL.
let icomision = NULL.
let vccomisiondesc = NULL.
let vcescalanotas = NULL.
let vcescalanotasdesc = NULL.
let vcevaluacion = NULL.
let vcevaluaciondesc = NULL.
let vccatedra = NULL.
let vccalidadinsc = NULL.
let vcestado = NULL.
let vccarrera = NULL.
let vccarreranombre = NULL.
let vcalumnolegajo = NULL.
let vcalumnonombre = NULL.
let vcdocentenombre = NULL.
let vcevaluafechahora = NULL.
let vcfechahoracron = NULL.
let vcnota = NULL.
let vcresultado = NULL.
let vccorregidopor = NULL.
let vcobservaciones = NULL.
expression:
(select sga_cron_eval_parc.fecha_hora, sga_atr_eval_parc.escala_notas, sga_escala_notas.nombre
from sga_cron_eval_parc, sga_atr_eval_parc, sga_escala_notas
where (and (and (and (and (= sga_cron_eval_parc.comision, pcomision), (= sga_cron_eval_parc.evaluacion, pevaluacion)), (= sga_cron_eval_parc.comision, sga_atr_eval_parc.comision)), (= sga_cron_eval_parc.evaluacion, sga_atr_eval_parc.evaluacion)), (= sga_atr_eval_parc.escala_notas, sga_escala_notas.escala_notas)))
evaluates to Promociona c/7 ; 4 ; 2011-08-10 10:00:00 ;
let vcfechahoracron = 2011-08-10 10:00:00
let vcescalanotas = 4
let vcescalanotasdesc = Promociona c/7
expression:( to_char, vcfechahoracron, “%d/%m/%Y %H:%M”)
evaluates to 10/08/2011 10:00
let vcevaluafechahora = 10/08/2011 10:00
expression:
(select sga_eval_parc.evaluacion, sga_eval_parc.descripcion
from sga_eval_parc
where (= sga_eval_parc.evaluacion, pevaluacion))
evaluates to Primer Parcial ; 1 ;
let vcevaluacion = 1
let vcevaluaciondesc = Primer Parcial
expression:
(select sga_comisiones.comision, sga_comisiones.materia, sga_materias.nombre, sga_comisiones.anio_academico, sga_comisiones.periodo_lectivo, sga_comisiones.nombre, sga_comisiones.catedra
from sga_comisiones, sga_materias
where (and (and (= sga_comisiones.comision, pcomision), (= sga_materias.unidad_academica, sga_comisiones.unidad_academica)), (= sga_materias.materia, sga_comisiones.materia)))
evaluates to NULL. ; LIC. CS. EDUC ; 1° anual ; 2011 ; INGLES PARA PROPOSITOS ESPECIFICOS ; 205 ; 18497 ;
let icomision = 18497
let vcmateria = 205
let vcmaterianombre = INGLES PARA PROPOSITOS ESPECIFICOS
let vcanio = 2011
let vcperlect = 1° anual
let vccomisiondesc = LIC. CS. EDUC
let vccatedra = NULL.
start procedure cursor.
execute ( sp_aluinsccom, pcomision)
exception : looking for handler
SQL error = -684 ISAM error = 0 error string = = “”
exception : no appropriate handler[/b]

También estuve mirando el resultado del select del procedure sp_AluInscCom pero no hay registros duplicados en la comisión.

Juan

Hola Juan

el error está acá
FOREACH EXECUTE PROCEDURE sp_AluInscCom ( pComision )
INTO vcUnidadAcademica, vcMateria, vcMateriaNombre, vcAnio, vcPerLect, iComision, vcComisionDesc, vcCatedra, vcCalidadInsc, vcEstado, vcCarrera, vcCarreraNombre, vcAlumnoLegajo, vcAlumnoNombre, vcDocenteNombre,vcCarrNomRed, vcSede, vcNombreSede

la cantidad de campos que devuelve el sp_AluInscCom no concuerda con la cantidad de variables que hay en el INTO.
Fijate si no se modificó ese procedure. O bien recrealo del catálogo de la version.

Emilio

Hola Emilio,
era eso, volví a crear el procedure y ahora funciona. Muchas Gracias.
Un abrazo.

Saludos.
Juan