Error Generar Actas masivamente

Buenas, al querer generar actas masivamente el sistema carga hasta el 70% y luego se frena el proceso. Adjunto log del sistema:
sistema.txt (1,8 KB)
Y una captura:

Ir a la issue

Hola @lbauducco

Veo que el error dice:

[ERROR][guarani] Debe seleccionar al menos una Mesa para poder continuar.
[ERROR][toba] guarani_error: Debe seleccionar al menos una Mesa para poder continuar.

Existe este otro foro similar. Pasame los mismos logs que pido en dicho foro.

El error lo da en php/operaciones/examenes/actas/generacion_masiva_actas/ci_nav_generacion_masiva_actas.php función evt__siguiente, se ve que $this->s__llamados_mesas llega vacío. ¿seleccionaste una mesa antes de hacer click en Siguiente?

Saludos.

Buenas se seleccionan todas las mesas y luego se hace click en siguiente y pasa lo que comente. Adjunto lo que pedís:
log_ejecucion.txt (4,0 KB)
resultado.xml


estado.xml

Hola @lbauducco

Llega vacía la evaluación en get_detalle_evaluacion_examen de php/nucleo/cursadas/evaluaciones/co_evaluaciones.php, se llama de la función get_alumnos_de_evaluacion de php/nucleo/examenes/actas/generacion_masiva_actas/pro_generacion_actas_nucleo.php.

En mi caso funciona bien en lo que seria una versión 3.22.0, ¿ustedes tienen la 3.21.3?

Revisa los logs dentro de instalacion/i__desarrollo/p__guarani/logs/procesos_bk/pro_generacion_actas__yyyymmdd_hhmmss___xxxx/.

Saludos.

Hola Leonel, actualmente tenemos la versión 3.21.3. Queda procesando y nunca termina de cargar.

Hola @lbauducco

¿no genera logs en instalacion/i__desarrollo/p__guarani/logs/procesos_bk/pro_generacion_actas__yyyymmdd_hhmmss___xxxx/?

Quizás sea un problema de permisos, seguí los siguientes pasos:

Paso 6 de Instalación desde cero de SIU-Guaraní Gestión 3.22 en entorno de Desarrollo.

Paso 6 de Instalación desde cero de SIU-Guaraní Gestión 3.22 en entorno de Producción.

¿Da errores JavaScript en la consola del navegador mientras se queda procesando?

Saludos.

En consola del navegador me sale:
JQMIGRATE: Migrate is installed, version 3.3.2
Y un bucle infinito de solicitudes del tipo:
XHRGET
https://guarani.unraf.edu.ar/guarani/aplicacion.php?ah=st66967c2191e0f6.63649586&ai=guarani||38000090&tcm=celda_imp_reg&ai=guarani||38000090&ts=ajax&ajax-metodo=estado_proceso&ajax-modo=D&ajax-param=&tsd=guarani||38000514,
[HTTP/1.1 200 OK 54ms]

abortar false
mensajes
progreso 0
error false

Y esto me sale en instalacion/i__desarrollo/p__guarani/logs/procesos_bk/pro_generacion_actas__yyyymmdd_hhmmss___xxxx/
toba_error_db:
ERROR ejecutando SQL:
[CODIGO]: 7
[SQLSTATE]: db_22P02
[MENSAJE]: ERROR: invalid input syntax for integer: “”
LINE 23: WHERE sga_evaluaciones.evaluacion = ‘’
^
[SQL EJECUTADA]: SELECT vw_personas.apellido_nombres AS apellido_y_nombre,
vw_personas.tipo_nro_documento AS documento_principal,
sga_alumnos.alumno,
sga_alumnos.legajo,
sga_propuestas.nombre_abreviado AS propuesta_nombre_abreviado,
sga_eval_detalle_examenes.instancia,
sga_instancias.nombre AS instancia_nombre,
CASE WHEN sga_eval_detalle_examenes.inscripto = ‘S’ THEN ‘Sí’ WHEN sga_eval_detalle_examenes.inscripto = ‘N’ THEN ‘No’ END as inscripto,
sga_actas.nro_acta

			FROM	sga_eval_detalle_examenes
					JOIN sga_evaluaciones				ON (sga_evaluaciones.evaluacion				= sga_eval_detalle_examenes.evaluacion)
					JOIN sga_evaluaciones_tipos			ON (sga_evaluaciones.evaluacion_tipo		= sga_evaluaciones_tipos.evaluacion_tipo)
					JOIN sga_llamados_mesa				ON (sga_llamados_mesa.entidad				= sga_evaluaciones.entidad)
					JOIN sga_alumnos					ON (sga_alumnos.alumno						= sga_eval_detalle_examenes.alumno)
					JOIN vw_personas					ON (vw_personas.persona						= sga_alumnos.persona)
					JOIN sga_propuestas					ON (sga_propuestas.propuesta				= sga_alumnos.propuesta)
					JOIN sga_instancias					ON (sga_instancias.instancia				= sga_eval_detalle_examenes.instancia)
					LEFT JOIN sga_insc_examen			ON (sga_insc_examen.alumno					= sga_eval_detalle_examenes.alumno AND
															sga_insc_examen.llamado_mesa			= sga_llamados_mesa.llamado_mesa)
					LEFT JOIN sga_actas					ON (sga_actas.id_acta						= sga_eval_detalle_examenes.id_acta)

			WHERE sga_evaluaciones.evaluacion	= ''
			  AND (sga_insc_examen.estado IS NULL OR sga_insc_examen.estado = 'A')
			  AND sga_alumnos.calidad = 'A'
			

			ORDER BY vw_personas.apellido, vw_personas.nombres
			; -- toba_log: 14629769 

