Desenvolvimento REST com dicionário em banco

Bom Dia, Em um ambiente com dicionário em banco, na versão 12.1.027, estou tendo o erro abaixo ao chamar um método REST que desenvolvi.

Versão da Lib:20200615

Data da Lib: 20200612_1531


Stack :
variable does not exist CEMPANT
( PREVIOUS ERROR :
Alias does not exist: SX2
 )
 on OPENSXS(APLIB100.PRW) 12/06/2020 18:03:23 line : 1538

Fonte utilizado: https://gist.github.com/sipmann/ee5b10a63ce4bc0c33c17f574073a0cd

Bom dia, posta parte do seu código, fica mais fácil te ajudar

ta na mão, mas a principio não deve ser nele não.
https://gist.github.com/sipmann/ee5b10a63ce4bc0c33c17f574073a0cd

Bom dia ,

Tenho o rest com o dicionario no banco sem problemas, mas já passei uma situação dessas porque a LIB do meu rest esta desatualizada.

POis é, foi a primeira coisa que pensei, estava mesmo desatualizada, mas ai peguei a última disponível e nada =\

Mauricio,

Normalmente esse erro ocorre quando você utiliza de funções, APIs etc do Protheus e o ambiente não está aberto.

Repare que o erro cita a variável pública cEmpAnt e também o SX2, ou seja, não foi possível abrir uma tabela ou buscar informações sobre a mesma.

Portanto o que deve estar gerando o erro, é a instrução que busca o nome física da tabela:


%Table:ALIAS%


Verifique nas configurações do seu REST, no appserver.ini se a chave PrepareIn existe e qual o seu valor, sendo que é muito comum a configuração como ALL:


[HTTPURI]
PrepareIn=All


Documentações a respeito da configuração do REST e a chave PrepareIn:

https://tdn.totvs.com/pages/viewpage.action?pageId=185747842

https://tdn.totvs.com/pages/viewpage.action?pageId=185747842

Solucionado o caso. Evolui no erro mas agora é mais ao meu nível :slight_smile: Obrigado.

Bom dia!

Está com PrepareIn no .ini do seu Rest?

Boa Tarde,

Tive esse problema de forma meio que intermitente, hora acontecia, hora não, para resolver de vez forcei dentro do wsmethod a abertura dos ambientes, usando o trio:

RpcClearEnv() RPCSetType() RpcSetEnv()

exemplo:


Local aTabelas     := {"SM0","SX2","SX3","SX5","SZR"}    

RpcClearEnv()
RPCSetType(3)
RpcSetEnv("01", "010104", NIL, NIL, "FAT", NIL, aTabelas)

Atenciosamente, Douglas

Comecei a ter esse problema intermitente também, vou tentar sua solução mas a principio na 33 não resolveu, tenho outro erro : type mismatch on + on FWSM0UTIL:SETSM0POSITIONBYCFILANT(FWSM0UTIL.PRW)