Pular para o conteúdo

Configurar a ligação com o Moodle para formação

Smartosh permite transmitir dados de formação entre Smartosh e Moodle. Smartosh calcula as formações que cada pessoa deve realizar segundo os EPIs que usa, o posto que ocupa, o centro de trabalho, etc. A partir desse cálculo, regista o utilizador no Moodle, lança a convocatória e posteriormente recolhe a data de assistência e os resultados das avaliações quando for o caso.

O circuito de necessidades de formação é idêntico ao das necessidades de formação manuais: a geração de certificados e os restantes passos regem-se exatamente pelas mesmas normas.

Embora a configuração interna do Moodle fique fora do âmbito deste guia, há pontos imprescindíveis para que a integração funcione:

  • Ativar os serviços web (extensões no Moodle).
  • Criar um utilizador, um conjunto de serviços e um token que será usado na ligação.
  • Os protocolos definidos devem ser REST e XML-RPC.
  • As condições de finalização do curso devem estar corretamente definidas no Moodle, pois é o Moodle que determina se um utilizador completou um curso.

O detalhe destas operações está explicado na documentação oficial do Moodle: Web service settings.

Cada ligação relaciona de forma biunívoca um curso de um servidor Moodle concreto com uma convocatória do Smartosh.

Antes de criar a ligação, deve existir no Smartosh a formação e a convocatória que serão relacionadas com o Moodle. Recomenda-se definir uma convocatória com uma formação e uma sessão formativa para simplificar a gestão.

Aceder a Configuração → Ligação Moodle e preencher os seguintes campos:

CampoDescrição
NomeNome interno com que se identifica esta ligação.
FormaçãoEscolhe-se entre as formações definidas no Smartosh.
ConvocatóriaSó se podem selecionar convocatórias que incluam a formação do campo anterior.
URL do serviçoFornecida pelo administrador do Moodle. Página onde se lança o pedido do webservice.
TokenToken para aceder ao serviço, definido no Moodle.
Identificador da formação no MoodleNúmero que identifica o curso no Moodle.
EstadoAo lançar a operação passa a Importando e ao finalizar mostra: Finalizada com erro, Finalizada com advertências ou Finalizada corretamente.
Email para notificação de errosSe definido, quando um processo diário deteta erros envia-se um aviso por email (sem detalhe; é necessário consultar o histórico).
Moodle exclusivo para este tenantAtiva avisos adicionais que só fazem sentido quando os colaboradores do Smartosh coincidem com os do Moodle.
DesativadoSe marcado, o processo noturno não é executado. Ainda assim, pode lançar-se a ligação manualmente.
HistóricoDetalhe das datas e resultados de cada execução.
FunçõesReservado para usos futuros e outras versões do Moodle.

Uma vez configurada a ligação Moodle, a formação, a convocatória e as parametrizações necessárias no Moodle (cursos, inquéritos, etc.), o processo de sincronização pode ser lançado de três formas:

  • Automaticamente todas as noites através do processo ConexionDatosWorker.SincronizarTodasConexiones, desde que o check Desativado esteja desmarcado.
  • Manualmente desde Configuração → Ligações Moodle, usando a operação Realizar Ligação. Ao finalizar mostra-se o resultado no Histórico da ligação.
  • Desde Formação → Convocatórias, selecionando uma convocatória com uma ligação Moodle ativa. Aparece o botão Sincronizar com Moodle e um separador com o estado e o histórico.

O processo de transferência divide-se em dois blocos claramente diferenciados: exportação de participantes para o Moodle e recolha de resultados desde o Moodle.

O sistema revê todas as necessidades de formação marcadas como Não Convocadas para a formação vinculada à ligação e, para cada uma, executa:

A aplicação procura o colaborador no Moodle usando o identificador que tem no Smartosh (DNI, NIE, etc.). A pesquisa faz-se por:

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

Se não for encontrado o colaborador, o Smartosh envia para o Moodle os seguintes dados para o registar:

  • Username (identificador)
  • Password (gerado pela aplicação)
  • Nome
  • Apelido 1
  • Email (obrigatório no Moodle e não pode duplicar-se; o sistema verifica)
  • Identificador
  • Ordem para reiniciar a password no primeiro acesso

No log regista-se: Utilizador {Nome e apelido1} ({Identificador}) - registo no sistema.

Verifica-se se o colaborador já está matriculado no curso. Se não estiver, a aplicação matricula-o.

No log regista-se: Utilizador {Nome e apelido1} ({Identificador}) - matrícula no curso no Moodle.

A necessidade de formação atualiza-se com a convocatória e a data da convocatória, ficando marcada como Em Curso.

No log regista-se: Utilizador {Nome e apelido1} ({Identificador}) - convocado no SmartOSH.

A cada colaborador convocado envia-se um email, salvo se tiver marcado o check “Desativar envio de emails”:

  • Utilizador novo → template «Registo de utilizador no Moodle», com utilizador e password para iniciar a formação.
  • Utilizador existente, nova formação → template «Matrícula no Moodle».

A aplicação consulta ao Moodle os participantes do curso e, para cada um:

  1. Identificação do utilizador no Smartosh dentro dessa convocatória, por idnumber (NIF) ou por username.
  2. Recuperar data de assistência e pontuação: a informação guarda-se como nota de avaliação e data de assistência, marcando como assistido na sessão correspondente. Se a formação tiver marcado “deve ser avaliada”, também se regista a data da avaliação e a nota.
  3. Recuperar finalização: se o Moodle indicar que o curso está finalizado, a ação marca-se como completada no Smartosh e a pessoa desmatricula-se do curso no Moodle (não poderá voltar a aceder a ele).

Ao finalizar, o sistema guarda a lista de operações e incidências geradas no histórico da ligação Moodle.

O utilizador associado ao token deve ter permissões para lançar as seguintes funções da API do 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 (para versões 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
  • Quando uma convocatória está ligada ao Moodle, os exames de avaliação realizam-se no Moodle.
  • Ao finalizar uma ação formativa, o sistema gera o certificado (se assim estiver parametrizado), exatamente igual que numa convocatória manual.

Nos ambientes SPA, deve criar-se uma convocatória e uma ligação Moodle por curso em cada ambiente, mesmo quando o curso no Moodle exista apenas em idioma espanhol.


Fonte: KB029 «Configuração e funcionamento da ligação Moodle para formação», módulo Formação, versão 1.0.00, 17-09-2025.