in /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/lib/db/toba_db.php:468
Stack trace:
#0 /usr/local/proyectos/guarani/php/nucleo/_lib/guarani_db_nucleo.php(35): toba_db->consultar()
#1 /usr/local/proyectos/guarani/php/nucleo/cursadas/evaluaciones/co_evaluaciones.php(703): guarani_db_nucleo::consultar()
#2 /usr/local/proyectos/guarani/php/nucleo/examenes/actas/generacion_masiva_actas/pro_generacion_actas_nucleo.php(136): co_evaluaciones->get_detalle_evaluacion_examen()
#3 /usr/local/proyectos/guarani/php/nucleo/examenes/actas/generacion_masiva_actas/pro_generacion_actas_nucleo.php(36): pro_generacion_actas_nucleo->get_alumnos_de_evaluacion()
#4 /usr/local/proyectos/guarani/php/nucleo/_lib/procesos_bk/disparar_proceso.php(16): pro_generacion_actas_nucleo->procesar()
#5 /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/componentes/toba_cargador.php(311): require_once(‘/usr/local/proy…’)
#6 /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_solicitud_consola.php(25): toba_cargador::cargar_clase_archivo()
#7 /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_nucleo.php(211): toba_solicitud_consola->procesar()
#8 /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/consola/comandos/comando_item.php(31): toba_nucleo->acceso_consola()
#9 /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/consola/comando.php(102): comando_item->opcion__ejecutar()
#10 /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/consola/comando.php(90): comando->ejecutar_opcion()
#11 /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/consola/consola.php(78): comando->procesar()
#12 /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/consola/consola.php(55): consola->invocar_comando()
#13 /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/consola/run.php(32): consola->run()
#14 /usr/local/proyectos/guarani/vendor/siu-toba/framework/bin/launcher.php(31): require_once(‘/usr/local/proy…’)
#15 /usr/local/proyectos/guarani/vendor/siu-toba/framework/bin/toba(2): require_once(‘/usr/local/proy…’)
#16 {main}

En php/operaciones/examenes/actas/generacion_masiva_actas/pant_resultados.php función extender_objeto_js que quede así:

	function extender_objeto_js()
	{
                $btns_proceso_finalizo = ['volver'];
                $elementos = ['cant_actas'];
                $eventos = ['rep_cantidad_actas', 'imprimir_actas'];
                $relacion_elementos_eventos = [
                    'cant_actas' => ['rep_cantidad_actas'],
                    'cant_actas' => ['imprimir_actas'],
                ];
                $ei_formulario_nombre = 'form_totales';
                $this->generar_js_procesos_bk($btns_proceso_finalizo, $elementos, $eventos, $relacion_elementos_eventos, $ei_formulario_nombre);
	}

En la función evt__generar de php/operaciones/examenes/actas/generacion_masiva_actas/ci_nav_generacion_masiva_actas.php agrega var_dump($parametros);, ej:

		// Se crea y lanza el proceso background 
		$this->s__proceso = guarani::proceso_bk('pro_generacion_actas');
		var_dump($parametros);
		$this->s__proceso->set_datos($parametros);
		guarani::ejecutar_proceso_bk($this->s__proceso);

En la función set_datos de php/nucleo/examenes/actas/generacion_masiva_actas/pro_generacion_actas_nucleo.php agrega var_dump($this->datos);, ej:

	function set_datos($datos = array())
	{
		$this->datos = $datos['datos'];
		var_dump($this->datos);
	}

Luego volve a probar, a ver que datos están llegando.

Saludos.

