Ir al contenido

Configurar la conexión con Moodle para formación

Smartosh permite transmitir datos de formación entre Smartosh y Moodle. Smartosh calcula las formaciones que debe realizar cada persona según los EPIs que usa, el puesto que ocupa, el centro de trabajo, etc. A partir de ese cálculo, da de alta al usuario en Moodle, lanza la convocatoria y posteriormente recoge la fecha de asistencia y los resultados de las evaluaciones cuando proceda.

El circuito de necesidades de formación es idéntico al de las necesidades de formación manuales: la generación de certificados y el resto de pasos se rigen exactamente por las mismas normas.

Aunque la configuración interna de Moodle queda fuera del alcance de esta guía, hay puntos imprescindibles para que la integración funcione:

  • Habilitar los servicios web (extensiones en Moodle).
  • Crear un usuario, un conjunto de servicios y un token que se usará en la conexión.
  • Los protocolos definidos deben ser REST y XML-RPC.
  • Las condiciones de finalización del curso deben estar correctamente definidas en Moodle, ya que es Moodle quien determina si un usuario ha completado un curso.

El detalle de estas operaciones está explicado en la documentación oficial de Moodle: Web service settings.

Cada conexión relaciona de forma biunívoca un curso de un servidor de Moodle concreto con una convocatoria de Smartosh.

Antes de crear la conexión, debe existir en Smartosh la formación y la convocatoria que se van a relacionar con Moodle. Se recomienda definir una convocatoria con una formación y una sesión formativa para simplificar la gestión.

Acceder a Configuración → Conexión Moodle y cumplimentar los siguientes campos:

CampoDescripción
NombreNombre interno con el que se identifica esta conexión.
FormaciónSe escoge entre las formaciones definidas en Smartosh.
ConvocatoriaSolo se pueden seleccionar convocatorias que incluyan la formación del campo anterior.
URL del servicioSuministrada por el administrador de Moodle. Página donde se lanza la petición del webservice.
TokenToken para acceder al servicio, definido en Moodle.
Identificador de la formación en MoodleNúmero que identifica el curso en Moodle.
EstadoAl lanzar la operación pasa a Importando y al finalizar muestra: Finalizada con error, Finalizada con advertencias o Finalizada correctamente.
Email para notificación de erroresSi está definido, cuando un proceso diario detecta errores se envía un aviso por correo (sin detalle; hay que consultar el historial).
Moodle exclusivo para este tenantActiva avisos adicionales que solo tienen sentido cuando los empleados de Smartosh coinciden con los de Moodle.
DesactivadoSi está marcado, el proceso nocturno no se ejecuta. Aún así puede lanzarse la conexión manualmente.
HistoriaDetalle de las fechas y resultados de cada ejecución.
FuncionesReservado para usos futuros y otras versiones de Moodle.

Una vez configurada la conexión Moodle, la formación, la convocatoria y las parametrizaciones necesarias en Moodle (cursos, encuestas, etc.), el proceso de sincronización puede lanzarse de tres formas:

  • Automáticamente cada noche mediante el proceso ConexionDatosWorker.SincronizarTodasConexiones, siempre que el check Desactivado esté desmarcado.
  • Manualmente desde Configuración → Conexiones Moodle, usando la operación Realizar Conexión. Al finalizar se muestra el resultado en la Historia de la conexión.
  • Desde Formación → Convocatorias, seleccionando una convocatoria con una conexión Moodle activa. Aparece el botón Sincronizar con Moodle y una pestaña con el estado y el historial.

El proceso de traspaso se divide en dos bloques claramente diferenciados: exportación de participantes hacia Moodle y recogida de resultados desde Moodle.

El sistema revisa todas las necesidades de formación marcadas como No Convocadas para la formación vinculada a la conexión y, para cada una, ejecuta:

La aplicación busca al empleado en Moodle usando el identificador que tiene en Smartosh (DNI, NIE, etc.). La búsqueda se hace por:

  • Identificador = username
  • Identificador = IdNumber (campo adicional de Moodle)
  • email = email de Smartosh

Si no se encuentra al empleado, Smartosh envía a Moodle los siguientes datos para darlo de alta:

  • Username (identificador)
  • Password (generado por la aplicación)
  • Nombre
  • Apellido 1
  • Email (obligatorio en Moodle y no puede duplicarse; el sistema lo verifica)
  • Identificador
  • Orden de reiniciar el password en el primer acceso

En el log se registra: Usuario {Nombre y apellido1} ({Identificador}) - alta en el sistema.

Se comprueba si el empleado ya está matriculado en el curso. Si no lo está, la aplicación lo matricula.

En el log se registra: Usuario {Nombre y apellido1} ({Identificador}) - matriculación en el curso en Moodle.

La necesidad de formación se actualiza con la convocatoria y la fecha de convocatoria, y queda marcada como En Curso.

En el log se registra: Usuario {Nombre y apellido1} ({Identificador}) - convocado en SmartOSH.

A cada empleado convocado se le envía un email, salvo que tenga marcado el check “Desactivar envío de emails”:

  • Usuario nuevo → plantilla «Alta de usuario en Moodle», con usuario y password para iniciar la formación.
  • Usuario existente, nueva formación → plantilla «Matriculación en Moodle».

La aplicación consulta a Moodle los participantes del curso y, para cada uno:

  1. Identificación del usuario en Smartosh dentro de esa convocatoria, por idnumber (NIF) o por username.
  2. Recuperar fecha de asistencia y puntuación: la información se guarda como nota de evaluación y fecha de asistencia, marcando como asistido en la sesión correspondiente. Si la formación tiene marcado “debe evaluarse”, también se registra la fecha de evaluación y la nota.
  3. Recuperar finalización: si Moodle indica que el curso está finalizado, la acción se marca como completada en Smartosh y la persona se desmatricula del curso en Moodle (no podrá volver a acceder a él).

Al finalizar, el sistema guarda la lista de operaciones e incidencias generadas en el historial de la conexión Moodle.

El usuario asociado al token debe tener permisos para lanzar las siguientes funciones de la API de Moodle:

  • core_completion_get_activities_completion_status
  • core_completion_get_course_completion_status
  • core_course_get_courses
  • core_enrol_get_enrolled_users
  • core_enrol_get_users_courses
  • core_grades_get_grades o gradereport_user_get_grade_items (para versiones superiores a 3.2)
  • core_webservice_get_site_info
  • enrol_manual_enrol_users
  • enrol_manual_unenrol_users
  • core_user_create_users
  • core_user_get_users
  • core_user_update_users
  • Cuando una convocatoria está enlazada con Moodle, los exámenes de evaluación se realizan en Moodle.
  • Al finalizar una acción formativa, el sistema genera el certificado (si así está parametrizado), exactamente igual que en una convocatoria manual.

En los entornos SPA, debe crearse una convocatoria y una conexión Moodle por curso en cada entorno, incluso cuando el curso en Moodle exista únicamente en idioma español.


Fuente: KB029 «Configuración y funcionamiento de la conexión Moodle para formación», módulo Formación, versión 1.0.00, 17-09-2025.