GENERACION DE LEGAJOS -2.07.0

Estimados… necesito de su ayuda

Cuando quiero generar el legajo de un alumno simplemente no lo hace y da error sin especificar nada mas.

Despues de varios debug creo que encontre el problema pero no se cual seria la mejor solucion… .

Simplemente el sp de creacion de legajos llama a muchos sp… entre los que estan este en el cual pongo el trace… en donde salta el problema… enviadole los parametros de input…
Este alumno tiene otras dos carreras y tengo una matriz de equivalencias en donde la materia origen tiene una escala de notas distinta a la que esta definida como materia comun de la materia destino que se la quiere dar por aprobada… La materia origen tiene una escala de notas 3 que tiene un aprobado y desaprobado… sin valor numerico.

En este caso particular el alumno reprobo la materia origen 2 veces y la 3ra. la aprobo… conclusion el select que creo que falla es:

SELECT max(sga_det_escala.nota)
  INTO vNotaRetorno
  FROM sga_det_escala
 WHERE sga_det_escala.escala_notas = vEscalaRetorno
   AND sga_det_escala.valor_numerico = vPromedioNumerico;

en donde abajo reemplazo por los valoores que tiene y obviamente da el error…

SELECT max(sga_det_escala.nota)
FROM sga_det_escala
WHERE sga_det_escala.escala_notas = 1
AND sga_det_escala.valor_numerico = NULL;


Si lo inicializo en cero a la variable vPromedioNumerico = 0 dentro del SP… (YA LO PROBE… fuanciono y no me dio el error), es decir cuando voy a ver la historia academica en la carrera dos… aparece la materia destino 3 veces… 2 con reprobado y el valor (cero) y la otra con la letra ‘A’, ESTO ESTARIA BIEN TECNICAMENTE.

Le agradezco su ayuda…

TRACE

execute function dba.sp_eq_nota_equiv[procid=872] ( pescalanotas = 3 , pnota = D , punidadacademica = EHU , pmateria = 00453 , ptipo = A )
let vnotaretorno = NULL.
let vescalaretorno = NULL.
expression:(or (null pnota), (null pescalanotas))
evaluates to f
expression:
(select sga_tipos_materia.escala_examen, sga_tipos_materia.escala_cursada
from sga_materias, sga_tipos_materia
where (and (and (= sga_materias.unidad_academica, punidadacademica), (= sga_materias.materia, pmateria)), (= sga_materias.tipo_de_materia, sga_tipos_materia.tipo_de_materia)))
evaluates to 1 ; 1 ;
let vescalaexamen = 1
let vescalacursada = 1
expression:(= ptipo, “C”)
evaluates to f
expression:(= ptipo, “A”)
evaluates to t
expression:vescalaexamen
evaluates to 1
let vescalaretorno = 1
expression:(= vescalaretorno, pescalanotas)
evaluates to f
expression:
(select sga_det_escala.valor_numerico
from sga_det_escala
where (and (= sga_det_escala.escala_notas, pescalanotas), (= sga_det_escala.nota, pnota)))
evaluates to NULL. ;
let vvalornumerico = NULL.
expression:
(select (max sga_det_escala.valor_numerico)
from sga_det_escala
where (and (= sga_det_escala.escala_notas, vescalaretorno), (<= sga_det_escala.valor_numerico, vvalornumerico)))
evaluates to NULL. ;
let vvaloranterior = NULL.
expression:
(select (min sga_det_escala.valor_numerico)
from sga_det_escala
where (and (= sga_det_escala.escala_notas, vescalaretorno), (>= sga_det_escala.valor_numerico, vvalornumerico)))
evaluates to NULL. ;
let vvalorposterior = NULL.
expression:(and (null vvaloranterior), (null vvalorposterior))
evaluates to t
exception : looking for handler
SQL error = -696 ISAM error = 0 error string = = “”
exception : handler FOUND
expression:errorinfo
evaluates to frfddfdxddxdxdxdxdx m m,
expression:isamerror
evaluates to 0
expression:sqlerr
evaluates to -696
raise exception :-696, 0, “”
exception : looking for handler
SQL error = -696 ISAM error = 0 error string = = “”
exception : no appropriate handler
exception : looking for handler
SQL error = -696 ISAM error = 0 error string = = “”
exception : handler FOUND
expression:errorinfo
evaluates to
expression:isamerror
evaluates to 0
expression:sqlerr
evaluates to -696
raise exception :-696, 0, “”
exception : looking for handler
SQL error = -696 ISAM error = 0 error string = = “”
exception : no appropriate handler
exception : looking for handler
SQL error = -696 ISAM error = 0 error string = = “”
exception : handler FOUND
expression:errorinfo
evaluates to
expression:isamerror
evaluates to 0
expression:sqlerr
evaluates to -696
raise exception :-696, 0, “”
exception : looking for handler
SQL error = -696 ISAM error = 0 error string = = “”
exception : no appropriate handler
exception : looking for handler
SQL error = -696 ISAM error = 0 error string = = “”
exception : handler FOUND

