Pruebas en G3.23. Problema en generar comisiones masivamente

Buenos días. Estamos realizando las pruebas funcionales de la versión 3.23 en UCA y nos encontramos que en ciertas circunstancias, la operación “Generar comisiones masivamente” queda en estado procesando de manera continua.

Les comento que revisando los logs, encontramos que dentro de los logs de background de la operación que falla, el archivo log_ejecucion.txt que se adjunta menciona un error en las clasusulas de un sql, donde no se deja espacio entre una clausula y el AND siguiente (WHERE sga_comisiones.elemento = 33AND sga_comisiones.periodo_lectivo = 841AND sga_comisiones.turno = 1)

Analizando un poco más encontramos que el método puede_crear_con_turno de la clase pro_generacion_comisiones_nucleo, el cual genera las cláusulas para luego enviarlas get_listado_simple de co_comisiones, parece estar generando sin el espacio previo a cada AND. Copio a continuación el código de la función:

/**
 * Devuelve true o false dependiendo si se puede crear o no una comisi�n para
 * una actividad en un per�odo lectivo, y en un turno -ma�ana, tarde o noche-
 *
 * @param 	integer  $turno
 * @param 	integer  $elemento
 * @return 	boolean
 */
function puede_crear_com_turno($turno, $elemento)
{
	$filtro = "sga_comisiones.elemento = $elemento";
	$filtro .= 'AND	sga_comisiones.periodo_lectivo	= ' . $this->destino['periodo_lectivo_destino'];
	$filtro .= ($turno != 'null') ? "AND sga_comisiones.turno = $turno" : 'AND sga_comisiones.turno IS NULL';

	$com = toba::consulta_php('co_comisiones')->get_listado_simple($filtro);
	return empty($com);
}


Lo más extraño es que en la versión 3.21 el código es el mismo. La consulta es, ¿puede estar fallando por esta causa en condiciones específicas? Aún  no probamos de extender la clase y personalizarla agregando el espacio, pero primero queríamos consultarles por si esto puede llegar a ser un inconveniente o estamos errados.
De nuestro lado no hemos realizado personalizaciones de estos métodos.

log_ejecucion.txt (3,1 KB)



Desde ya muchas gracias!!!!!!!


Pablo

Hola Pablo, en que momento les esta pasando esto? por lo que entiendo no les pasa siempre, Nos podrías comentar específicamente con que comisiones les pasa? Cuales son las características de las mismas. Para replicar el caso de ser necesario.

Hola, Itumela. Muchas gracias por responder. Las pruebas las están realizando desde el equipo funcional de la Universidad y han hecho varias pruebas. No tengo el lote de datos en este momento, puedo conseguir alguna de las características un poc más tarde y las comparto.

Igual, me llama la atención el código del método de php, el cual no está agregando un espacio entre cada valor de cláusulas y el AND, lo que hace que cuando se use está función, sea cual sea la característica, el sql termine dando un error.

Nos mantenemos en contacto y veo de compartir las características específicas también!!!

Buenas tardes. Finalmente decidimos probar personalizando el método mencionado en el primer mensaje, solo agregando un espacio antes de cada AND en las lines de $filtro .= y no tuvimos más inconvenientes en las pruebas, con ningún lote de datos.

Evidentemente este inconveniente generaba algún error en background, que no se mostraba, y quedaba indefinidamente procesando.

Por lo pronto, lo agregué como una personalización, sin modificar el código original del SIU, y extendiendo la clase y sobreescribiendo el método con los ajustes, pero dejo el tema por si hubiera algún ajuste por parte del código original, si así se decide.

Saludos y que terminen muy bien el día!!!

Pablo

Hola Pablo!

Gracias por reportar el error, y buenísimo que pudieran arreglarlo con esa personalización.

De todas maneras ahí generamos una issue (259) para armar la solución en el core. Si pueden carguen un GDS así les asociamos la misma y les avisamos cuando salga la solución.

Saludos!

Muchas gracias Martin. Ahora lo genero.

Saludos!!!

Pablo

Se generó GDS 83406