Les pido si me pueden dar una mano con este inconveniente, dado que aun estamos iniciando nuestro camino con Guaraní 3.20.2.
En el flujo de generación de comisiones masivamente, al finalizar el proceso y tocar en general la siguiente pantalla comienza a tener el indicador de “procesando” en el margen superior derecho, que aparece y desaparece constantemente pero no se marca progreso alguno.
He revisado los pasos de la Guía de instalación, aplicando nuevamente por ejemplo los permisos recursivos sobre todos los archivos de la instalación (paso 6 de la instalación) sin éxito.
En la consola de Firefox no se muestra error, y si el jquery que a cada rato tira el GET sin éxito. En Chrome sin embargo luego de un ratito se muestra el siguiente error en la consola:
jquery-migrate.js:69 JQMIGRATE: Migrate is installed, version 3.3.2
content_script.js:4650 Could not establish connection. Receiving end does not exist., sendMessage, [{"type":"CS_ASK_BG_2131","uid":"ipcp_1678748151531_27","cmd":"CS_ACTIVATE_ME","args":{}}]
callback @ content_script.js:4650
content_script.js:4650 Could not establish connection. Receiving end does not exist., sendMessage, [{"type":"CS_ASK_BG_2131","uid":"ipcp_1678748151542_28","cmd":"CS_ACTIVATE_ME","args":{}}]
callback @ content_script.js:4650
content_script.js:4650 Could not establish connection. Receiving end does not exist., sendMessage, [{"type":"CS_ASK_BG_2131","uid":"ipcp_1678748151550_29","cmd":"CS_ACTIVATE_ME","args":{}}]
callback @ content_script.js:4650
content_script.js:4650 Could not establish connection. Receiving end does not exist., sendMessage, [{"type":"CS_ASK_BG_2131","uid":"ipcp_1678748151575_30","cmd":"CS_ACTIVATE_ME","args":{}}]
callback @ content_script.js:4650
content_script.js:4650 Could not establish connection. Receiving end does not exist., sendMessage, [{"type":"CS_ASK_BG_2131","uid":"ipcp_1678748151586_31","cmd":"CS_ACTIVATE_ME","args":{}}]
callback @ content_script.js:4650
content_script.js:4650 Could not establish connection. Receiving end does not exist., sendMessage, [{"type":"CS_ASK_BG_2131","uid":"ipcp_1678748151599_32","cmd":"CS_ACTIVATE_ME","args":{}}]
callback @ content_script.js:4650
Luego de un rato, al presionar abortar se muestra el mensaje:
Error en la respuesta.
Error JS:
TypeError: Cannot read properties of null (reading 'comisiones')
Mensaje Server:
Mas
Ver el log del sistema para más información
Al tocar en Mas, dice “null”
Desde ya les agradezco si me pueden orientar en qué podría revisar para avanzar con esto. Intuyo que debe ser algo simple que no estoy revisando porque no encontré nada similar en los foros.
Hay un problema con los procesos en background que genera dicho error, dicho problema va a salir arreglado en la versión 3.21.1 con los siguientes tickets:
Para el error en la operación » Cursadas » Comisiones » Generar Comisiones Masivamente proba reemplazar la función extender_objeto_js de php/operaciones/cursadas/comisiones/generacion_masiva_comisiones/pant_finalizar.php por lo siguiente:
function extender_objeto_js()
{
$destino = $this->controlador()->get_seleccion_valor('info_destino');
$parametros = array($destino['anio_academico_destino'], $destino['periodo_lectivo_nombre']);
$mensaje_ok = guarani_mensajes::get('800cur_ok_comision', $parametros);
$timeout = comunes::get_timeout_procesos_bk();
echo "
{$this->objeto_js}.set_progreso = function(count)
{
var image = 360;
var width = -1 * ((image/200)*(100-count));
var img = document.getElementById('barra_progreso');
img.style.backgroundPosition = + width + 'px 0pt';
img.alt = count + '%';
img.title = count + '%';
var txt = document.getElementById('texto_progreso');
txt.innerHTML = count + '%';
}
var finalizo_proceso = false;
var progreso_cero = false;
{$this->objeto_js}.consultar_estado_proceso = function()
{
// Hace un AJAX a la función 'ajax__estado_proceso' del CI.
this.ajax('estado_proceso', [], this, this.set_estado_proceso);
}
{$this->objeto_js}.set_estado_proceso = function(datos)
{
console.log('Respuesta del estado del proceso:');
console.log(datos);
// Si datos viene con valores
if (datos !== null) {
// Si el progreso viene en 0 es una falla en Chrome y Brave cuando no hay datos a procesar
if (datos['progreso'] == 0) {
progreso_cero = true;
datos['progreso'] = 100;
}
if (datos['progreso'] == 100) {
finalizo_proceso = true;
this.set_progreso(100);
}
if (datos['mensaje'] != false) {
//-- Actualizo el porcentaje completado
this.set_progreso(parseInt(datos['progreso'], 10));
}
if (finalizo_proceso && datos['progreso'] == 100) {
{$this->objeto_js}.activar_boton('finalizar');
{$this->objeto_js}.desactivar_boton('abortar');
}
}
// Si el proceso finalizo
if (finalizo_proceso) {
// Elimino el Timeout
clearTimeout(timeout_estado_proceso);
// Si el progreso viene en 0 es una falla en Chrome y Brave cuando no hay datos a procesar
if (progreso_cero) {
var datos = [];
datos['comisiones'] = 0;
datos['comisiones_con_obs'] = 0;
datos['actividades_con_comisiones'] = 0;
datos['actividades_sin_comisiones'] = 0;
this.set_resultados_proceso(datos);
} else {
// Se invoca por primera vez para comenzar a consultar el resultado del proceso.
{$this->objeto_js}.consultar_resultados_proceso();
}
} else {// Si el proceso no finalizo
// Vuelvo a consultar el estado del proceso
var timeout_estado_proceso = setTimeout(\"{$this->objeto_js}.consultar_estado_proceso()\", $timeout);
}
}
{$this->objeto_js}.consultar_resultados_proceso = function()
{
// Hace un AJAX a la función 'ajax__resultados_proceso' del CI.
this.ajax('resultados_proceso', [], this, this.set_resultados_proceso);
}
{$this->objeto_js}.set_resultados_proceso = function(datos)
{
console.log('Respuesta del resultado del proceso:');
console.log(datos);
// Si datos es null vuelvo a intentar
if (datos === null) {
// Vuelvo a consultar el resultado del proceso
var timeout_resultados_proceso = setTimeout(\"{$this->objeto_js}.consultar_resultados_proceso()\", $timeout);
} else { // Sino los muestro en pantalla
// Elimino el Timeout
clearTimeout(timeout_resultados_proceso);
this.dep('form_totales').ef('comisiones').set_estado(datos['comisiones']);
this.dep('form_totales').ef('comisiones_con_obs').set_estado(datos['comisiones_con_obs']);
this.dep('form_totales').ef('actividades_con_comisiones').set_estado(datos['actividades_con_comisiones']);
this.dep('form_totales').ef('actividades_sin_comisiones').set_estado(datos['actividades_sin_comisiones']);
if (datos['comisiones'] > 0) {
{$this->objeto_js}.dep('form_totales').activar_boton('rep_comisiones');
}
if (datos['comisiones_con_obs'] > 0) {
{$this->objeto_js}.dep('form_totales').activar_boton('rep_comisiones_obs');
}
if (datos['actividades_sin_comisiones'] > 0) {
{$this->objeto_js}.dep('form_totales').activar_boton('rep_actividades_sin_comisiones');
}
if (datos['actividades_con_comisiones'] > 0) {
{$this->objeto_js}.dep('form_totales').activar_boton('rep_actividades');
}
{$this->objeto_js}.activar_boton('finalizar');
alert('$mensaje_ok');
}
}
{$this->objeto_js}.set_progreso(0);
// Se invoca por primera vez para comenzar a consultar el estado del proceso.
{$this->objeto_js}.consultar_estado_proceso();
{$this->objeto_js}.dep('form_totales').desactivar_boton('rep_comisiones');
{$this->objeto_js}.dep('form_totales').desactivar_boton('rep_comisiones_obs');
{$this->objeto_js}.dep('form_totales').desactivar_boton('rep_actividades_sin_comisiones');
{$this->objeto_js}.dep('form_totales').desactivar_boton('rep_actividades');
{$this->objeto_js}.desactivar_boton('finalizar');
";
}
Luego contame si con ese cambio deja de dar el error.