* für SAPUI5-Elemente muss zugehöriges EntitySet in der SEGW auf "Filterbar" gestellt sein
* Groß-/Kleinschreibung beachten
* Verknüpfungen: "or" und "and" klein geschrieben
* Datumswerte mit VarDate=datetime'yyyy-mm-ddThh:mm:ss' konvertieren
* Umlaute konvertieren
* Filter-Options sind: eq, ne, le, lt, ge, gt, substringof, startswith, endswith
* Abfrage-URL
URL/SERVICENAME/ItemCollection?$filter=Col1 eq 'Horst'
URL/SERVICENAME/ItemCollection?$filter=Col1 eq 'Horst' and Col2 eq 'Schmidt'
URL/SERVICENAME/ItemCollection?$filter=Col1 eq 'Horst'&$format=json
* Methode get_entityset implementieren
METHOD xyz_get_entityset.
* Variante 1 (Tabelle mit Filter-Properties + Options + RANGE)
* Achtung: Filterbedingungen, die mit 'or' verknüpft sind, werden aufgrund eines Fehlers vom MPC
* nicht korrekt geparst -> get_filter_select_options liefert leere Tabelle
*
* Lösung 1: die or-Teile müssen korrekt in Klammern gesetzt werden
* https://.../SERVICENAME/DataSet?$filter=(Col1 gt '1000' or Col1 lt '9999') and Col2 eq '10'
* Lösung 2: Filterbedingungen mit 'and' verknüpfen
* Filterkriterien holen
DATA(it_filter_so) = io_tech_request_context->get_filter( )->get_filter_select_options( ).
DATA(so_matnr) = VALUE /iwbep/t_cod_select_options( ).
IF line_exists( it_filter_so[ property = 'MATNR' ] ).
so_matnr = it_filter_so[ property = 'MATNR' ]-select_options.
ENDIF.
SELECT * FROM mara WHERE matnr IN so_matnr.
...
* Variante 2 (Tabelle mit Filter-Properties + Options auslesen)
DATA: lv_matnr TYPE matnr
DATA(it_filter_so) = io_tech_request_context->get_filter( )->get_filter_select_options( ).
IF NOT it_filter_so IS INITIAL.
TRY.
lv_matnr = it_filter_so[ property = 'MATNR' ]-select_options[ 1 ]-low.
...
CATCH cx_root.
ENDTRY.
ENDIF.
* Variante 3 (Filter-String)
DATA(lv_filter_string) = io_tech_request_context->get_filter( )->get_filter_string( ).
...
* Variante 4 (String für WHERE-Clause)
DATA(lv_osql_where_clause) = io_tech_request_context->get_osql_where_clause( ).
...
SELECT * FROM xy INTO TABLE @it_itab
WHERE (lv_osql_where_clause).
...
ENDMETHOD.
Links