Te paso el array que aparece:
array(1) { [“datos”]=> array(2) { [0]=> array(12) { [“mesa_examen”]=> int(14177) [“llamado_mesa”]=> int(24069) [“actividad_codigo_y_nombre”]=> string(49) “(LE8) Educación, Desarrollo Local y Territorial” [“cant_inscriptos”]=> int(1) [“nombre_mesa”]=> string(12) “Raf 8:00 hs” [“llamado_nombre”]=> string(25) “1er Llamado del Turno 002” [“fecha”]=> string(10) “2024-07-22” [“ubicacion_nombre”]=> string(9) “RECTORADO” [“composicion”]=> string(1) “M” [“x_dbr_clave”]=> int(0) [“renglones_folio”]=> string(2) “28” [“digital”]=> string(1) “N” } [1]=> array(12) { [“mesa_examen”]=> int(14240) [“llamado_mesa”]=> int(24194) [“actividad_codigo_y_nombre”]=> string(79) “(MI 2) Metodología de la Investigación: Introducción a la Investigación en EF 2” [“cant_inscriptos”]=> int(2) [“nombre_mesa”]=> string(5) “08:30” [“llamado_nombre”]=> string(25) “1er Llamado del Turno 002” [“fecha”]=> string(10) “2024-07-22” [“ubicacion_nombre”]=> string(9) “RECTORADO” [“composicion”]=> string(1) “M” [“x_dbr_clave”]=> int(1) [“renglones_folio”]=> string(2) “28” [“digital”]=> string(1) “N” } } } array(2) { [0]=> array(12) { [“mesa_examen”]=> int(14177) [“llamado_mesa”]=> int(24069) [“actividad_codigo_y_nombre”]=> string(49) “(LE8) Educación, Desarrollo Local y Territorial” [“cant_inscriptos”]=> int(1) [“nombre_mesa”]=> string(12) “Raf 8:00 hs” [“llamado_nombre”]=> string(25) “1er Llamado del Turno 002” [“fecha”]=> string(10) “2024-07-22” [“ubicacion_nombre”]=> string(9) “RECTORADO” [“composicion”]=> string(1) “M” [“x_dbr_clave”]=> int(0) [“renglones_folio”]=> string(2) “28” [“digital”]=> string(1) “N” } [1]=> array(12) { [“mesa_examen”]=> int(14240) [“llamado_mesa”]=> int(24194) [“actividad_codigo_y_nombre”]=> string(79) “(MI 2) Metodología de la Investigación: Introducción a la Investigación en EF 2” [“cant_inscriptos”]=> int(2) [“nombre_mesa”]=> string(5) “08:30” [“llamado_nombre”]=> string(25) “1er Llamado del Turno 002” [“fecha”]=> string(10) “2024-07-22” [“ubicacion_nombre”]=> string(9) “RECTORADO” [“composicion”]=> string(1) “M” [“x_dbr_clave”]=> int(1) [“renglones_folio”]=> string(2) “28” [“digital”]=> string(1) “N” } }

Y la respuesta en consola web:
Object { abortar: false, mensajes: , progreso: 0, error: false }

abortar: false

error: false

mensajes: Array

progreso: 0

: Object { … }
aplicacion.php:1246:37

Hola @lbauducco

Mi código esta distinto porque hubo cambios, revisa en php/nucleo/examenes/actas/generacion_masiva_actas/pro_generacion_actas_nucleo.php función get_evaluacion_automatica_mesa, podes hacer lo siguiente:

	function get_evaluacion_automatica_mesa($llamado_mesa)
	{
		$datos_mesa_examen = toba::consulta_php('co_mesas_de_examen')->get_datos_mesa_llamados($llamado_mesa);
		var_dump($datos_mesa_examen);
		$datos_evaluacion = toba::consulta_php('co_mesas_de_examen')->get_evaluacion_automatica_mesa($datos_mesa_examen['entidad']);
		var_dump($datos_evaluacion);
		return $datos_evaluacion['evaluacion'];
	}

Veo que hay un ticket para la versión 3.23.0 (#48031), crea un GDS así te adelantamos la solución.

En la operación de Generar Masivamente Actas de Examen hay un bug que consiste en que si la mesa de examen no posee inscripciones en estado aceptada (sólo inscripciones en estado pendiente) está generando igualmente el acta vacía.

Esto se debe solucionar para que, en caso de que la mesa no posea ninguna inscripción en estado aceptada de alumnos activos, no se genere acta.
En caso de que la mesa tenga inscripciones aceptadas pero ninguna corresponda a alumnos en Calidad Activo en la propuesta, tampoco se debe generar el acta.

Saludos.

Perfecto ya envié un gds. Solicitud número 71015