Aller au contenu

Configurer la connexion avec Moodle pour la formation

Smartosh permet de transmettre des données de formation entre Smartosh et Moodle. Smartosh calcule les formations que chaque personne doit suivre en fonction des EPI qu’elle utilise, du poste qu’elle occupe, du centre de travail, etc. À partir de ce calcul, il inscrit l’utilisateur dans Moodle, lance la convocation et récupère ensuite la date de présence et les résultats des évaluations lorsque cela est nécessaire.

Le circuit des besoins de formation est identique à celui des besoins de formation manuels : la génération des certificats et les autres étapes sont régies exactement par les mêmes règles.

Bien que la configuration interne de Moodle soit hors du cadre de ce guide, certains points sont indispensables pour que l’intégration fonctionne :

  • Activer les services web (extensions dans Moodle).
  • Créer un utilisateur, un ensemble de services et un token qui seront utilisés pour la connexion.
  • Les protocoles définis doivent être REST et XML-RPC.
  • Les conditions d’achèvement du cours doivent être correctement définies dans Moodle, car c’est Moodle qui détermine si un utilisateur a terminé un cours.

Le détail de ces opérations est expliqué dans la documentation officielle de Moodle : Paramètres des services web.

Chaque connexion relie de manière biunivoque un cours d’un serveur Moodle spécifique à une convocation Smartosh.

Avant de créer la connexion, la formation et la convocation à relier à Moodle doivent exister dans Smartosh. Il est recommandé de définir une convocation avec une formation et une session de formation pour simplifier la gestion.

Accéder à Configuration → Connexion Moodle et remplir les champs suivants :

ChampDescription
NomNom interne identifiant cette connexion.
FormationChoisie parmi les formations définies dans Smartosh.
ConvocationSeules les convocations incluant la formation du champ précédent peuvent être sélectionnées.
URL du serviceFournie par l’administrateur Moodle. Page où la requête du webservice est lancée.
TokenToken pour accéder au service, défini dans Moodle.
Identifiant de la formation dans MoodleNuméro identifiant le cours dans Moodle.
ÉtatLors du lancement de l’opération, passe à Importation en cours et à la fin affiche : Terminée avec erreur, Terminée avec avertissements ou Terminée correctement.
Email pour notification des erreursSi défini, lorsqu’un processus quotidien détecte des erreurs, un avis est envoyé par email (sans détail ; il faut consulter l’historique).
Moodle exclusif pour ce tenantActive des alertes supplémentaires qui n’ont de sens que lorsque les employés de Smartosh correspondent à ceux de Moodle.
DésactivéSi coché, le processus nocturne ne s’exécute pas. La connexion peut néanmoins être lancée manuellement.
HistoriqueDétail des dates et résultats de chaque exécution.
FonctionsRéservé pour usages futurs et autres versions de Moodle.

Une fois la connexion Moodle configurée, la formation, la convocation et les paramétrages nécessaires dans Moodle (cours, enquêtes, etc.) en place, le processus de synchronisation peut être lancé de trois manières :

  • Automatiquement chaque nuit via le processus ConexionDatosWorker.SincronizarTodasConexiones, à condition que la case Désactivé soit décochée.
  • Manuellement depuis Configuration → Connexions Moodle, en utilisant l’opération Effectuer la connexion. Le résultat s’affiche dans l’Historique de la connexion.
  • Depuis Formation → Convocations, en sélectionnant une convocation avec une connexion Moodle active. Le bouton Synchroniser avec Moodle apparaît ainsi qu’un onglet avec l’état et l’historique.

Le processus de transfert se divise en deux blocs clairement différenciés : exportation des participants vers Moodle et récupération des résultats depuis Moodle.

Le système examine tous les besoins de formation marqués comme Non Convocés pour la formation liée à la connexion et, pour chacun, exécute :

L’application recherche l’employé dans Moodle en utilisant l’identifiant qu’il a dans Smartosh (DNI, NIE, etc.). La recherche se fait par :

  • Identifiant = username
  • Identifiant = IdNumber (champ additionnel de Moodle)
  • email = email de Smartosh

Si l’employé n’est pas trouvé, Smartosh envoie à Moodle les données suivantes pour l’inscrire :

  • Username (identifiant)
  • Mot de passe (généré par l’application)
  • Prénom
  • Nom de famille 1
  • Email (obligatoire dans Moodle et ne peut être dupliqué ; le système le vérifie)
  • Identifiant
  • Ordre de réinitialiser le mot de passe au premier accès

Le log enregistre : Utilisateur {Prénom et nom1} ({Identifiant}) - inscription dans le système.

Il est vérifié si l’employé est déjà inscrit au cours. Sinon, l’application l’inscrit.

Le log enregistre : Utilisateur {Prénom et nom1} ({Identifiant}) - inscription au cours dans Moodle.

Le besoin de formation est mis à jour avec la convocation et la date de convocation, et est marqué comme En cours.

Le log enregistre : Utilisateur {Prénom et nom1} ({Identifiant}) - convoqué dans SmartOSH.

Un email est envoyé à chaque employé convoqué, sauf si la case “Désactiver l’envoi d’emails” est cochée :

  • Nouvel utilisateur → modèle «Inscription utilisateur dans Moodle», avec utilisateur et mot de passe pour commencer la formation.
  • Utilisateur existant, nouvelle formation → modèle «Inscription dans Moodle».

L’application interroge Moodle pour obtenir les participants du cours et, pour chacun :

  1. Identification de l’utilisateur dans Smartosh dans cette convocation, par idnumber (NIF) ou par username.
  2. Récupération de la date de présence et du score : l’information est enregistrée comme note d’évaluation et date de présence, marquant la présence à la session correspondante. Si la formation est marquée “doit être évaluée”, la date d’évaluation et la note sont aussi enregistrées.
  3. Récupération de la finalisation : si Moodle indique que le cours est terminé, l’action est marquée comme complétée dans Smartosh et la personne est désinscrite du cours dans Moodle (elle ne pourra plus y accéder).

À la fin, le système enregistre la liste des opérations et incidents générés dans l’historique de la connexion Moodle.

L’utilisateur associé au token doit avoir les permissions pour lancer les fonctions suivantes de l’API 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 ou gradereport_user_get_grade_items (pour versions supérieures à 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
  • Lorsqu’une convocation est liée à Moodle, les examens d’évaluation se déroulent dans Moodle.
  • À la fin d’une action de formation, le système génère le certificat (si ainsi paramétré), exactement comme dans une convocation manuelle.

Dans les environnements SPA, il faut créer une convocation et une connexion Moodle par cours dans chaque environnement, même lorsque le cours Moodle existe uniquement en espagnol.


Source : KB029 «Configuration et fonctionnement de la connexion Moodle pour formation», module Formation, version 1.0.00, 17-09-2025.