Текущее время: Вс, июн 22 2025, 17:51

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Параметры inverse_start_routine
СообщениеДобавлено: Ср, авг 28 2013, 14:47 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, фев 16 2006, 15:46
Сообщения: 451
Откуда: Россия
Привет, писал кто inverse_start_routine?

Попробовал отладить, но не могу разобраться с параметрами

Code:
*   IMPORTING
*     i_r_selset_outbound          TYPE REF TO cl_rsmds_set
*     i_th_fields_outbound         TYPE HASHED TABLE
*     i_r_selset_outbound_complete TYPE REF TO cl_rsmds_set
*     i_r_universe_inbound         TYPE REF TO cl_rsmds_universe
*   CHANGING
*     c_r_selset_inbound           TYPE REF TO cl_rsmds_set
*     c_th_fields_inbound          TYPE HASHED TABLE
*     c_exact                      TYPE rs_bool


На реальных данных все эти параметры содержат какой-то малопонятный мусор, и вообще непонятно как получить из них опции выбора.

_________________
Ян Владимирович,
http://www.vladimirovich.net


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Параметры inverse_start_routine  Тема решена
СообщениеДобавлено: Ср, окт 09 2013, 14:59 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, июн 02 2009, 22:28
Сообщения: 228
Откуда: MOW
Пол: Мужской
Более-менее универсальный код для Inverse Start Routine.
Для простых случаев копипастить, для более сложных - дорабатывать.
Code:
  DATA: i_rt_chavl_cs        TYPE rsarc_rt_chavl,
        i_thx_selection_cs   TYPE rsarc_thx_selcs,
        c_t_selection        TYPE sbiwa_t_select,
        e_exact              TYPE rs_bool.

  DATA: l_tr_dimensions       TYPE rsmds_tr_dimensions,
        "table of dimension references
        l_r_dimension         LIKE LINE OF l_tr_dimensions,
        "dimension reference
        l_dimname             TYPE rsmds_dimname,
        "dimension name
        l_sx_selection_cs     LIKE LINE OF i_thx_selection_cs,
        "work area for single characteristc RANGE table
        l_r_universe          TYPE REF TO cl_rs_infoobject_universe.

  DATA: l_s_selection         LIKE LINE OF c_t_selection,
        l_s_chavl_cs          LIKE LINE OF i_rt_chavl_cs,
        date                  TYPE sy-datum.

  TRY.
* Transform selection set for outbound
      CALL METHOD i_r_selset_outbound->to_ranges
        CHANGING
          c_t_ranges = i_rt_chavl_cs.

      " Get reference to InfoObject universe
      l_r_universe = cl_rs_infoobject_universe=>get_instance( ).
*Get all dimensions (i.e. fields) from outbound selection which are
*restricted
      l_tr_dimensions = i_r_selset_outbound->get_dimensions( ).
      LOOP AT l_tr_dimensions INTO l_r_dimension.
        CLEAR l_sx_selection_cs.
* Get dimension name (= field name)
        l_sx_selection_cs-chanm = l_r_dimension->get_name( ).
        "l_dimname = l_r_dimension->get_name( ).
* Transform dimension name to InfoObject name
        "l_sx_selection_cs-chanm = "l_r_universe->dimname_to_iobjnm(
        "l_dimname ).
*Project complete outbound selection set to current dimension and
*and convert to RANGE table representation
        CALL METHOD i_r_selset_outbound->to_ranges
          EXPORTING
            i_r_dimension = l_r_dimension
          CHANGING
            c_t_ranges    = l_sx_selection_cs-rt_chavl.
        APPEND l_sx_selection_cs TO i_thx_selection_cs.
      ENDLOOP.

      LOOP AT i_thx_selection_cs INTO l_sx_selection_cs.

        CLEAR l_s_selection.
        l_s_selection-fieldnm = l_sx_selection_cs-chanm.

        LOOP AT l_sx_selection_cs-rt_chavl INTO l_s_chavl_cs.
          l_s_selection-sign = l_s_chavl_cs-sign.
          l_s_selection-option = l_s_chavl_cs-option.
          l_s_selection-low = l_s_chavl_cs-low.
          l_s_selection-high = l_s_chavl_cs-high.
          APPEND l_s_selection TO c_t_selection.
        ENDLOOP.
      ENDLOOP.

      c_r_selset_inbound = i_r_universe_inbound->create_set_from_ranges(
                              i_fieldname_dimension = 'FIELDNM'
                              i_t_ranges = c_t_selection ).

      c_exact = rs_c_true.

    CATCH cx_rsmds_input_invalid cx_rsmds_input_invalid_type.
* Should not occur
* If the exception occurs request all values from source
* for this routine to be on the save side
      c_r_selset_inbound = cl_rsmds_set=>get_universal_set( ).
      c_exact = rs_c_false. "Inversion is no longer exact
  ENDTRY.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Параметры inverse_start_routine
СообщениеДобавлено: Ср, апр 30 2014, 16:33 
Специалист
Специалист

Зарегистрирован:
Сб, апр 24 2010, 11:41
Сообщения: 158
Код заработал, только на некоторых запросах выдает ошибку...
0FI_GL_6: The current application triggered a termination wi
В субшаге возникла ошибка
Ошибка при считывании данных инфо-провайдера FIGLC01V

Создает впечатление что ругается на все переменные переданные как "исключить"... Кто-то сталкивался с таким?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB