вторник, 11 декабря 2018 г.

Экстратор, виртуальник на трансформации

BI

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 =  -fieldnm.
      ls_condtab-opera = -option.
      ls_condtab-high  = -high.
      ls_condtab-low   = -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).

Комментариев нет: