Forum
See question

odata $filters com versões diferentes   

31 views
0
0

Estive a fazer uma integração com a vossa API e, em ambiente de desenvolvimento, o odata suporta a seguinte query

startswith(BuyerCustomerParty, '<string>') or contains(NoteToRecipient, '<string>')

no entanto quando tento fazer a mesma query na subscrição em ambiente de produção, dá-me o erro:

An unknown function with name ‘contains’ was found. This may also be a key lookup on a navigation property, which is not allowed
Então, surgiu a ideia de testar substituir o contains por substringof e aí já funciona…
E um problema de versões do odata? Quando é expectável resolverem isso?
Faça login para poder traduzir
Integração
API Endpoints
Jasmin
Marked as spam
Created 4 months and 1 day ago pedroantunes-2
p
pedroantunes-2 Iniciante
1 answers
0
Private answer

Olá Pedro,

Na verdade… isto é o comportamento esperado, não é um problema.
A versão de OData de produtivo é diferente da versão disponibilizada com a nova versão do Jasmin.
Por isso foi criado um artigo para indicar as quebras que existem entre as versões e como podem lidar com isso (nota que no teu caso isto não é uma quebra, a nova versão tem novos operadores que podem passar a utilizar caso pretendam, mas que não estavam disponíveis na versão anterior)

Sugiro que leias o artigo com atenção em particular o ponto relativo a retrocompatibilidade. O processo de migração das subscrições existentes será gradual significa que a podes ter a tua integração a correr contra subscrições que estão em versões diferentes, ou ter uma subscrição na versão antiga e esta ser migrada para a nova versão sem aviso prévio.

https://developers.ila.cegid.com/cloud/jasmin/desenvolvimento/guias/article/alteracoes-na-web-api-do-jasmin/

Faça login para poder traduzir
Marked as spam
Created 4 months and 1 day ago eduardosilva
e
eduardosilva Responsiveness Member
    Comments
    Olá Eduardo, Obrigado pela resposta. Vou arranjar uma solução temporária enquanto não há compatibilidade de versões, tendo em conta que o contains e o substringof retornam erro quando não estão no ambiente que é suposto
    4 months and 1 day ago
    pedroantunes-2
      Olá Pedro, se queres mesmo utilizar esses novos métodos, a melhor solução (como indicado no artigo) será utilizar o endpoint que te dá a versão que a subscrição está a utilizar e efetuar um pedido diferente em conformidade com isso. Se não, podes efetuar um pedido que seja retro compatível e que te dê o resultado esperado em ambas as versões (atenção que atendendo às quebras isso poderá não ser possível, ou então poderás ter uma diferença significativa de performance, cabe-te a ti avaliar isso)
      4 months and 6 hours ago
      eduardosilva