Conhecendo o TOTVS iPaaS (introdução/contextualização) | TOTVS Agro

O TOTVS IPaaS é uma ferramenta de integração de sistemas, permitindo conectar produtos que utilizam diferentes formas de comunicação. Atuando como intermediário, o TOTVS IPaaS permite realizar transformações nos dados de A para enviar a B, e vice-versa, além de criar diversos fluxos personalizados baseados em condições específicas dos dados trafegados. A solução também é capaz de integrar com qualquer aplicação, seja da TOTVS ou de terceiros.



Principais recursos e funcionalidades do TOTVS iPaaS | TOTVS Agro

Monitoramento → Monitor: Essa tela é responsável por monitorar a quantidade de mensagens transacionadas, separando-as em processadas, em processamento, reprocessadas e com falhas. É possível reprocessar as mensagens de um ou vários diagramas na subdivisão "Mensagens". As informações podem ser filtradas por intervalo de tempo.

Monitoramento → Dashboard: Essa tela resume as informações de integração, como o consumo do plano contratado, a saúde do ambiente (percentual de mensagens processadas com sucesso em relação ao total transacionado), a quantidade de transações por diferentes períodos de tempo e os diagramas que levam mais tempo para executar, entre outras métricas.

Monitoramento → Alertas: Essa tela tem como objetivo automatizar a vigilância de problemas e dados de consumo nas integrações, permitindo a criação de alertas personalizados para monitorar o "Limite de mensagens" e a "Taxa de erro". A primeira opção notifica um número específico de pessoas definidas sobre o consumo de transações em relação ao plano contratado. A segunda opção alerta os responsáveis sobre exceções e erros nas integrações. Ambas opções permitem definir limites quantitativos ou percentuais para o envio dos alertas. Os contatos que receberão os alertas podem ser configurados com e-mails, Discord, Telegram, entre outros.


Integrações → Projetos e Pacotes → Templates: No TOTVS iPaaS, você pode criar diagramas a partir de templates pré-configurados. Além dos templates padrão, também é possível definir outros templates personalizados, facilitando e agilizando a criação de diagramas frequentemente utilizados.

Integrações → Projetos e Pacotes → Diagramas: O builder é a ferramenta de construção de diagramas do TOTVS iPaaS, projetada no formato "arrasta e solta", permitindo a criação rápida e intuitiva de diagramas com diversas opções de configuração. Os diagramas podem ser salvos como rascunho ou publicados imediatamente após a finalização. No menu à esquerda, você pode acessar uma lista de aplicativos nativos e personalizados e os componentes essenciais para a construção dos diagramas. Também é possível editar configurações importantes, como o título e a descrição do diagrama, adicionar ou modificar variáveis, e ajustar a pré-visualização. O builder oferece ainda a possibilidade de consultar o histórico de ações e validar o diagrama, verificando automaticamente possíveis erros de fluxo ou configurações inadequadas antes da publicação. Além disso, o builder oferece funções adicionais no painel à esquerda, como a opção de alternar entre fundo claro e escuro para maior conforto, ajustar o zoom para facilitar a visualização de diagramas grandes, e a função "voltar ao início", que reposiciona o diagrama na posição original dentro do builder.


Ferramentas → Aplicativos → Nativos: Na guia "Nativos", estão listados todos os aplicativos homologados pela TOTVS, que já vêm disponíveis para uso ao adquirir o TOTVS iPaaS. Você pode conferir cada um deles neste link: Aplicativos nativos.

Ferramentas → Aplicativos → Personalizados: A guia "Personalizados" exibe exclusivamente os aplicativos criados pelos usuários. Esses aplicativos podem ser editados clicando no ícone de engrenagem. 
Para criar um novo aplicativo, basta localizar a opção "Cadastrar aplicativo" na aba "Aplicativos". Após criar um aplicativo, também é possível cadastrar os recursos que ele utilizará, como Ambientes, Contas e Serviços. Para o passo a passo de cada tipo de cadastro de recurso, acesse os links a seguir: Cadastrar ambiente, Cadastrar conta Cadastrar serviço.


Ferramentas → Componentes: A página de componentes do TOTVS iPaaS lista os componentes de início, básicos e avançados através das guias de cada tipo de componente. Além disso, é possível localizar componentes através da barra de busca. Para mais detalhes e especificações de cada componente, consulte este link: Componentes.

Ferramentas → Componentes → Iniciais: Essa guia traz apenas os componentes que estão disponíveis para iniciar uma integração/diagrama. Sendo eles: SmartLink Hook, Timer, Webhook e Webhook síncrono.

Ferramentas → Componentes → Básicos: Essa guia traz os componentes de uso básico no TOTVS iPaaS. Sendo eles: Converter, Generator, Global error, JDBC, Jolt, Resposta síncrona, SmartLink Sender, Splitter, Throw Exception e XSLT.

Ferramentas → Componentes → Avançados: Essa guia traz os componentes de uso avançado no TOTVS iPaaS. Sendo eles: FTP e SFTP.


