Histórico da Página
...
O Smart Link é o mediador das mensagens entre a plataforma TotvsApp (cloud ) e ERP's (on premise), e por sua vez é formado por dois componentes: Smart Link Client (on premise), e Smart Link Server (cloud).
Exemplo de uso:
...
A intenção é que os clientes possuam em sua infraestrutura apenas o Smart Link Client, uma vez que o Smart Link Server será mantido pela TOTVS na nuvem.
02. Comunicação com a plataforma Smart Link Server
Como obter um token no rac
https://admin.rac.staging.totvs.app/totvs.rac/connect/token
Realizando o setup de comandos
https://link.staging.totvs.app/api/v1/link/setup
Envio de mensagens para o smart link server
https://link.staging.totvs.app/api/v1/link/send
Busca de mensagens da fila do smart link server
https://link.staging.totvs.app/api/v1/link/get
Retirar uma mensagem da fila do smartLink server
https://link.staging.totvs.app/api/v1/link/ack
02. SmartLinkClient (RM)
Foi implementado no RM uma arquitetura que permite a leitura e consumo automático das mensagens disponibilizadas no componente Smart Link Server. Através dessa arquitetura, mensagens poderão ser publicadas ou consumidas pelos segmentos. Essa comunicação ocorre através de chamadas Rest em api's disponbilizadas pelo componente Smart Link Server.
Para ocorrer essa comunicação, o usuário receberá por e-mail duas chaves chamadas "clientId" e "clientSecret". Essas chaves são geradas através de um serviço de provisionamento do cliente (tenant) na plataforma.
Após obter essa chave, o usuário deverá acessar o RM.exe, e executar um assistente chamado "Ativação Totvs Apps", localizado em "Integração/Totvs Apps", conforme imagem abaixo.
o usuário deverá entrar com o "clientId" e "clientSecret" disponibilizado.
Após execução do processo de ativação, será agendado um job chamado "ConTotvsAppExecutorTLCProcess". Esse job será agendado para ser executado de 1 em 1 minuto.
Para cada execução desse job, o serviço de pooling do "SmartLinkClient" será chamado. Sendo assim, nesse momento, todas mensagens de Upstream (mensagens a serem enviadas para a plataforma SmartLilnkServer) serão enviadas, e todas as mensagens de Downstream (mensagens a serem executadas pelo RM) serão baixadas e executadas.
As equipes dos segmentos, são as responsáveis em publicar e consumir mensagens. Esse detalhamento está disponível no linkPara que uma classe seja um consumidor de mensagens no SmartLink, deve-se atender aos pré-requisitos listados abaixo:
Pré-requisitos
- Criar um projeto (classLibrary .NET) na solution do segmento em questão, com o seguinte padrão de nome: RM.[Segmento].XXX.SmartLink.Service.
- Exemplo: RM.Glb.SGDP.SmartLink.Service.dll
- Adicionar referência para a dll "RM.Lib.SmartLink.dll";
Criar uma classe herdando da ancestral "RMSSmartLinkConsumerMessageBase".
- A classe "RMSSmartLinkConsumerMessageBase" herda da classe RMSObject da Lib. Consequentemente, as classes de "consumers" poderão chamar os métodos
...
A hora de execução dessa próxima tentativa de execução é calculada baseada em algumas informações conforme os atributos abaixo:
FatorTempoExecucao | Localizado no arquivo de configuração: "totvsAppConfig_v2.json" |
QtdeTentativasExec | Localizado no arquivo de configuração: "totvsAppConfig_v2.json" |
MinutesInterval | Localizado no arquivo de configuração: "totvsAppConfig_v2.json" |
QtdeTentantivaExecCorrente | Valor recuperado da tabela "GTotvsLinkMessage.QtdeTentativaExec". Para cada mensagem, o valor desse campo é incrementado conforme a sua tentantiva de execução |
DataHoraCorrente | Representa a hora corrente no momento do cálculo da próxima execução |
Informações |
---|
QtdMinutos = MinutesInterval * FatorTempoExecucao * QtdeTentativasExec * QtdeTentantivaExecCorrente HoraProximaTentativaExecução = DataHoraCorrente.AddMinutes(QtdMinutos) |
...
Todos os logs de execução das mensagens RM SmartLink são gravados na tabela GTotvsLinkLog. Essa tabela contém os seguinte atributos:
Coluna | Descrição |
---|---|
ID | Identificador único do Log |
IDMENSAGEM | Identificador único da mensagem relacionada a mensagem gravada em "GTotvsLInkMessage.ID" |
LOGTYPE | 0 - Mensagem de informação 1 - Mensagem de aviso 2 - Mensagem de erro |
LOGMENSAGEM | Texto contendo o log |
LOGDATE | Data de geração do Log |
DATADEBUG | Informações extras do log |
05. Modelo de dados do RM SmartLink client
Tabela | |
---|---|
GTOTVSLINKMESSAGE | Tabela utilizada para armazenar todos as mensagens geradas e enviadas para execução pelo SmartLink. Sempre que uma mensagem é executa com sucesso, a linha referente a mensagem é excluída dessa tabela , deixando essa tabela sempre leve. Esse procedimento melhora a performance do processo, visto que vários "updates" são realizados nessa tabela.Quando menor o volume de uma tabela, mais rápido será a operação do update. |
GTOTVSLINKMESSAGEEXEC | Tabela contendo todos os dados de execução de uma determinada mensagem. |
GTOTVSLINKLOG | Tabela contendo todos os logs de execução de uma mensagem. |