Vinculación de cursos virtuales

Leonel:

Muchas gracias! Vamos a probarlo y apenas tengamos novedades, volvemos.

Saludos!
Federico

Leonel:

Bueno, realizamos la modificación que nos pasaron e intentamos nuevamente, pero lamentablemente con los mismos resultados.

[DEBUG][guarani] Response:^M
4012 [DEBUG][guarani] array (
4013   'exception' => 'invalid_parameter_exception',
4014   'errorcode' => 'invalidparameter',
4015   'message' => 'Detectado valor de parámetro no válido',
4016 )^M
4017 [DEBUG][toba] Mensaje a usuario: Falló la actualización de alumnos en Moodle. <b>Posibles Causas:</b> Alumnos con el mismo email asignado.^M
4018 [INFO][toba] componente(37000315): [ registrar_evento ]  El METODO [ evt__editor_educacion_virtual__actualizar_alumnos ] no existe - 'actualizar_alumnos' no fue atrapad     o^M

Adicionalmente, me comenta la gente de sistemas que el nombre del método que supuestamente falta (evt__editor_educacion_virtual__actualizar_alumnos) no aparece en ningún archivo de los tres sistemas (Gestión, Autogestión, Preinscripción) –excepto en los logs, claro- ni tampoco en la Base de Datos. ¿Esto es de importancia? ¿Cómo se resolvería?

Adjuntamos los logs, desde ya!

Aguardamos novedades!
Gracias!

Federico

EDIT: Se eliminan los logs adjuntos por contener información sensible.

Hola Federico, gracias por la información!!!

Te respondo:

Adicionalmente, me comenta la gente de sistemas que el nombre del método que supuestamente falta (evt__editor_educacion_virtual__actualizar_alumnos) no aparece en ningún archivo de los tres sistemas (Gestión, Autogestión, Preinscripción) –excepto en los logs, claro- ni tampoco en la Base de Datos. ¿Esto es de importancia? ¿Cómo se resolvería?

No es de importancia, no encuentra la función pero continua sin errores.

El error esta al querer crear los usuarios en Moodle. Se me ocurre que al ser muy grande el conjunto de datos enviados a Moodle, quizás se rompa por la directiva post_max_size. Podrian probar incrementando el valor de dicha directiva en el archivo php.ini del servidor donde tienen instalado Moodle (luego reinicien Apache).

También estaría bueno ver los logs de Moodle, ya que la respuesta del Web Service no nos dice mucho. Voy a averiguar para ver donde se encuentran.

saludos.
2

Hola Federico, ademas de lo anterior agreguemos lo siguiente:

En Moodle, anda a Administración del sitio => Desarrollo => Depurando, y donde dice Mensajes de depuración elije DESARROLLADOR: mensajes extra de depuración Moodle para desarrolladores, luego guarda los cambios. Esto lo que hace es que en la respuesta del WS muestre un campo mas llamado debuginfo el cual nos brinda mas información.

Entonces, luego de hacer este cambio, volves a intentar y nos envías los logs nuevos que genera (con este nuevo campo debuginfo), allí tendremos mas información. También estaría bueno ver los logs de Apache del servidor donde esta Moodle (sudo tail -f /var/log/apache2/error.log).

NOTA: Los logs de Moodle se encuentran en la tabla mdl_logstore_standard_log, pero la misma no registra los errores.

saludos.
2

Adjunto logs de la tabla mdl_logstore_standard.

Saludos,
Valeria


mdl_logstore_standard.txt (256 KB)

Yo adjunto log d ela aplicación! Ahora cuando me envíen el log apache de Moodle también lo adjuntamos.

Lamentablemente, seguimos todos los pasos indicados y seguimos teniendo el mismo inconveniente, con el mismo mensaje de error.

Saludos!
Federico

EDIT: Se elimina el log adjunto por contener información sensible.

Leonel:

Va log de Apache!

Gracias!
Federico

Leonel:
No había visto este mensaje. Te consultamos, ¿hay manera de modificar esa función de modo tal que si el alumno no tiene mail asignado en vez de rebotar el lote sólo rebote a ese alumno?

Muchas gracias!
Federico

Hola

En el log que enviaron se ve el mensaje de error


[DEBUG][guarani] Response:
[DEBUG][guarani] array (
  'exception' => 'invalid_parameter_exception',
  'errorcode' => 'invalidparameter',
  'message' => 'Detectado valor de parámetro no válido',
  'debuginfo' => 'Email address already exists: san-gsa@hotmail.com',
)
[DEBUG][toba] Mensaje

Email address already exists: san-gsa@hotmail.com

Pueden revisar eso?

Saludos

Hola Federico,

Tal cual dice Sergio, ahora con el cambio en la Depuración de Moodle muestra el mensaje ‘Email address already exists: san-gsa@hotmail.com’, eso lo tendrías que solucionar. Lo que se puede hacer cuando hay emails repetidos es agregarle un sufijo como sigue: san-gsa+1@hotmail.com, san-gsa+2@hotmail.com, san-gsa+3@hotmail.com, etc.

Leonel: No había visto este mensaje. Te consultamos, ¿hay manera de modificar esa función de modo tal que si el alumno no tiene mail asignado en vez de rebotar el lote sólo rebote a ese alumno?

Si, se puede personalizar la función actualizar_alumnos_moodle de la clase php/operaciones/cursadas/comisiones/ci_edi_educacion_virtual.php, quedaría:


