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.
Inhaltsverzeichnis
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.
Schritt 2:
Passen Sie Ihren Code für die $filter-Abfrage an.
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 |
0 Kommentare