$FILTER in SAP OData

by | Jan 6, 2022 | ODATEN

Vorwort – Dieser Beitrag ist Teil der SAP ABAP OData-Tutorial Serie.

In diesem Abschnitt lernen wir das Konzept der $filter-Abfrage in SAP OData und seine Verwendung kennen.

Unterstützte Systemversion

SAP NetWeaver Gateway Release 2.0 Support Package >=03

Syntax

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

Geschäftsbeispiel

Die Shopping-Site, sagen wir, Amazon zeigt alle Produkte an, aber Sie möchten, dass eine bestimmte Kategorie angezeigt wird. Sie wenden also Filter an (wählen Sie die Kategorie Telefone oder Laptops), um die Daten Ihrer Wahl anzuzeigen.

Implementierung

In diesem Abschnitt implementieren wir $filter in unserem Product Entity Set.

Schritt 1: Klicken Sie nach dem Anlegen des OData-Service mit der rechten Maustaste auf Entity Set unter Service-Implementierung, und gehen Sie zur ABAP-Workbench.

SAP OData-Implementierung

Schritt 2:

Passen Sie Ihren Code für die $filter-Abfrage an.

$FILTER in SAP OData

Die Filterabfrageoption ist verfügbar, indem Sie auf den Parameter zugreifen IT_FILTER_SELECT_OPTIONS.

Im obigen Code haben wir zuerst die vom Frontend übergebenen Filteroptionen abgerufen, indem wir IT_FILTER_SELECT_OPTIONS gelesen haben. Und dann den Auswahloptionsbereich an BAPI übergeben, um die gewünschte gefilterte Ausgabe zu erhalten.

Schritt 3:

Wenn wir keine Filteroption bestehen, erhalten wir alle Produkte aus dem System.

Fügen Sie die $filter-Abfrage in der OData-URL hinzu und führen Sie den Dienst aus. Sie können eine oder mehrere Filteroptionen hinzufügen.

Service-URL: /sap/opu/odata/sap/ZDEMO_GW_SRV_SRV/ProductsSet?$filter=Name eq 'Notebook Basic 15.

 

Mit $filter . verwendete Operatoren

Logische Operatoren

Logischer Operator Infos Beispiel
eq Gleich https://<API-Server>/odata/v2/User?$filter=gender eq ‘F’ .
ne Nicht gleich hhttps:// /odata/v2/User?$filter=place ne ''London'
gt Größer als https://<API-Server>/odata/v2/PicklistLabel?$filter=amount gt 200
ge Größer als oder gleich https://<API-Server>/odata/v2/PicklistLabel?$filter=amount ge 200
lt Weniger als https://<API-Server>/odata/v2/PicklistLabel?$filter=amount lt 200
le Weniger als oder gleich https://<API-Server>/odata/v2/PicklistLabel?$filter=amount le 200
funktioniert Logisch und https://<API-Server>/odata/v2/PicklistLabel?$filter=amount le 200 and amount ge 300
or Logisch oder https://<API-Server>/odata/v2/PicklistLabel?$filter=amount le 200 or amount ge 300
nicht Logisch nicht https://<API-Server>/odata/v2/PicklistLabel?$filter=amount le 200 not amount ge 300

 

Rechenzeichen

Arithmetischer Operator Infos Beispiel
hinzufügen Zusatz https://<API-Server>/odata/v2/PicklistLabel?$filter=amount add 5 gt 10
unten Subtraktion https://<API-Server>/odata/v2/PicklistLabel?$filter= amount sub 5 gt 10
mul Vervielfältigen https://<API-Server>/odata/v2/PicklistLabel?$filter= amount mul 5 gt 10
div Division https://<API-Server>/odata/v2/PicklistLabel?$filter= amount div 5 gt 10
mod Modul https://<API-Server>/odata/v2/PicklistLabel?$filter= amount mod 5 gt 10

 

Gruppierungsoperatoren

Gruppierungsoperator Infos Beispiel
() Vorranggruppierung https://<API-Server>/odata/v2/PicklistLabel?$filter=(number sub 20) gt 30

 

Autor

0 Kommentare

Einen Kommentar abgeben

E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind MIT * gekennzeichnet. *

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.