Páginas filhas
  • Integração RM x Smart Link Behavior Sharing - Visão suporte

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

01. Apresentação

Este documento tem por objetivo auxiliar as equipes dos segmentos no entendimento do mecanismo de integração do RM com a plataforma de mensagens do SmartLinkSmart Link.

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).

Informações

Image AddedAté o momento, essa arquitetura somente poderá ser usada na comunicação entre aplicativos hospedados na plataforma Totvs Apps (ex: TPD, Antecipa, Consignado) com os ERP's. Ou seja, não será possível utilizar essa comunicação entre os ERP's do grupo. Nesse caso, deve ser utilizado o EAI para essa comunicação entre ERP's.

Como exemplo, a integração entre o ERP RM com TPD (Totvs Privacidade de Dados) ocorre através da plataforma Smart Link.


Exemplo de uso:


                                                             

Informações
  1. Aplicativo TPD publica uma mensagem no "Smart Link Server" solicitando uma221px anonimização de dados. Nesse momento a solicitação fica com o status de "Em Processamento".
  2. ERP RM (Smart Link Client) consome essa mensagem em um momento posterior, providenciando a anonimização dos dados em seu banco de dados;
  3. ERP RM (Smart Link Client) envia as respostas para o o Smart Link Server;
  4. Aplicativo TPD consome as respostas enviadas pelo RM providenciando a mudança do status original da solicitação para "Processada";


A plataforma Smart Link somente poderá ser usada pelos segmentos se o evento de negócio em questão possuir a natureza "assíncrona", ou seja, o publicador da mensagem não precisará de uma resposta imediata para prosseguir com seu processamento.

Essa comunicação Basicamente a conversa (assíncrona) entre os aplicativos hospedados na plataforma TotvsApp com o ERP RM ocorrerá atravé através da troca de mensagens entro entre o componente Smart Link Server com o componente Smart Link Client (localizado na framework RM).

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

A troca de dados com a plataforma Smart Link Server ocorrerá através de comunicação com api's Rest, conforme endpoints abaixo. Toda a comunicação entre o ERP RM com as apis da plataforma "Smart Link Server" já foi implementada através de um artefato, criado na framework RM chamada "Smart Link Client".


Após a configuração, clique em Testar conexão para garantir que os dados estão corretos e em seguida clique em avançar até a finalização do processo.

Deck of Cards
idEndpoints SmartLinkServer

Em seguida preencha as informações do servidor Fluig com as informações abaixo, para que o RM faça a comunicação com o Fluig.

  • Servidor: Endereço do servidor (Nome ou IP)
  • Porta: Porta a qual o Fluig está configurado
  • Porta FTP: Porta FTP a qual o Fluig está configurado (Padrão: 21)

Card
1º Passo:
labelBuscando token no Rac

Expandir
titleClique para ver o Menu

Image Removed

Card
label2º Passo:
Expandir
titleClique aqui

