Inverse routine:
C_TH_FIELDS_INBOUND = I_TH_FIELDS_OUTBOUND.
C_R_SELSET_INBOUND = I_R_SELSET_OUTBOUND.
C_EXACT = RS_C_TRUE.
https://archive.sap.com/kmuuid2/f05d0b81-076a-2c10-44ab-f00b0b90ce38/Writing%20Inverse%20Routine%20with%20Expert%20Routine.pdf
http://www.denisreis.com/how-to-sap-bi-inverse-routinen-invertierungsroutinen-in-sap-bw/ - тут попонятней, хоть и на немецком...
Но не помогло, где то до start inverse рутине терялись переданные параметры.
Сделал передачу параметров через глобальные переменные класса.
ERP:
Все поля могут быть переданны как параметры в источник, галки не важны, от слова совсем.
Полей было много... было лень перечислять их, поэтому
* Select ranges
DATA:
lt_where TYPE STANDARD TABLE OF char200,
lt_condtab TYPE TABLE OF hrcond,
ls_condtab LIKE LINE OF lt_condtab.
"collect values of restrictions
clear ls_condtab.
LOOP AT s_s_if-t_select
ASSIGNING FIELD-SYMBOL(
WHERE sign = 'I'.
ls_condtab-field =
ls_condtab-opera =
ls_condtab-high =
ls_condtab-low =
APPEND ls_condtab TO lt_condtab.
ENDLOOP.
"create WHERE clause
CALL FUNCTION 'RH_DYNAMIC_WHERE_BUILD'
EXPORTING
dbtable = SPACE
TABLES
condtab = lt_condtab
where_clause = lt_where
EXCEPTIONS
empty_condtab = 1
no_db_field = 2
unknown_db = 3
wrong_condition = 4
OTHERS = 5.
OPEN CURSOR WITH HOLD @s_cursor FOR
SELECT *
FROM ZVTETATET
WHERE (lt_where).