Matriculación automática de alumnos en Moodle

Hola a todos!!

Hemos detectado el inconveniente de que cuando dentro de una comisión de SIU existe un alumno que no está vinculado correctamente en Moodle, el proceso de matriculación automática entre SIU y el aula de Moodle falla para todos los alumnos de esa comisión Es decir, si un alumno tiene problemas, no matricula a ninguna de dicha comisión.

¿es posible realizar una mejora que solo afecte al alumno con problemas pero el proceso se realice igual para el resto de los inscriptos a una comisión?
Muchas gracias

Ir a la issue

Hola @caryauan

¿Donde estas matriculando? ¿en Administrar Comisiones solapa Moodle?

En tal cosa podes modificar en php/operaciones/plataformas_virtuales/ci_edi_educacion_virtual.php y cambiar:

$lote_matriculaciones = array_chunk($matriculaciones,1000, true);

por:

$lote_matriculaciones = array_chunk($matriculaciones, 1, true);

En lugar de lotes de a mil procesa de a lotes de a uno. El problema es que va a ser mas lento, ya que hace mas peticiones a Moodle.

Para saber la causa de porque falla el lote hace Habilitar la Depuración para desarrolladores, luego en los logs podrás ver la causa del error.

Saludos.

Hola Leonel! Gracias por tu respuesta.
La verdad no lo vemos como una solución eficiente al inconveniente que se presenta. Dado que la sincronización entre SIU y Moodle sería muy lenta. ¿no hay posibilidad de que deje a ese alumno pendiente y pase al próximo para que toda una comisión no se vea afectada por el error de un solo alumno? Hemos tenido dificultades con comisiones numerosas donde solo 1 alumno no estaba bien vinculado. ¿habrá alguna solución alternativa a la que me indicás en tu respuesta?
Muchísimas gracias por tu ayuda!!
Saludos

En realidad lo que debe estar fallando es cuando se llama a core_user_create_users, en php/operaciones/plataformas_virtuales/ci_edi_educacion_virtual.php cuando se llama a $usuarios_moodle = $this->get_moodle_obj()->crearUsuarios($usuarios, true);. Si en el bloque falla la creación de un usuario falla todo el bloque. Revisa en los logs la razón por la cual falla y arreglalo, así no se rompe el bloque. Posibles causas:

  1. Email ya usado por otro usuario de Moodle, o que no tenga email la persona.

  2. Nombre de usuario invalido: El nombre de usuario sólo puede contener caracteres alfanuméricos en minúsculas (letras y números), subrayado (_), guión (-), punto (.) o arroba (@).

Al Habilitar la Depuración para desarrolladores vamos a poder ver el problema en los logs.

Saludos.