Hi Experts,
I am using a SELECT-OPTIONS in the method: "Get Persistent by Query". But I have an error. This is my code below.
SELECT-OPTIONS so_date FOR sy-datum .
DATA lo_query_manager TYPE REF TO if_os_query_manager .
DATA lo_query TYPE REF TO if_os_query .
DATA lo_agent TYPE REF TO zca_persistence_zint_rsbankinv.
DATA lo_base TYPE REF TO zcb_persistence_zint_rsbankinv.
DATA lo_rsbankinv TYPE REF TO zcl_persistence_zint_rsbankinv.
DATA lo_table TYPE osreftab .
DATA ls_table TYPE REF TO zcl_persistence_zint_rsbankinv.
DATA ls_tmp TYPE REF TO object .
DATA lv_string TYPE string .
DATA lo_exception TYPE REF TO cx_root .
TRY .
lo_agent = zca_persistence_zint_rsbankinv=>agent.
* Create Query
lo_query_manager = cl_os_system=>get_query_manager( ).
lo_query = lo_query_manager->create_query( i_filter = 'ZEXDAT IN PAR1' ).
lo_table =
lo_agent->if_os_ca_persistency~get_persistent_by_query(
i_query = lo_query
i_par1 = so_date
).
LOOP AT lo_table INTO ls_tmp.
ls_table ?= ls_tmp .
lv_string = ls_table->zget_all_fields( ).
WRITE lv_string.
ENDLOOP.
CATCH cx_root INTO lo_exception.
lv_string = lo_exception->get_text( ).
WRITE lv_string.
ENDTRY.
Error message :
Syntax error when parsing a query : Excepected symbol 'IN' (row: O, column: 7)
Have you got any idea regarding this error. And how could I code a SELECT-OPTION in a Get Persistence by Query ?.
Also, I have found something interesting. I have used the MF: "RDS_RANGE_TO_WHERE" to build a WHERE SQL condition from a SELECT-OPTION but I don't know if it is usable for my need:
WHERE Statement: 'ZEXDAT BETWEEN '20110203' AND '20150203' AND NOT ZEXDAT IN ('20140219','20140306','20140321')'
Many thank for your help !
Rachid.