[CERRADO] mesa de examen

A ver Emilio…, me parece que es un problema de ambito…

Por ejemplo si ejecuto:

SELECT * FROM f_mesas_vigentes_una_actividad(‘3’, ‘1’, ‘2’, ‘2’, true, ‘1’);

ERROR: function f_mesas_vigentes_una_actividad(unknown, unknown, unknown, unknown, boolean, unknown) does not exist
LINE 1: SELECT * FROM f_mesas_vigentes_una_actividad(‘3’, ‘1’, ‘2’, …
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.

Pero si le agrego negocio. al nombre de la funcion, el error lo tira dentro de la funcion…, tambien porque no encuentra sga_llamados_mesa. Si a este le antepongo negocio. el error se traslada a la siguiente instancia que requiera una tabla…

SELECT * FROM negocio…f_mesas_vigentes_una_actividad(‘3’, ‘1’, ‘2’, ‘2’, true, ‘1’);

ERROR: relation “sga_llamados_mesa” does not exist
LINE 9: FROM sga_llamados_mesa,
^
QUERY: INSERT INTO tmp_llamados (mesa_examen, llamado_mesa, periodo_insc, fecha_inicio, fecha_fin, hs_previas_fin, periodo_inscripcion)…

Otro ejemplo de esto es que para ejecutar el scrip que me arroja el log…

SELECT sga_mesas_examen.mesa_examen,
sga_mesas_examen.nombre as mesa_nombre,
sga_llamados_mesa.entidad,
sga_llamados_mesa.llamado_mesa,
sga_periodos_llamado.nombre as llamado_nombre,
sga_llamados_mesa.fecha,
to_char(sga_llamados_mesa.fecha,‘DD/MM/YYYY’) || ’ ’ || to_char(cast(sga_llamados_mesa.hora_inicio as time), ‘HH24:MI’) as fecha_visual,
COALESCE(sga_catedras.nombre, ’ ') as catedra_nombre,
sga_mesas_examen.ubicacion,
sga_ubicaciones.nombre as ubicacion_nombre,
f_modalidad_cursada_examen(sga_mesas_examen.mesa_examen) as modalidad_nombre,
sga_periodos_llamado.anio_academico,
sga_llamados_turno.turno_examen,
sga_periodos_llamado.anio_academico || ’ - ’ || periodos_turnos_examen.nombre as turno_examen_nombre,
(SELECT count(*) FROM sga_docentes_mesa_llamado WHERE sga_docentes_mesa_llamado.llamado_mesa = sga_llamados_mesa.llamado_mesa) as docentes_cant

                            FROM    sga_mesas_examen
                                            LEFT JOIN sga_catedras ON sga_catedras.catedra = sga_mesas_examen.catedra,
                                            sga_ubicaciones,
                                            sga_llamados_mesa,
                                            sga_llamados_turno,
                                            sga_periodos as sga_periodos_llamado,
                                            sga_turnos_examen,
                                            sga_periodos as periodos_turnos_examen

                            WHERE   sga_mesas_examen.mesa_examen = sga_llamados_mesa.mesa_examen
                                            AND sga_ubicaciones.ubicacion = sga_mesas_examen.ubicacion
                                            AND     sga_mesas_examen.elemento = '3'

                                            AND     sga_llamados_turno.llamado = sga_llamados_mesa.llamado
                                            AND     sga_periodos_llamado.periodo = sga_llamados_turno.periodo
                                            AND     sga_turnos_examen.turno_examen = sga_llamados_turno.turno_examen
                                            AND     sga_turnos_examen.periodo = periodos_turnos_examen.periodo
                                            AND     sga_llamados_mesa.fecha >= CURRENT_DATE
                                            AND sga_llamados_mesa.llamado_mesa IN (SELECT * FROM f_mesas_vigentes_una_actividad('3', '1', '2', '2', true, '1'))

                            ORDER BY
                                            sga_periodos_llamado.anio_academico DESC,
                                            sga_llamados_turno.turno_examen ASC,
                                            sga_llamados_mesa.fecha DESC,
                                            sga_llamados_mesa.hora_inicio DESC
                            ;

Me tira el error sobre:

ERROR: relation “sga_mesas_examen” does not exist
LINE 17: FROM sga_mesas_examen
^

Si le antepongo negocio.


FROM negocio.sga_mesas_examen
LEFT JOIN sga_catedras ON sga_catedras.catedra = sga_mesas_examen.catedra,
sga_ubicaciones,
sga_llamados_mesa,
sga_llamados_turno,
sga_periodos as sga_periodos_llamado,
sga_turnos_examen,
sga_periodos as periodos_turnos_examen

El error lo tira en el proximo llamado…

ERROR: relation “sga_catedras” does not exist
LINE 18: … LEFT JOIN sga_catedr…
^

PD: Ningua de las dos consultas que me pasaste funcionan…, asi sin modificacion…

Sugerencias…

Hola Emilio,
para que podamos ayudarte mejor me interesaría diferenciar dos cosas, como dije antes, las pruebas que vos hagas ejecutando consultas desde el pgadmin o herramienta similar, y lo que esté ejecutando el sistema.
Insisto que por lo que se ve en el log del sistema que enviaste, la sql no está generando ningún error, simplemente no está trayendo datos. Ahora hay que ver por qué te sucede esto si vos verificaste que se cumplen todas las condiciones para que sí se retorne un conjunto de llamados ante esa solicitud.
Desde la versión 3.4.1 del sistema, y en las pruebas que hicimos con el equipo, si se da de alta una mesa de examen, luego pudimos normalmente inscribir alumnos en la misma, siempre que se verifiquen las condiciones señaladas con Ale. Por lo tanto, para intentar detectar por qué en tu caso no está trayendo los llamados de mesas disponibles lo que podemos ver, como ya hiciste, es que pruebes la sql para darnos cuanta en qué está fallando o qué condiciones no se están verificando.

Por los errores que comentás que te está retornando el pgadmin al testear las consultas, el problema es que no te está reconociendo el esquema de la base en que tenés los datos del negocio, por defecto. Desde el pgadmin esto se puede hacer posicionándote sobre la BD, click derecho, Propiedades, Variables, y agregar la variable de nombre “search_path” con el nombre del esquema “negocio”. De esta forma te evitás anteponer el esquema negocio. ante cada tabla o función que consultes.
Veamos si de esta forma podés ejecutar la sql para seguir probando y encontrar dónde puede estar el error.

Espero que te sea de ayuda.
Saludos, Gabriela.

Estimada Gabriela…, muchas gracias, agregando la variable de entorno pude ejecutar sin problema el script.

La linea que hace que el script no tire resultado es:

AND sga_llamados_mesa.llamado_mesa IN (SELECT * FROM f_mesas_vigentes_una_actividad(‘3’, ‘1’, ‘2’, ‘2’, true, ‘1’))

Todas las demas condiciones del Whare arrojan resultados…

Voy a contestar las consultas que me vinieron haciendo:

  1. La mesa este creada para la propuesta y plan del alumno: si
  2. Exista un período de inscripcion vigente para la version del plan del alumno si
  3. La mesa sea de la ubicación del alumno (a menos que se permita rendir en otra ubicacion que no sea la del alumno)si
  4. La mesa este definida para la modalidad de cursada del alumno (presencial, a distancia…) presencial
  5. La mesa si es solo para regulares, el alumno tenga la cursada vigente. LIBRES
  1. Ir al plan de estudios, seleccionar la actividad y en las características chequear si la materia está habilitada para Rendir Examen. si

  2. Ir al ABM de Actividades, buscar la materia y fijarse si está “Disponible para: Todas las operaciones”. si

VER!!!
El llamado no levanta la propuesta.

Estoy creando una nueva mesa de examen para rastrear el error en un ambiente de prueba. En el momento de creacion no me lista las propuestas habilitadas para la mesa de examen:

GRID VACIO
Propuestas habilitadas para la Mesa de Examen
Código Propuesta Plan

El error prodra estar por aca???

Muchas gracias, saludos, Emilio

Adjunto pantalla


Examenes.JPG

Examenes.JPG_thumb.png

Hola Emilio,
en la función f_mesas_vigentes_una_actividad(…) se realiza un join con las propuestas asociadas a la mesa (sga_mesas_examen_propuestas) para verificar que la mesa esté definida para la propuesta-plan del alumno.
Si al dar de alta la mesa no pudiste asociarla a la propuesta correspondiente, entonces en este paso no podrá recuperarte los datos de los llamados para la inscripción. Es decir que la mesa no ha quedado definida para la propuesta y plan del alumno.

En la operación de Administrar Mesas de Examen, para la selección de Propuestas-Planes posibles a los que asociar las mismas, se trae el conjunto que verifique: Plan en estado activo y/o vigente, que esté en alguna Versión activa y/o vigente, donde la Actividad esté definida con el atributo de requerir examen para esa versión del plan de estudios (condición que señalaba anteriormente Pablo para verificar sobre la operación de Planes de Estudio).
Si cumple estas condiciones debería aparecerte como Propuesta posible para asociar a la Mesa de Examen. Hasta que no esté asociada la Propuesta del Alumno a la Mesa de Examen, no podrás seleccionar dichos llamados desde la Inscripción. Te paso la sql por si te sirve para probar qué es lo que no se está verificando:

                           SELECT   sga_propuestas.propuesta,
			              sga_propuestas.codigo,
				      sga_propuestas.nombre_abreviado,
			              sga_planes.plan,
			              sga_planes.nombre as plan_nombre,
			              sga_planes.codigo as plan_codigo,
			              COALESCE('(' || sga_planes.codigo || ') ', '') || sga_planes.nombre as plan_descr
			FROM     sga_planes,
				      sga_propuestas
			WHERE   sga_propuestas.propuesta = sga_planes.propuesta
			AND	      sga_planes.estado IN ('V','A')
			AND	      sga_planes.plan IN (SELECT	sga_planes_versiones.plan
			    						FROM 	sga_planes_versiones,
			            							sga_elementos_plan,
			            							sga_elementos_revision
			            				WHERE   sga_planes_versiones.plan_version =sga_elementos_plan.plan_version
			            	AND		sga_elementos_plan.elemento_revision = sga_elementos_revision.elemento_revision
			            				AND		sga_planes_versiones.estado IN ('V','A')
			            					AND		sga_elementos_plan.requiere_examen = 'S'
			            					)
			ORDER BY	sga_propuestas.nombre_abreviado

Saludos, Gabriela.

Emilio, por lo que decis, la mesa NO esta definida para ninguna propuesta-plan de estudios
Respondiste
Voy a contestar las consultas que me vinieron haciendo:


1. La mesa este creada para la propuesta y plan del alumno: si
2. Exista un período de inscripcion vigente para la version del plan del alumno si
...

Pero luego mas abajo mostras la pantalla donde no hay ninguna propuesta seleccionada para esa mesa de exmen.

Justamente…, es que no me listas las propuestas…

Tema Cerrado.
Se siguió el último post en:
http://foro.comunidad.siu.edu.ar/index.php?topic=5973.msg24742