API ConectorGate v2.4 – TOTVS PROTHEUS
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.
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!