Ferramentas → Variáveis → Projetos: Funcionam de maneira similar às variáveis globais, mas com o escopo limitado a um único projeto. Assim, as variáveis de projeto só são visíveis para diagramas dentro desse projeto específico.

Ferramentas → Variáveis → Globais: Visam facilitar o desenvolvimento de diagramas, reduzindo a duplicação de dados. Dados comuns podem ser cadastrados como palavras-chave e usados em múltiplos diagramas de um ou mais projetos. Caso haja necessidade de alteração, essa mudança refletirá em todos os diagramas que utilizam a variável.



Modelos de Planos do IPaaS | TOTVS Agro

Os dados apresentados abaixo foram consultados no Webinar de Apresentação da Solução TOTVS iPaaS.

Screenshot_1.png


Screenshot_2.png

Obs: valores e planos sujeitos a atualização, consulte o responsável.



















TOTVS Agro API Hub | Modelo e tecnologia padronizados para novas APIs em TOTVS Agro

O projeto ta-api-hub é uma ferramenta desenvolvida para facilitar a exposição de APIs de forma facilitada e padronizada, com base na estrutura de dados das soluções TOTVS Agro (Bioenergia), possibilitando também customizar as APIs via cadastro de queries obtendo maior flexibilidade.

O Cadastro de Entidades e Queries definirá a configuração / exposição e comportamento das APIs, bem como os métodos HTTPs habilitados, tabelas e colunas utilizadas, atributos da estrutura JSON relacionada, validações básicas, como tamanho, tipo de dado, obrigatoriedade, aplicação de máscara, validação de existência de entidade relacionada.


Cadastro de Entidade

A disponibilização das APIs no ta-api-hub é realizada via cadastro de entidades, definida e baseada na estrutura de dados da aplicação, conforme os cadastros a seguir:

Endpoint para entidades:

http://127.0.0.1:8080/api/v1/entities 

Estrutura de dados:

{
	"id": "UUID",
	"name": "nomeEntidade",
	"description": "Descrição da Entidade",
	"product": "BIOENERGIA",
	"entityTable": "NOME_DA_TABELA",
	"lastUpdate": "2024-06-20T12:58:05.401",
	"entityDeList": [
		{
			"id": "UUID",
			"fieldName": "nomeDoCampo",
			"description": "Descricao do Campo",
			"tableColumn": "NOME_DA_COLUNA",
			"columnType": "STRING",
			"columnSize": 50,
			"columnRequired": true,
			"columnMask": null,
			"columnPk": true,
			"tableFk": null,
			"columnFk": null,
			"filter": true
		},
		...
	],
	"entityChildList": [
              {
                "id": "UUID",
                "entityChild":{}
                "entityChildType": ""
              },
              ...
	],
	"entityApi": {
		"id": "UUID",
		"pathUrl": "entidades",
		"apiVersion": "v1",
		"businessClass": "",
		"enableGet": true,
		"enablePost": true,
		"enablePut": true,
		"enableDelete": true,
		"enabled": true,
		"lastUpdate": "2024-06-20T12:58:05.401"
	}	
}

Header

Detalhes (Lista)

Entidades Filhas (Lista)

Entidade API - Indica que a entidade será exposta via API

Sumário de Entidades

Diponibilizado endpoint para consulta do sumário de entidades cadastradas.

Método GET

http://127.0.0.1:8080/api/v1/entities/summary 


[
    {
        "id": "a3427359-dc2f-4245-915c-972cfa2b25af",
        "name": "parametro",
        "description": "Parametros",
        "path": "api/entity/v1/parametros",
        "enableGet": true,
        "enablePost": false,
        "enablePut": false,
        "enableDelete": false,
        "enabled": true,
        "details": [
            {
                "id": "d4a0e418-9423-4516-940b-03d4de5b9800",
                "fieldName": "secao",
                "description": "Seção",
                "columnRequired": false,
                "columnPk": false,
                "filter": true
            },
            {
                "id": "6c076bf9-2456-4b46-b43a-1296047be0ab",
                "fieldName": "entrada",
                "description": "Entrada",
                "columnRequired": false,
                "columnPk": false,
                "filter": true
            },
            {
                "id": "87c60f83-7592-44d7-9005-43589a05dcda",
                "fieldName": "tipo",
                "description": "Tipo",
                "columnRequired": false,
                "columnPk": false,
                "filter": false
            },
            {
                "id": "2fe199e6-3209-463b-af31-1ef20794e2b5",
                "fieldName": "valor",
                "description": "Valor",
                "columnRequired": false,
                "columnPk": false,
                "filter": false
            },
            {
                "id": "0611d39b-42f8-4044-86db-bb9e6336c998",
                "fieldName": "descricao",
                "description": "Descrição",
                "columnRequired": false,
                "columnPk": false,
                "filter": true
            },
            {
                "id": "828fcde4-9d47-4270-b1a7-82f35f148517",
                "fieldName": "validos",
                "description": "Valores Válidos",
                "columnRequired": false,
                "columnPk": false,
                "filter": false
            },
            {
                "id": "a4802480-ed33-46b6-91c1-df0e442672ac",
                "fieldName": "instancia",
                "description": "Instancia",
                "columnRequired": false,
                "columnPk": false,
                "filter": true
            }
        ]
    },
    ...
]