drop table tmp_equiv_todo;
expression:errorinfo
evaluates to
expression:isamerror
evaluates to 0
expression:sqlerr
evaluates to -696
raise exception :-696, 0, “”
exception : looking for handler
SQL error = -696 ISAM error = 0 error string = = “”
exception : no appropriate handler
exception : looking for handler
SQL error = -696 ISAM error = 0 error string = = “”
exception : handler FOUND
expression:(|| "Error: ", error_info)
evaluates to Error:
expression:isam_err
evaluates to 0
expression:sql_err
evaluates to -696
expression:leg
evaluates to EHU-1864
procedure sp_crear_alumno returns EHU-1864 , -696 , 0 , Error:

iteration of cursory procedure sp_crear_alumno


error en la generaciAn de legajos.doc (60 KB)

Cada nota debe tener su correspondiente valor numerico (sga_det_escala.valor_numerico)

Si tenes la escala de notas 1 con dos notas - Relacionada con la materia origen del grupo de equivalencias:
Aprobado, Desaprobado

y la escala de notas 2 con 10 notas (de 0 a 10) - Relacionda con la materia a otorgar por equivalencia:
0, 1 ,… 10

Hay dos cosas por hacer:

  1. Ver cada nota de la escala de notas 1 con que nota de la escala de notas 2 se correspondería, y esto se hace a través del valor numérico (que seria el valor ponderado de cada nota para buscar su equivalente en la escala de notas de la materia que vas a dar por equivalencia).

  2. En el caso de que la nota no tenga valor numérico entonces no generar una nota para la equivalencia a otorgar (es decir va sin nota y no sumaría para el promedio general).
    En este caso hay que modificar el proceso sp_eq_nota_equiv para que si el valor numérico es nulo (que es el ejemplo que estas planteando) no devuelva nota.
    Esto será tanto para las equivalencias con resultado aprobado como las equivalencias con resultado desaprobado (si es que se pasan los desaprobados) que se otorgarán.

Igualmente creo que hay que modificar el proceso para que no de error y devuelva un NULL en la nota a asignar en la equivalencia, mas alla que en el grupo de equivalencias de la matriz este definido que se traslada la nota.

Cargá una solicitud y lo seguimos por alli.

Gracias Alejandro por la respuesta…

En el sistema tengo el parametro equiv_pasar_reprobados = ‘S’, con lo cual el desaprobado debe pasar… pero como ese desarprobado en la escala de notas 3 que tengo cargada no tiene un valor numerico… no sabe como pasarla a una escala de notas 1 que es la default del siu-guarani…

Yo probe y lo que hice fue INICIALIZAR a la variable

LET vPromedioNumerico = 0;

y si genera el legajo pero el desaprobado con valro cero…

luego probe ponerle

LET vPromedioNumerico = ‘’;

Y se genera el legajo y el desaprobado con valor ‘’…

para salir del paso ahora hasta ver cual seria el parche o correccion de esto… que seria lo correcto?

te envio un word para que veas como quedo…


GENERACION_OK.doc (46.5 KB)

Lo correcto sería hacer lo que dice la resolución del plan de estudios o la matriz de equivalencias.

Es decir que deberia haber una definición de que hacer cuando las escalas de notas no coinciden y en este caso donde la escala origen solo tiene Aprobado y Desaprobado y la escala de notas de la equivalencia a generar es numérica.
Esto debería estar definido en la resolución de la matriz de equivalencias o Plan de estudios…

Opciones:

  1. Recuperar la nota equivalente en la otra escala (para ello usar el valor numerico de cada escala y buscar el valor de nota mas cercano) y asignarsela en la equivalencia a otorgar.

  2. No pasar la nota a la equivalencia, es decir dejar la equivalencia sin nota. En este caso es no definiendole valor numerico a la nota (como lo tenes actualmente y modificando ese proceso que calcula nota para que no de error)

Esto tanto para los aprobados como para los desaprobados

Okey Ale… hablo con de depto de Alumnos y vemos como esta definido y como modifico para avanzar…

a esto lo subo en el GDS? para que se corrija?

Saludos.

Si, subilo y te adjunto el procedure modificado, para que no de error en el caso de que el valor numerico sea nulo y que devuelva nulo en la nota para otorgarle a la equivalencia.
Luego de lo que te informen en el Departamento de Alumnos, fijate si tenes que dejar las escalas de notas como estan o debes asignarle un valor numerico porque la equivalencia a otorgar debe llevar nota.
Si la forma como se calcula actualmente no te cierra usando el valor numerico de cada nota en las escalas de notas otra opcion es generar relaciones entre cada escala de notas e indicar las equivalencias entre notas y cambiar este proceso para que mire esas equivalencias entre notas de diferentes escalas.

Ale…

hablando con el depto de alumnos quedamos en que la solucion fue MUY SATISFACTORIAMENTE ya que en su momento como se aprobo como A o D al momento de pasarlo deberia reflejar esto ya que no se podria determinar el valor que en su momento original no lo tuvo.

Te lo digo asi lo cambies correctamente en el requirimiento del GDS.

Desde ya muchas gracias.

No entendi lo de la solución…
Con “Muy satisfactoriamente” te referis a que le corresponderia una nota cuyo concepto sea ese?

Perdon Ale…

Me referia a tu solucion!!!

y lo que me dijo el personal del dpto de alumnos es que esta correcto que le pase ‘D’ o ‘A’, como la aprobo originalmente.

Gracias.