Páginas filhas
  • DEAIFOUNDATION-211 Configuração do EAI no Datasul Novo Frame

Objetivo


Este spike visa reunir todos os aspectos do desenvolvimento de configurador específico para o Datasul no Novo Framework.

Especificamente, o spike pretende:

  • Determinar se é possível reativar o configurador de EAI inicialmente desenvolvido pelo Framework Datasul.
  • Avaliar se é viável a construção de um novo configurador utilizando THF2.
  • Definir as tarefas necessárias para disponibilizar um configurador de EAI no Frame Novo do Datasul, com os requisitos mínimos (MVP).

Não faz parte deste spike estimar qualquer esforço adicional que não esteja alinhado com a entrega do MVP. Por exemplo:

  • Correções nos engines de EAI.
  • Correções no configurador do Datasul Frame Atual (TOTVS Monitor).
  • Elaboração de documentação de referência do novo configurador.

Considerando que o configurador, assim como todo o EAI, será de responsabilidade do Framework Datasul a partir de Abril/2019, ficará a cargo dessa equipe dar continuidade a manutenção e evolução do configurador após a conclusão do MVP.

Avaliação do cenário atual


No Datasul Frame Novo, é possível utilizar o Configurador Unificado, desde que haja um pacote de integração definido. Entretanto, não há, oficialmente, integrações descritas como pacotes e que estejam disponíveis no portfólio de pacotes de integração da TOTVS, o que impede a pronta utilização do Configurador Unificado no Datasul Frame Novo.

O Datasul Frame Novo, porém, encontra-se em beta-teste em alguns cliente, os quais ainda não demandaram por integrações usando o EAI e mensagem padronizada TOTVS. A maior demanda parte das áreas de negócio, que está desenvolvendo novas integrações, e necessitam homologá-las no Datasul Frame Novo.

A configuração dos ambientes de desenvolvimento e teste se dá por scripts que devem ser executados diretamente nos ambientes, por pessoal capacitado, aumentando a complexidade de setup do EAI.

No desenvolvimento do Frame Novo do Datasul foi criada uma tela de configuração com funcionalidades básicas, que permitiam um setup mais fácil do ambiente de EAI. Entretanto, essa tela foi descontinuada pela equipe do Framework Joinville, em favor do Configurador Unificado.

A tela de configuração foi desenvolvida em THF1 (TOTVS HTML Framework 1), baseado em AngularJS. Os novos desenvolvimentos do Datasul, porém, estão utilizando THF2, baseando em Angular (TypeScript), sendo que a recomendação inicial seria migrar a tela desenvolvida em THF1 para THF2.

Devido a necessidade de se realizar uma entrega rápida e de baixo custo, a opção é manter a tela desenvolvida em THF1, acrescentando as funcionalidades que permitam realizar a configuração mínima de uma integração sem a necessidade de scripts adicionais.

Características do configurador


Front-end

A tela de configuração de EAI disponível no Frame Novo do Datasul está no repositório do Frame Novo, dentro do projeto totvs-foundation. Os dados para acessar os fontes seguem abaixo:

Configurações de EAI como propriedades de sistema

A tela de configuração de EAI está vinculada a tela de propriedades de sistema do Datasul Frame Novo. Entretanto, essa tela de propriedades foi migrada para THF2, ficando de fora apenas as configurações de EAI. Ao reativar a tela de configuração de EAI, é necessário restringir o acesso a tela de propriedades anterior, em THF1.

Para acessar a tela de configuração de EAI pelo menu do produto, é necessário cadastrar novamente a tela de propriedades em THF1, uma vez que foi descontinuada. O cadastramento é realizado pelo programa bas_prog_dtsul e os dados a informar estão abaixo:

  • Nome programa: html.propriedades.
  • Nome externo: totvs-foundation/propriedades.
  • Template: Programa HTML.
  • Tipo: Tarefa.
  • Interface: WEB.
  • Procedimento: utilizar qualquer um pertencente ao módulo BTB.
  • Visualiza menu: Não.
  • Grupo de segurança: (*) Todos os usuários.

Setup do aplicativo interno

A tela de configuração de EAI em THF1 espera que o aplicativo interno já esteja inicializado. Numa base onde o EAI nunca tenha sido usado, será necessário utilizar o script de configuração citado no inicio deste documento. O nome do script é setup-host-app-new-frame.p e encontra-se anexo neste documento. Sua execução deve ser feita através do Procedure Editor do Progress, no ambiente que se quer inicializar.