Image Removed

  • Usuário: Nome do usuário administrador do Fluig
  • Senha: Senha do usuário administrador do Fluig
  • Empresa: Empresa cadastrada no Fluig
  • Integração Fluig: Marcar o flag caso seja o servidor Fluig
  • Matrícula: Preencher com o Usuário de Integração. (Obrigatório se a integração foi com o Fluig)
  • Protocolo: Protocolo a qual o Fluig está configurado
  • Grupo de Usuário: Nome do Grupo ao qual usuários do RM serão associados no Fluig após o Sincronismo
  • Senha Padrão: Senha padrão para o usuário sincronizado com o GED acessar o Fluig
  • Tipo Log: Quais eventos serão inseridos no Log
  • Image Removed

    Observação:

    O ambiente físico de intra-estrutura dos sistemas ECM e Fluig precisam estar configurados para permitir o tráfego de informações do RM pelas portas configuradas pelo FTP. Quando não são feitas alterações nas portas utilizadas pelo FTP, as portas padrões 20 e 21 são utilizadas pelo RM para fazer o upload dos arquivos.
    Na estrutura dos sistemas ECM e Fluig existe um diretório utilizado para fazer o upload dos arquivos do RM através do FTP. É necessário dar permissão de escrita nesta pasta (no ambiente ECM ou Fluig) para o Usuário de Integração utilizado na parametrização da integração conseguir fazer o upload pelo FTP:

    Image Removed

    Ao publicar um documento do RM para o ECM, a matrícula utilizada para registrar quem fez a publicação é àquela correspondente ao Usuário de Integração:

    Image Removed

    Card
    label3º Passo:

    Image Removed

    Como obter um token no rac


    Informações

    Para acessar qualquer api com autenticação na plataforma TotvsApp, deve ser recuperado um token de acesso no Rac.

    Esse accessToken deve ser gerado repassando as credenciais de "clientId" e "clientSecret" do cliente em questão conforme print acima.

    Endereços da api do Rac: 

           Ambiente desenvolvimento: https://admin.rac.

    ...

    dev.totvs.app/totvs.rac/connect/token

    Realizando o setup de comandos 

          Ambiente Staging: https://

    ...

    admin.rac.staging.totvs.app/

    ...

    totvs.rac/

    ...

    Envio de mensagens para o smart link server

    connect/

    ...

    token

          Ambiente Produção: 

    https://

    ...

    admin.

    ...

    rac.totvs.app/

    ...

    totvs.rac/

    ...

    connect/token

    Card
    labelConfigurando as filas

    Image Added

    Informações

    Essa api permite que determinados comandos sejam "escutados" pelos artefatos de consumidores criados pelos segmentos.

    Ex:

    {
    "subscriptions": [ "SGDPDataCommand""SGDPMaskCommand", "SGDPLogsCommand" ]
    }

    Card
    labelRecuperando mensagens da fila

    Image Added

    Informações

    Mensagens criadas na plaforma poderão ser recuperadas através dessa api

    Card
    labelRemovendo mensagens da fila
    Image Added


    Informações

    Mensagens podem ser removidas da plaforma através dessa api

    02. TOTVS APPS (RM)

    Foi implementada na framework

    ...

    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 ocorrerá através de chamadas Rest em api's disponbilizadas disponibilizadas pelo componente Smart Link Server.

    Para ocorrer ativar 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 chaveessas chaves, 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.


    1. É informada as credenciais do RAC.

    ...



    1. Seleciona a ação do App

      1. Ativar - Instala ou Reativa um App.

      2. Desativar - Desativa um App instalado.

      3. Reparar - Remove e reinstala o App.

    2. Executa a ação do app selecionado.

    • Se houver Apps no Rac que ainda não tenham suporte no RM, eles serão exibidos na lista como "indisponíveis". Além disso, os aplicativos que foram desativados por meio do gerenciador de Apps também aparecerão como "indisponíveis" na lista.

    Image Added

    ...


    Após execução do processo de ativação, será agendado criado um job chamado "ConTotvsAppExecutorTLCProcess". Esse job será agendado para ser executado de 1 em 1 minuto.

    Para cada execução desse do job, o serviço de pooling do "SmartLinkClientSmart Link Client" será chamado. Sendo assim, nesse disparado. Nesse momento, todas mensagens de Upstream (mensagens a serem enviadas para a plataforma SmartLilnkServerSmart Lilnk Server) serão enviadas, e  serão enviadas.  E todas as mensagens de Downstream (mensagens a serem executadas pelo RM) serão baixadas e executadas.


    Informações

    Cada mensagem publicada no componente "Smart Link Client" será armazenada no banco de dados na tabela "GTotvsLinkMessage" e cada mensagem processada será incluída na tabela "GTotvsLinkMessageExec". Mensagens processadas com sucesso serão removidas da tabela "GTotvsLinkMessage", ficando portanto seu histórico apenas na tabela "GTotvsLinkMessageExec".


    As equipes dos segmentos, são as responsáveis em publicar e consumir mensagens nessa arquitetura. Para isso, foi criado um documento detalhando como publicar e criar artefatos para consumir mensagens (disponível no link abaixo):

    Integração RM x SmartLink - Visão desenvolvedor


    03. Tentativas de execução da mensagem em caso de erro

    Caso ocorra erro na execução de alguma mensagem, a mesma poderá ser será executada novamente em outro momento. A quantidade de tentativas de execução é parametrizada no json de configurações genérico da integração TotvsApp. Esse json, chamado "totvsAppConfig_v2.json",  está localizado no na plataforma GCP (Google Cloud Platform).

    ...



    FatorTempoExecucaoLocalizado no arquivo de configuração: "totvsAppConfig_v2.json"
    QtdeTentativasExecLocalizado no arquivo de configuração: "totvsAppConfig_v2.json"
    MinutesIntervalLocalizado no arquivo de configuração: "totvsAppConfig_v2.json"
    QtdeTentantivaExecCorrenteValor recuperado da tabela "GTotvsLinkMessage.QtdeTentativaExec". Para cada mensagem, o valor desse campo é incrementado conforme a sua tentantiva tentativa de execução
    DataHoraCorrenteRepresenta a hora corrente no momento do cálculo da próxima execução


    Informações
    titleFórmula de cálculo da próxima tentativa

    QtdMinutos = MinutesInterval * FatorTempoExecucao * QtdeTentativasExec * QtdeTentantivaExecCorrente

    HoraProximaTentativaExecução = DataHoraCorrente.AddMinutes(QtdMinutos)

    ...

    O valor calculado em "HoraProximaTentativaExecucao" é gravado na coluna "GTotvsLinkMessage.DataTentativaExec" da mensagem em questão. Portanto, a próxima execução dessa mensagem acontecerá somente após essa data/hora calculada. 

    ...

    ...

    Todos os logs de execução das mensagens RM SmartLink Smart Link Client são gravados na tabela GTotvsLinkLog. Essa tabela contém os seguinte atributos:

    ColunaDescrição
    IDChave primária da tabela. Identificador único do Log.
    IDMENSAGEM

    Identificador único da mensagem relacionada a mensagem gravada em "GTotvsLInkMessage.ID". É através desse campo

    que o usuário poderá filtrar todos os logs de uma determinada mensagem.

    LOGTYPE

    0 - Mensagem de informação

    1 - Mensagem de aviso

    2 - Mensagem de erro

    LOGMENSAGEMTexto contendo o log
    LOGDATEData de geração do Log
    DATADEBUGInformações extras do log

    05. Modelo de dados do RM SmartLink client



    Tabela
    GTOTVSLINKMESSAGE

    Tabela utilizada para armazenar todos todas as mensagens geradas e enviadas para execução pelo SmartLinkSmart Link Client.

    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 Quanto menor o volume de uma tabela, mais rápido

    será a operação serão as operações do update e detele.

    GTOTVSLINKMESSAGEEXEC

    Tabela contendo todos os dados de execução de uma determinada mensagem. O conteúdo dessa tabela nunca será excluído,

    ficando portanto como um histórico de execução. Porém, essa tabela poderá ter um volume muito grande.

    Sendo assim, seria importante de tanto em tanto tempo mensagens muito antigas serem excluídas dessa tabela.

    GTOTVSLINKLOGTabela contendo todos os logs de execução de uma mensagem. O conteúdo dessa tabela nunca será excluído,

    ficando portanto como um histórico de log de execução. Porém, essa tabela poderá ter um volume muito grande.

    Sendo assim, seria importante de tanto em tanto tempo logs muito antigos serem excluídos dessa tabela.