// Si hay personas sin email asignado muestro mensaje y sigo
if (!empty($personas_sin_email)) {
    toba::notificacion()->warning(guarani_mensajes::get("800_personas_falta_email_matriculacion_moodle", ['alumnos/s', implode(', ', $personas_sin_email)]));
}

Lo mismo deberías hacer con actualizar_docentes_moodle.

saludos.
2

Estimados:

Muchas gracias por la info! Estábamos corriendo un control sobre la base de contactos de Guaraní para que nos advirtiera duplicaciones y supuestamente estaba todo OK. Verificaremos ese caso particular.

Con respecto a la función, ahora testeamos y confirmamos todo!

De nuevo, muchas gracias!
Saludos
Federico

Con este mail san-sga@hotmail.com en test no hay duplicado ni nada


ScreenHunter_49 Mar. 25 15.00.gif

ScreenHunter_49 Mar. 25 15.00.png

select email, count(email) as cnt
from negocio.mdp_personas_contactos
group by email
having count(email) > 1;

Hola Valeria,

La query esta bien armada, verifiquen que la DB sea la correcta.

saludos.
1

Estimados:

Proseguimos con el proceso. Limpiamos la base de usuarios de Moodle y retomamos la matriculación en cursos virtuales desde “Administrar Comisiones”. Allí el proceso funcionó correctamente (no indicó ningún duplicado), pero al finalizar el mismo, verificamos en Moodle y de los 4.800 inscriptos se matricularon únicamente 301. Volvimos a “Administrar Comisiones” y Guaraní indicaba que era posible actualizar la matrícula de estudiantes en Moodle (es decir, reconoce que los inscriptos en Guaraní no coinciden con los matriculados en Moodle). Corremos nuevamente el proceso y finalizado verificamos en Moodle que ahora hay 401 matriculados. Cada vez que corremos el proceso, el mismo únicamente matrícula a 100 usuarios. Lo repetimos varias veces y llegamos a 601 matriculados.

No entendemos por qué pareciera que se están matriculando en Moodle cada 100 usuarios. En pruebas anteriores, se matricularon al menos 870 usuarios en una única corrida de este proceso. Ya está comisión con 4.800 inscriptos implicaría correr el proceso 50 veces, si se tiene el límite de 100. ¿Qué puede estar ocurriendo?

Dejamos los logs de la aplicación al momento de correr el proceso!

Muchas gracias!
Federico


tandas_matriculacion.txt (1020 KB)

Hola Federico, antes que nada gracias por los logs!!!

Por lo que veo la función que matricula (enrol_manual_enrol_users) que la que esta haciéndolo de a 100, la que crea los usuarios (core_user_create_users) parece que crea a todos. Esto me lo podrías corroborar ingresando a Moodle?, si vas a Administración del sitio / Usuarios / Cuentas / Examinar lista de usuarios deberían estas todos, en el curso opción Usuarios matriculados vas a poder ver los matriculados.

Vamos a ver a que se debe, desde ya nosotros no pusimos ningún tipo de limite en la cantidad.

saludos.
2

Hola, les voy a pedir lo siguiente:

En la función actualizar_alumnos_moodle de la clase php/operaciones/cursadas/comisiones/ci_edi_educacion_virtual.php agregar la siguiente información de debug:


function actualizar_alumnos_moodle($es_desvinculacion = false)
	{
		//toba::db()->abrir_transaccion();

		try {
			
			// Si no hay que actualizar en Moodle
			if ($this->coinciden_alumnos_moodle($es_desvinculacion)) {

				return true;

			} else { // sino

                                toba::logger()->debug("personas_para_crear: ".count($this->personas_para_crear)); // <===> Linea a agregar
                                toba::logger()->debug("alumnos_para_matricular: ".count($this->alumnos_para_matricular)); // <===> Linea a agregar
                            
				// Si hay usuarios para crear en Moodle
				if (!empty($this->personas_para_crear)) {

					$personas_ids = array_column($this->personas_para_crear, 'persona');
					$emails_personas = toba::consulta_php('co_personas')->get_emails_personas($personas_ids, false);
                                        toba::logger()->debug("emails_personas: ".count($emails_personas)); // <===> Linea a agregar
...............................

Luego vuelvan a probar de actualizar los alumnos, y vuelvan a enviar los logs.

saludos.
2

Hola de nuevo,

Observo una cosa en los logs, a la hora de crear los usuarios en Moodle, Guaraní esta enviando mucho mas de 100 usuarios, pero en la respuesta de Moodle vuelven solo 100, deberiamos ver alguna configuración de Moodle que este limitando.

Observando, en Moodle Área personal/Administración del sitio/Usuarios/Permisos/Políticas del usuario hay una opción llamada Número máximo de usuarios por página (maxusersperpage), descripción: Número máximo de usuarios que se mostrará en el selector de usuarios dentro de cursos, grupos, cohortes, servicios web, etc. que sucede si le aumentan el valor?

saludos.
2

Hola Leonardo,

Les adjunto la tabla mdl_logstore_standard_log donde quedaron registrados la matriculación de estudiantes en el curso de Biología Celular y los primeros registros (últimos movimientos) hacen referencia al webservice.


campusubaxxi.mdl_logstore_standard_log.csv.zip (182 KB)

Con respecto a este punto esta puesto en 100000.

Saludos,
Valeria


ScreenHunter_18 Apr. 03 12.36.gif

ScreenHunter_18 Apr. 03 12.36.png