Child pages
  • TOTVS Agent

O que é?

É um programa cuja finalidade é entregar as mensagens geradas pelo MDM (Carol) para os ERPs de destino, utilizando a técnica de pull.

Como funciona?

O TOTVS Agent executa como um serviço (sem tela), e conecta-se às filas do MDM para as quais foi configurado. Periodicamente, o TOTVS Agent verifica se há alguma mensagem na fila, fazendo a entrega do conteúdo ao ERP designado nas configurações. Para se conectar ao MDM, é necessário que a máquina onde o TOTVS Agent estiver rodando tenha acesso à internet.

Usando a técnica de pull, que basicamente consiste em buscar as mensagens, em vez de recebê-las, tanto o TOTVS Agent quanto os ERPs permanecem protegidos pela infraestrutura de rede do cliente, sem que seja necessário expor servidores para a Internet.

Como instalar?

Antes de instalar o TOTVS Agent, certifique-se de que o .NET Framework versão 4.0 esteja instalado no servidor.

O TOTVS Agent é composto de um executável Windows (TOTVSAgent.exe) e suas dependências, que cujo pacote pode ser baixados deste link (TOTVS Agent.zip).

O pacote pode ser descompactado em qualquer pasta, mas todos os arquivos nele contidos devem ser mantidos na mesma pasta.

É extremamente recomendável que o TOTVS Agent seja instalado como um serviço do Windows. Para isso, deve-se executar o programa Instalar TOTVSAgent.bat, que se encontra no pacote do programa. O serviço será instalado com nome TOTVS Agent e tipo de inicialização Manual.

Caso seja necessário desinstalar o TOTVS Agent da lista de serviços do Windows, pode-se utilizar o programa Desinstalar TOTVSAgent.bat, também disponível no pacote.

Como configurar?

Para configurar o TOTVS Agent, é necessário editar o arquivo TOTVSAgent.config, que deve estar na mesma pasta do executável. Esse arquivo está organizado no formato JSON, logo sua edição deve respeitar as convenções esperadas para este formato.

A estrutura geral do arquivo é a seguinte:

  • StandardMessage:
    • Conexão 1
    • Conexão 2
    • ...
    • Conexão N
  • Parâmetros

A seguir, detalharemos cada uma das partes:

  • StandardMessage: é um array JSON contendo uma ou mais conexões. Para cada conexão, deve-se informar os seguintes atributos:
    • Active: indica se a conexão está ativa ou não. É possível ter mais de uma conexão ativa. Os valores aceitos são true ou false.
    • ERPApp: é o identificador do aplicativo de EAI configurado no ERP.
    • ERPProduct: nome do produto.
    • ERPCompany: código da empresa do ERP configurada para integrar com o MDM.
    • ERPEndPoint: URL do webservice de recebimento de mensagens padronizadas disponibilizado pelo ERP.
    • ERPUsername: usuário para autenticar no webservice de recebimento.
    • ERPPassword: senha para autenticar no webservice de recebimento.
    • CarolAIEndPointBase: URL base dos serviços REST para consultar e atualizar a fila de mensagens disponibilizado no MDM (Carol).
    • CarolAIUsername: usuário para autenticar no serviço de fila de mensagens.
    • CarolAIPassword: senha para autenticar no serviço de fila de mensagens.
    • Transactions: é um array JSON contendo as transações que serão recuperadas da fila do MDM. Cada transação é composta dos seguintes atributos:
      • Active: indica se a transação está ativa, ou seja, se será recuperada do MDM. Os valores aceitos são true ou false.
      • TransactionID: Identificador da transação.
      • Version: Versão da transação.
  • Parâmetros: corresponde aos seguintes atributos:
    • StandardMessageFolder: URL ou pasta contendo os arquivos XSD que descrevem a estrutura das transações. O padrão é "http://api.totvs.com.br/MsgUnica/bo/".
    • TimeOut: quantidade de tempo, em milissegundos, que o TOTVS Agent aguardará para recuperar uma transação da fila, assim que uma conexão for estabelecida. Após terminado este intervalo de tempo, será gerado erro de timeout.
    • CheckInterval: quantidade de tempo, em milissegundos, que o TOTVS Agent aguardará entre uma conexão com o MDM e outra.

Abaixo, segue um exemplo de arquivo de configuração:

Exemplo de arquivo de configuração
{
   "StandardMessage":[
      {
         "Active": false,
         "ERPApp":"Protheus",
         "ERPProduct":"Protheus",
         "ERPCompanyID":"1",
         "ERPEndPoint":"http://localhost:8004/ws/EAIService.apw?WSDL",
         "ERPUsername":"admin",
         "ERPPassword":"",         
         "CarolAIEndPointBase":"https://abc.carol.ai/api/v1/totvssm/",
         "CarolAIUsername":"abc\\protheus\\[email protected]",
         "CarolAIPassword":"abc123",
         "Transactions":[
            {
               "Active": true,
               "TransactionID":"CustomerVendor",
               "Version":"2.003"
            },
            {
               "Active": true,
               "TransactionID":"Item",
               "Version":"2.001"
            },
            {
               "Active": true,
               "TransactionID":"UnitOfMeasure",
               "Version":"2.000"
            }
         ]
      },
      {
         "Active": true,
         "ERPApp":"RM",
         "ERPProduct":"RM",
         "ERPEndPoint":"http://localhost:8051/EAIService/IConWSEAIService",
         "ERPUsername":"admin",
         "ERPPassword":"admin",
         "ERPCompanyID":"1",
         "CarolAIEndPointBase":"https://abc.carol.ai/api/v1/totvssm/",         
         "CarolAIUsername":"abc\\rm\\[email protected]",
         "CarolAIPassword":"abc123",
         "Transactions":[
            {
               "Active": true,
               "TransactionID":"CustomerVendor",
               "Version":"2.003"
            },
            {
               "Active": true,
               "TransactionID":"CostCenter",
               "Version":"2.000"
            },
            {
               "Active": true,
               "TransactionID":"Item",
               "Version":"2.001"
            },
            {
               "Active": true,
               "TransactionID":"UnitOfMeasure",
               "Version":"2.000"
            }
         ]
      }
   ],
   "StandardMessageFolder":"http://api.totvs.com.br/MsgUnica/bo/",   
   "TimeOut":600000,
   "CheckInterval":120000
}



  • No labels