Back-end

Dando suporte a interface do configurador de EAI, temos os programas que compõem o back-end da solução. Estes programas, desenvolvidos em Progress, são baseados na implementação do TOTVS-Rest e podem ser encontrados no mesmo repositório do front-end, na pasta /totvs-fwk-progress/src/main/progress/fwk/eai.

Funcionamento da solução final


O processo de configuração do EAI dentro do Datasul Frame Novo seguirá o seguinte fluxo, considerando um ambiente sem EAI e com todos os recursos necessários implementados:

  1. Após fazer login e acessar o menu do produto, o usuário deve acessar o item Propriedades do Sistema, no botão Configuração.
  2. Na tela de Propriedades do Sistema, deve-se selecionar a opção Propriedades EAI.
  3. Na tela Propriedades EAI, deve informar o nome do aplicativo interno no campo "Nome do aplicativo interno que será sugerido ao inicializar o EAI2" e salvar as alterações.
  4. Após sair de Propriedades EAI e Propriedades do Sistema, deve acessar o item de menu "Configurar Integrações TOTVS (EAI2)". Este item abrirá a tela de configuração de EAI desenvolvida em THF1 (aplicacoes-eai), sem referenciar a antiga tela de Propriedades, em THF1.
  5. Como o ambiente ainda não foi inicializado, a tela de configuração mostrar apenas o botão "Inicializar aplicativo interno" habilitado.
  6. O usuário deverá clicar no botão, que chamará o respectivo endpoint no backend, que executará as mesmas tarefas do script setup-host-app-new-frame.p, atualmente usado para inicializar um ambiente EAI no Datasul Frame Novo.
  7. Após esta inicialização, se bem sucedida, o botão "Inicializar aplicativo interno" muda para "Editar aplicativo interno" e o botão "Adicionar" fica habilitado, para permitir inclusão de aplicativos externos. Ao lado do botão "Editar Aplicativo Interno" é mostrado o botão "Transações disponíveis", para permitir listar as transações do aplicativo interno inicializado.
    1. Clicando no botão "Transações disponíveis", uma tela modal será aberta, listando as transações e o botão "Atualizar transações". Este botão, quando acionado, recarregará a lista de transações, adicionando novas transações que forem encontradas, e removendo transações cujos adapters não estejam mais disponíveis. As rotas vinculadas às transações indisponíveis serão removidas também.
    2. Ainda na tela de Transações Disponíveis, ao lado de cada transação, haverá um "toggle box" que permitirá desativar o registro de log da respectiva transação.
  8. O usuário acionará o botão "Adicionar" para incluir aplicativos externos, onde deverá informar o tipo de canal (SOAP, REST ou AMQP) e os dados necessários para comunicação pelo canal selecionado.
    1. Os canais SOAP e REST realizarão o contato com o aplicativo externo para obter a lista de transações (Whois).
    2. O canal AMQP não realizará tal contato e assumirá as transações do aplicativo interno em sentido contrário como sendo as transações do aplicativo externo.
  9. Após o cadastramento, o aplicativo externo será listado na tela principal, onde as seguintes operações estarão disponíveis:
    1. Rotas, para permitir definir as rotas com o aplicativo externo.
    2. De-para, para permitir a edição do de-para de empresas.
    3. Excluir, para remover o aplicativo externo da lista.
  10. Ao clicar no botão Rotas, será aberta uma tela modal onde o usuário poderá modificar o estado de uma transação (habilitado ou desabilitado). Apenas transações com modo suportado "Envio" ou "Ambos" devem ser listadas.
  11. Ao clicar no botão De-para, será aberta a tela de edição de de-para de empresas, que permitirá informar Empresa e filial externa, Empresa e filial interna. Confirmando os valores, eles serão enviados ao backend para inclusão. Para eliminar um de-para de empresa, deve-se clicar no botão Eliminar situado ao lado do registro.
  12. Ao clicar no botão Excluir, o aplicativo externo, as rotas e os de-para relacionados serão eliminados. As mensagens recebidas do aplicativo externo serão mantidas para histórico.

Implementações necessárias


O fluxo acima só será possível quando as seguintes alterações forem implementadas:

