API ConectorGate v2.4 – TOTVS PROTHEUS

Por Rafael Ogeda em

A API HTTP REST ConectorGate para TOTVS PROTHEUS, utilizada para “destravar” o ERP TOTVS PROTHEUS e utilizada pelos Integradores INTERGATE, sofreu algumas atualizações importantes no 1o semestre de 2023.

Além da nova versão 2.4 (com melhoria na Consulta Incremental), temos a disponibilização de versão da API ConectorGate compatível com TOTVS PROTHEUS versão 12.1.2210.

Entre as principais atualizações podemos destacar:

  • Disponibilidade para versão 12.1.2210
  • Implementação do uso dos campos I_N_S_D_T_ e S_T_A_M_P_ para o controle incremental (em substituição aos campos LGI e LGA)
  • Evolução continua da finAPI

Nova Versão PROTHEUS 12.1.2210

A atual versão 12.1.33 tem data de expiração em 30/06/23, sendo que a partir de então a versão ativa e com manutenção gratuita será a versão 12.1.2210.

Confira aqui o CICLO DE VIDA das versão do ERP TOTVS PROTHEUS.

API ConectorGate v2.4 - TOTVS PROTHEUS

Para clientes atuais e futuros clientes, informamos que a API PROTHEUS by INTERGATE já está disponível e funcional para a versão 12.1.2210. Entre em contato e solicite seu pacote de atualização.

Campos I_N_S_D_T_ e S_T_A_M_P_

Um dos recursos mais utilizados na API ConectorGate é o recurso de Consulta Incremental, utilizando o QueryParam “updatedAt”. A Consulta Incremental permite consultar/filtrar no ERP TOTVS PROTHEUS apenas registros criados ou alterados após determinada data.

Até então nossa API utilizava os Campos Reservados LGI LGA para o recurso de Consulta Incremental. Este recurso, além de não permitir o uso de hora no filtro de consulta, acabou apresentando ISSUE TOTVS no final de maio/2023.

Afim de termos menos incertezas com os campos LGI e LGA e uma melhor gestão de inclusões e alterações de registros no ERP TOTVS PROTHEUS, que afetam as consultas incrementais na API ConectorGate, optamos por migrar a solução para uso dos campos I_N_S_D_T_ e S_T_A_M_P_.

Estes 2 campos são gerenciados diretamente pelo DBAccess, e registram um datetime e/ou timestamp para cada registro inserido e/ou alterado na base de dados. Veja aqui a documentação TOTVS.

A ativação para a criação destes 2 campos é pelo dbaccess.ini, e a criação ocorre quando a tabela desejada é aberta pelo PROTHEUS. Recomenda-se realizar esta operação em modo exclusivo.

  • Segundo a TOTVS, a recomendação para tabelas que já possuam dados é a de realizar a recriação da tabela, o que vai envolver: realizar backup, drop table, recriar a tabela e realizar append do backup realizado.
  • Há ainda a possibilidade de criação dos 2 campos via ADVPL, e o uso da function TCConfig().

A API ConectorGate conta com request que realiza a criação dos 2 campos via ADVPL. Basta realizar um GET {{endpoint}}/apiTimestamp?table={{table}}.

Com o uso destes campos, a API ConectorGate agora tem a capacidade de usar hora além de data nas consultas incrementais. Além disso, os campos “createdAt” e “updatedAt” agora exibirão data e hora, ao invés de apenas data como ocorria na versão anterior.

Campos Reservados LGI e LGA

Desde o lançamento do ERP TOTVS PROTHEUS ainda como MICROSIGA, uma das opções para o controle de inclusões e alterações em registros do ERP eram os campos reservados LGI e LGA. Estes campos de 17 caracteres eram habilitados pelo Configurador/SIGACFG, e eram gravados utilizando caracteres ASCII para representar o usuário e a data de inclusão ou alteração de determinado registro.

Uma das principais limitações destes campos reservados em relação à auditoria é que eles não registravam o horário, apenas a data de inclusão ou alteração.

Como recursos padrão para os campos reservados LGI e LGA a TOTVS disponibilizava:

  • Rotina “Log de Registros” – CFGX025: rotina acessada pelo Configurador/SIGACFG e que permitia selecionar a tabela que continha os campos reservados LGI e LGA e visualizar os dados descriptografados de usuário e dada de inclusão e alteração
  • Function FWLeUserlg: function disponível em ADVPL que permitia descriptografar o conteúdo dos campos LGI e LGA em customizações

Já para o uso destes campos em SELECT SQL a TOTVS não fornece suporte, e apenas em blogs especializados como o Terminal de Informação existem soluções para o uso direto dos campos reservados em SELECT SQL.

Em 19/05/23 houve um “bug” PROTHEUS em relação aos campos LGI e LGA, tendo como resultado a exibição no Log de Registros como se tivesse retornado para 01/01/1996.

  • Nossa conclusão empírica é que a solução dos campos reservados LGI e LGA criada na época MICROSIGA tinha uma limitação de 9999 dias entre 01/01/1996 e 18/05/2023, e “bugou” após esta data.
  • A TOTVS gerou a ISSUE DFRM1-32574, que após aplicada solucionou a exibição dos campos reservados no “Log de Registros”, mas que para efeitos de SELECT SQL continuou apresentando problemas.
  • De modo empírico, geramos versão paliativa do uso dos campos reservados LGI e LGA em SELECT SQL levando em conta que:
    • houve mudança na gravação da posição 8: antes do patch era vazia (ASCII=32) e agora está preenchida com “<” (ASC2=60). Portanto, se posição 8 vazia soma dias a ‘19960101’, senão soma dias a ‘20230519’
    • LGI e LGA que antes tinham regras distintas, agora seguem ambos a regra para o LGI (com CONCAT ao invés de soma)

Como as mudanças para os campos LGI LGA não são garantidas, recomendamos fortemente a migração para uso dos campos INSDT SMART.

Você tem interesse em integrar seu ERP com Sistemas especialistas? Fale com a gente!


Veja também: