V10 RecursosGuias
RecursosGuias
Guias
Voltar | Lista de artigos

Qual é a infraestrutura que suporta o Assistente Echo?

Última alteração a 08/01/2025

O Assistente Echo baseia-se no Bot, um serviço construído sobre a plataforma Hurakan.

Este serviço é visível na consola de serviços do Windows com o nome Primavera Bot e está permanentemente em execução, sendo responsável pela realização de tarefas com diferentes importâncias e impactos no sistema.

O conceito subjacente à plataforma Hurakan é que esta executa pipelines, ou seja, a execução de uma sequência de handlers.

Conceitos

Handlers

Um handler é uma classe que herda de Primavera.Hurakan.BotHandlers.TopicHandlerBase.

Um handler permite efetuar um override aos métodos SetContext, onde pode receber informação antes de executar uma tarefa, e ProcessMessage - método responsável pela execução dessa tarefa.

Pipelines

Uma pipeline define as operações a serem executadas (handlers) e a sua sequência.

Task

Uma task é a estrutura que agrega uma pipeline com outras informações importantes relativas ao agendamento, resiliência e importância, entre outras.

Para conhecer a definição de todas as propriedades de uma task recomenda-se a leitura do ficheiro TemplateTopicBaseSQL.sql, disponível aqui.

O estado (State) é uma das mais importantes propriedades das tasks. De seguida, são apresentados os estados possíveis e os respetivos significados:

  • 0: Pronta ou quando a task é criada;
  • 1: Bloqueada por um worker ou a ser processada;
  • 2: Processada com sucesso;
  • 3: Cancelada devido a erro durante a execução e nas tentativas subsequentes;
  • 4: Pendente a aguardar a sua atribuição a um worker;
  • 5: Atribuída a um worker que a irá executar.

Topic

Um topic é um conjunto de tasks.

Tabelas da Base de Dados

As tabelas utiizadas pelo Bot podem ser encontradas na base de dados PRIEMPRE da instância default do ERP, mesmo em ambientes multi-instância:

NomeDescrição
BotMessagesContém as mensagens produzidas pela execução de pipelines para apresentar aos utilizadores através do Assistente Echo.
BotStringTableGuarda recursos para efeito de traduções.
BotTaskExecutionsContém o histórico de execução de cada task.
BotTaskExecutionTracesContém o rastreamento da execução de cada task.
BotTaskReceiversContém os destinatários das mensagens produzidas por cada task.
BotTasksContém as tasks.
BotTopicsContém os topics.
BotTopicUserLikesGuarda as reações dos utilizadores às mensagens.
BotUserSettingsGuarda as definições do painel do Assistente Echo para cada utilizador.
BotWorkerStatusContém as tasks que cada worker do Bot está a executar.
BotWorkQueueItemsRepositório das tasks agendadas, a ser executadas e executadas.

Todas as tasks e as respetivas configurações estão disponíveis no ERP através do Monitor de Operações do Echo.

Sistema de Ficheiros

A instalação do Bot é feita em: \SG100\Apl\HUR.

Aqui podem ser encontrados os componentes da plataforma Hurakan e os plugins, assim como o executável do serviço cujo nome é Primavera.Hurakan.exe.

Cada topic tem a sua própria pasta e todos eles podem ser encontrados em: \SG100\Apl\HUR\Plugins\Bot.

Também nesta pasta pode ser encontrada uma peça central no funcionamento do Bot - o ficheiro Integration.config.

Este ficheiro contém configurações centrais para o funcionamento do sistema, pois contém as pipelines base que são executadas periodicamente e que são responsáveis pelo agendamento e execução de todas as tasks dos plugins. Cada pipeline tem uma calendarização própria onde é indicado o intervalo entre execuções.

De seguida, são enumeradas as pipelines existentes no Integration.config:

PipelineDescrição
KeepAliveMantém o serviço em funcionamento.
LoadWorkQueueCria tasks e insere-as na tabela BotWorkQueueItems.
ScheduleTasksObtém todos as tasks no estado 0 (Pronta) e revê as suas prioridades.
ExecuteWorkQueueAtribui as tasks com prioridade superior a 500 aos workers disponíveis, executa as tasks no estado 5 (Atribuída) e prioridade superior a 1000 e, finalmente, executa as tasks no estado 5 (Atribuída) e prioridade superior a 500.
ExecuteLowPriorityWorkQueueAtribui tasks cuja prioridade máxima é 499 aos workers disponíveis e depois executa-as.
OrderMessagesAndCleanHistoryCalcula quais as próximas mensagens a apresentar ao utilizador no painel do Assistente Echo e limpa registos antigos.
Adicionar aos favoritos ou partilhar este artigo
Esta página foi útil?
Obrigado pelo seu voto.

login para deixar a sua opinião.

Obrigado pelo seu feedback. Iremos analisá-lo para continuarmos a melhorar!
Artigos Relacionados
Começar a Usar Como criar um projeto de integração com Visual Studio? Como criar um projeto de extensibilidade de interface (PEX) com Visual Studio? Como criar um projeto de extensibilidade de API (Motor) com Visual Studio? Como criar separadores do utilizador com Visual Studio?