Front-end

  1. Implementar o acesso pelo menu a URL /totvs-foundation/propriedades/aplicativos-eai/list, de forma a não acessar a tela antiga de propriedades do Datasul Frame Novo.
  2. Ajuste do botão "Editar aplicativo interno" para chamar o endpoint de inicialização do aplicativo interno enquanto o EAI não for configurado. Alterar seu label para "Editar aplicativo interno" depois que a inicialização for realizada, chamado a atual tela de edição do aplicativo interno.
  3. Inclusão do botão "Transações Disponíveis" na tela principal, ao lado do botão "Editar aplicativo interno".
  4. Implementar a tela de transações disponíveis, que conterá os seguintes elementos:
    1. Listagem das transações disponíveis no aplicativo interno.
    2. Botão para recarregar as transações, que chamará o endpoint de recarga dos adapters.
    3. Controle para desabilitar/habilitar o registro de log de mensagens por transação.
  5. Incluir o botão "De-para" para cada linha da listagem, correspondente aos aplicativos externos.
  6. Implementar a tela de edição de de-para com os campos de entrada dos valores, a lista dos de-para já cadastrados e os botões de remoção dos valores.
  7. Tela de edição do aplicativo interno, retirar os campos Usuário e Senha (não são utilizados).
  8. Tela de edição do aplicativo externo, habilitar o canal AMQP e permitir informar o servidor/porta do broker AMQP, usuário e senha.
  9. Substituir o "#" por espaço ao exibir a transação e versão, na tela de edição das rotas.

Back-end

  1. Implementar no programa configApps.p, o endpoint de inicialização do aplicativo interno, com base no programa setup-host-app-new-frame.p.
    1. Se a propriedade totvs.eai2.app.name possuir conteúdo, utilizar este valor como nome do aplicativo interno. Senão, utilizar o valor padrão (dts12).
  2. Implementar no programa configApps.p, os endpoints para inclusão, listagem e exclusão de de-para de empresa. Estes endpoints serão chamados pela tela de edição de de-para (front-end).
    1. Para inclusão, utilizar a procedure upsertFromToValue, do hostmanager.p.
    2. Para listagem e eliminação, realizar acesso direto a tabela eai_de_para_val (esforço menor).
  3. Implementar no programa configApps.p os endpoints para atualizar a transação quanto a permitir ou não a gravação de log de mensagens.
    1. Realizar acesso direto a tabela eai_trans_aplicat.
  4. Implementar no programa configApps.p o endpoint de recarga de transações.
    1. Chamar a procedure reloadAdapters do programa hostmanager.p.
  5. Implementar no programa configApps.p o endpoint de listagem de transações disponíveis.
    1. Realizar acesso direto a tabela eai_trans_aplicat.
  6. Incluir tratamentos para o canal AMQP
    1. Não permitir a inclusão de aplicativo AMQP quando o arquivo totvseai-mb.pl não estiver no propath do appserver.
    2. Gravar o servidor e porta do broker AMQP nas propriedades do aplicativo externo.
    3. Em vez de gravar as configurações do agente AMQP no arquivo totvseai-mb-config.json, armazenar o JSON inteiro numa propriedade de sistema da tabela configur_propried. O nome da propriedade pode ser totvs.eai.mb.config. Somente se o banco emsfnd não estiver conectado é que será utilizado o arquivo.

Sequencia de trabalho


Em face das alterações necessárias, sugere-se a seguinte divisão das tarefas, tendo como premissa que as alterações de front-end e back-end que são relacionadas ficam numa mesma tarefa:

  1. Ativação do aplicativo interno
    1. Requisito básico para iniciar um ambiente EAI.
  2. Cadastramento do de-para de empresas
    1. Requisito básico para configurar uma integração.
  3. Recarga de transações disponíveis e remoção das transações depreciadas
    1. Requerido para atualização dos ambientes corporativos e durante implantação nos clientes.
  4. Configuração do AMQP
  5. Listagem das transações disponíveis e indicação do grava-log
  6. Adequações para executar a tela de configuração de EAI no menu do produto.
    1. No expor a tela antiga de propriedades.

Tarefas opcionais (a negociar com a liderança de Framework)

  1. Realocação do projeto da pasta totvs-foundation para a pasta totvseai.
  2. Retirada do campo de classe de configuração da tela de propriedades THF2.


Controle do documento
Data Apresentação

 

Data Aprovação

 

Data Implementação

 

Indice




  • Sem rótulos