Текущее время: Сб, июн 21 2025, 02:15

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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