Cadastro de Queries

A disponibilização das APIs no ta-api-hub também podes ser realizada via cadastro de queries, definida e baseada na estrutura de dados da aplicação, conforme os cadastros a seguir:

Endpoint para queries:

http://127.0.0.1:8080/api/v1/queries 

Estrutura de dados: 

[
    {
        "id": "UUID",
        "name": "nomeEstruturaDados",
        "description": "Descrição",
        "product": "BIOENERGIA",
        "pathUrl": "queries",
        "lastUpdate": "2024-06-20T04:58:05.401",
        "queryDeList": [
            {
                "id": "UUID",
                "apiVersion": "v1",
                "query": "SELECT CD_SAFRA, DE_SAFRA, DE_COMP_TBL FROM SAFRAS WHERE CD_SAFRA = ::codigo",
                "databaseType": "ORACLE",
                "httpMethod": "GET",
                "enabled": true
            },
            ...
        ],
        "queryFieldsList": [
            {
                "fieldName": "codigo",
                "tableColumn": "CD_SAFRA",
                "columnType": "INTEGER",
                "columnSize": 5,
                "columnRequired": true,
                "columnMask": null,
                "columnPk": true,
                "tableFk": null,
                "columnFk": null,
                "id": "697e73b0-9520-4819-a6dc-350172fd9792"
            },
            ...
        ]
    }
]

Query Header

Query Detail

Query Field

Sumário de Queries

Diponibilizado endpoint para consulta do sumário de queries cadastradas.

Método GET

http://127.0.0.1:8080/api/v1/queries/summary 


[
    {
        "id": "ce429b8e-e284-44c7-a37c-d7dfbb0b7aed",
        "name": "safra",
        "description": "Safras",
        "details": [
            {
                "id": "56c53717-727b-4b33-bfcd-57b6f85d20df",
                "query": "SELECT CD_SAFRA, DE_SAFRA, DE_COMP_TBL FROM SAFRAS WHERE CD_SAFRA = ::codigo",
                "httpMethod": "GET",
                "path": "/api/v1/safras",
                "enabled": true
            },
            {
                "id": "bf3bbf43-cb35-4cc7-8c50-4c441772d4ce",
                "query": "INSERT INTO SAFRAS(CD_SAFRA, DE_SAFRA, DE_COMP_TBL) VALUES (::codigo,::descricao,::complemento)",
                "httpMethod": "POST",
                "path": "/api/v1/safras",
                "enabled": true
            },
            {
                "id": "23856856-2b8b-48a4-988d-38a20dba7209",
                "query": "UPDATE SAFRAS SET DE_SAFRA = ::descricao, DE_COMP_TBL = ::complemento WHERE CD_SAFRA = ::codigo",
                "httpMethod": "PUT",
                "path": "/api/v1/safras",
                "enabled": true
            },
            {
                "id": "4ddbba69-91a3-4f6e-92c3-92cd24a8619a",
                "query": "DELETE FROM SAFRAS WHERE CD_SAFRA = ::codigo",
                "httpMethod": "DELETE",
                "path": "/api/v1/safras",
                "enabled": true
            }
        ]
    }
]



Consumo das APIs

Composição da URL da API

A URL para as entidades e queries cadastradas é composta confome conforme configurado no cadastro da EntityAPI e QueryHe/QueryDe, para os campos apiVersion e pathUrl, conforme demonstrado a  seguir:

Os métodos HTTPs que podem ser utilizados são GET, POST, PUT e DELETE, e estarão disponíveis conforme configurados em cada modelo de exposição de APIs.


Segurança / Autenticação

A autenticação/autorização das APIs de integração utiliza o OAuth 2.0 Client Credentials Grant, sendo o método mais utilizado e também um fluxo de autorização projetado especificamente para integrações entre sistemas backend.

Principais vantagens:

Fluxo:





TOTVS Agro Middleware | Componente intermediário das APIs públicas do TOTVS Agro API Hub


Este tópico visa descrever o processo e as tecnologias utilizadas no desenvolvimento do TOTVS Agro Middleware. Utilizamos Java 21 pela sua robustez e eficiência, aliado à versão mais recente do Spring Framework, que oferece uma vasta gama de funcionalidades para a construção de aplicações modernas. Para simplificar a configuração, utilizamos traduções de XML baseadas em anotações, permitindo uma manutenção mais intuitiva e menos redundante. Além disso, implementamos um sistema de controle de filas lógicas e monitoramento de status para assegurar a integridade e a eficiência dos processos assíncronos. Essa combinação de tecnologias e práticas nos permite desenvolver uma aplicação escalável, segura e de alto desempenho.

Vídeos para exemplificar o fluxo completo da Integração entre Fila EAI x TOTVS Agro Middleware x TOTVS Agro API Hub

Parte 1

Parte 2




Framework e Engenharia TOTVS Agro

Release 12.1.2406 (Junho/2024)