$FILTER no SAP OData

Nesta seção, aprenderemos o conceito da consulta $filter no SAP OData e seu uso.

Versão do sistema compatível

Pacote de suporte SAP NetWeaver Gateway Release 2.0 >=03

Sintaxe

http://<server>:<port>/sap/opu/odata/sap/<service_name>/EntitySet?$filter=ProductId eq ‘HP-101’

Exemplo de negócio

O site de compras, digamos, Amazon está exibindo todos os produtos, mas você deseja que alguma categoria específica seja exibida. Assim, você aplicará filtros (selecione telefones ou laptops de categoria) para exibir os dados de sua escolha.

Implementação

Nesta seção, implementaremos $filter em nosso Product Entity Set.

- Após a criação do serviço OData, clique com o botão direito do mouse em Entity Set em Service Implementation, vá para ABAP workbench.

Implementação SAP OData

-

Ajuste seu código para a consulta $filter.

$FILTER no SAP OData

A opção de consulta de filtro está disponível acessando o parâmetro IT_FILTER_SELECT_OPTIONS.

No código acima, primeiro recuperamos as opções de filtro passadas do frontend lendo IT_FILTER_SELECT_OPTIONS. E, em seguida, passou o intervalo de opção de seleção para BAPI para obter a saída filtrada desejada.

-

Se não passarmos nenhuma opção de filtro, obteremos todos os produtos do sistema.

Adicione a consulta $filter na URL OData e execute o serviço. Você pode adicionar uma ou mais opções de filtro.

URL do serviço: /sap/opu/odata/sap/ZDEMO_GW_SRV_SRV/ProductsSet?$filter=Name eq 'Notebook Basic 15.

 

Operadores usados ​​com $filter

Operadores lógicos

Operador LógicoDescriçãoExemplo
eqIgualhttps://<API-Server>/odata/v2/User?$filter=gender eq ‘F’ .
neNão igualhhttps:// /odata/v2/User?$filter=place ne ''Londres'
gtMelhor quehttps://<API-Server>/odata/v2/PicklistLabel?$filter=amount gt 200
geMaior ou igualhttps://<API-Server>/odata/v2/PicklistLabel?$filter=amount ge 200
ltMenor quehttps://<API-Server>/odata/v2/PicklistLabel?$filter=amount lt 200
leMenor ou igualhttps://<API-Server>/odata/v2/PicklistLabel?$filter=amount le 200
eLógico ehttps://<API-Server>/odata/v2/PicklistLabel?$filter=amount le 200 and amount ge 300
orLógico ouhttps://<API-Server>/odata/v2/PicklistLabel?$filter=amount le 200 or amount ge 300
nãoLógico nãohttps://<API-Server>/odata/v2/PicklistLabel?$filter=amount le 200 not amount ge 300

 

Operadores aritméticos

Operador AritméticoDescriçãoExemplo
adicionarAdiçãohttps://<API-Server>/odata/v2/PicklistLabel?$filter=amount add 5 gt 10
abaixoSubtraçãohttps://<API-Server>/odata/v2/PicklistLabel?$filter= amount sub 5 gt 10
mulMultiplicaçãohttps://<API-Server>/odata/v2/PicklistLabel?$filter= amount mul 5 gt 10
divDivisãohttps://<API-Server>/odata/v2/PicklistLabel?$filter= amount div 5 gt 10
modMódulohttps://<API-Server>/odata/v2/PicklistLabel?$filter= amount mod 5 gt 10

 

Operadores de agrupamento

Operador de agrupamentoDescriçãoExemplo
()Agrupamento de precedênciahttps://<API-Server>/odata/v2/PicklistLabel?$filter=(number sub 20) gt 30

 

Deixe um comentário

Este site usa o Akismet para reduzir o spam. Saiba como seus dados de comentário são processados.