error- 684 al pasar de versión 2.70 a 2.93

Probé con los permisos de las siguientes maneras:
GRANT EXECUTE ON sp8334_cert_control_int TO PUBLIC;
y tambien
grant execute on function “dba”.sp8334_cert_control_int (char,char,char,varchar,varchar) to “public” as “dba”
Sin resultado
controle las entradas y salidas y aun no encuentro el problema.
Les mando el resultado de un trace en el que al parecer el problema está en sp_regula_alumno.
Corriendo solo ese procedimiento por separado: EXECUTE PROCEDURE “dba”.sp_regulalumno (‘EIE’, ‘18’, ‘87/2014’, 1, 1, 1), no me dá error.
Gracias.
Saludos.-


trace_certif.txt (6.27 KB)

Perdón solo se pegó parte del escrito, les decia que al cambiar de versión tuve un par de problemas, uno de ellos es el que paso a comentarles. En varios certificados personalizados me dió el error : Function -684 :Function =(%s) Returns too many values.
Hay uno en particular que urge solucionar ya que lo solicitan diariamente que es un certificado donde salen todas las materias aprobadas y regulares de un alumno. Ahora si continua el post anterior…

¡Buen día Mónica!, ahora vemos el trace que adjuntaste.
¿Cuando probaron estos certificados en el ambiente de testeo no tuvieron error?

Hola Emilse, en el testero si daba el error, pero como salian todas las materias resolvimos seguir adelante y ver despues el tema sin urgencias. El caso es que no nos dimos cuenta en este certificado en particular, donde deben salir las regularidades tambien, que no las listaba. Saltó en particular porque vino a ventanilla una persona del interior que no tenia historia academica y el sistema mostraba el certificado en blanco, ahí se dieron cuenta que habia un problema.
Mandé un gds con este y otro problema. Lo seguimos por aqui? como uds decidan.
Saludos.-

Buen dia, disculpen la insistencia pero necesito ayuda con esto. Gracias.-

El error -684 significa que el procedure devuelve una cierta cantidad de datos pero quien ejecuta ese procedure espera recibir menos o mas datos, con lo cual alli esta el error.

Cuando ejecutas este comando, que datos devuelve (cuantas columnas?)

EXECUTE PROCEDURE "dba".sp_regulalumno ('EIE', '18', '87/2014', 1, 1, 1);

El procedure sp_regulalumno fue modificado (en version 2.9.1) y devuelve un dato mas al final que es la escala de notas. Con lo cual desde su procedure (el control personalizado) si llaman a este procedure, deben agregar un dato mas de retorno al final de tipo Integer (es la escala de notas)

Si lo llaman asi:
EXECUTE PROCEDURE sp_regulalumno(…) INTO var_1, var_2,…, var_n

Ahora deben llamarlo asi:
EXECUTE PROCEDURE sp_regulalumno(…) INTO var_1, var_2, …, var_n, var_n+1

Donde var_n+1 debe ser de tipo integer.

Hagan ese cambio en el procedure sp8334_cert_control_int (o el procedure que este llamando al sp_regulalumno) y resolveran el problema.

Recuerden en cada cambio de version ver que objetos de la base fueron modificados, porque cambios como estos pueden impactar en sus personalizaciones!

Muchas gracias Alejandro! Solucionado.
Saludos.

ok. Revisen si tienen algun otro procedure personalizado que llame al procedure sp_regulalumno, porque también deberan realizar la misma modificación!.