Rest com comportamento diferente com strings

Bom dia,

sexta estava trabalhando em um webservices rest e notei um problema no tratamento de igualidade de strings, debugando fora do ambiente rest tudo funcionava de acordo então vi que o problema era realmente somente no REST onde o tratamento padrão de igualidade de strings estava diferente do protheus, o equivalente a SET EXACT OFF.

Sendo assim fui no meu fonte rest e coloquei o comando SET EXACT ON e o mesmo começou a trabalhar normalmente como esperado.

Sabendo disso pergunto se teve alguma mudança recente no rest relacionado a este tratamento e se existe como deixar o mesmo tratamento fora do rest e no rest.

Att.

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Vinicius, qual REST você está utilizando?

Rest do protheus normal, se precisar de alguma informação extra me fale mas não sei bem o que te responder.

Usando TLPP REST em 11/2023 e o problema me ocorreu. No meu caso estava fazendo uma comparação para verificar se uma variável era diferente de uma string, usei tanto o operador “<>” quanto o “!=” e ambos estavam utilizando comparação aproximada. Ou seja, apesar de “teste” ser diferente de “teste123”, ele nunca entrava na minha condição, pois pra ele era igual. Somente resolveu quando defini “SET EXACT ON”. Para garantir resolvi usar esse comando na inicialização do meu ambiente na função definida no OnStart do ThreadPool do TLPP REST.

Vinicius,

O padrão do SET EXACT é trabalhar como OFF, no REST e na LIB inteira, NUNCA o SET EXACT é ativado, não sei dizer quanto ao REST TLPP.

Em uma pesquisa, apenas três rotinas de todo o Protheus ativam essa opção e logo na sequência desativam.

Pra ser bem sincero, essa é uma opção pouco conhecida para MUITOS, talvez aqueles que já vieram do Clipper tenham conhecimento da mesma.

Ligar essa opção, pode gerar diversos comportamentos inesperados, pois todo o Protheus foi escrito com base na mesma desligada.

Cheguei a fazer um teste com ambiente atualizado, e realmente, o comportamento está como desligado, fazendo com que strings diferentes retornam verdadeiro na comparação de igualdade efetuada com apenas um sinal de igual.

Obs.: A documentação do AScan cita o padrão do EXACT como desligado.

Obrigado, era um problema de mais de 10 horas de traballho direto haha nem meu parça que trabalha comigo viu a diferença, hoje fui olhar e tinha um detalhe mesmo não era relacionado.