Всем доброе время суток!
В последнее время столкнулся с весьма не понятной проблемой.
Вкратце, есть форма ввода для бюджета выплат социального характера. В ней два запроса, один для ввода сумм, второй для формирования платежей. Каждый запрос построен на своем уровне агрегации. На каждом уровне агрегации свои фильтры. Но переменные для селекционного экрана в обоих фильтрах одинаковые. В частности на СЭ выводится номер филиала и МВЗ. Идея была следующая, если провалиться в справочник по МВЗ с СЭ, то в нем должны выводиться только актуальные МВЗ на текущую дату и только для указанного на СЭ филиала. Удобство для пользователя.
Реализовано было через класс ZCL_RSR_VAR_F4_RESTRICT, метод GET_RESTRICTION_FLAT.
В нем сначала идет считывание филиала с СЭ, потом фильтрация таблицы основных данных по МВЗ по филиалу и выбор актуальных на текущую дату.
Выбор филиала следующим образом: LOOP AT i_t_var_range INTO ls_var_range WHERE iobjnm = 'ZFILIAL'. MOVE-CORRESPONDING ls_var_range TO ls_zfilial_range. ls_zfilial_range-option = ls_var_range-opt. APPEND ls_zfilial_range TO lt_zfilial_range. ENDLOOP.
Первоначально СЭ пустой, все поля обязательные для ввода (Всего полей пять: плановый год, филиал, горизонт планирования, МВЗ, квартал). Проблема заключается в том, что при первом запуске после заполнения СЭ в таблице i_t_var_range нет никаких значений, кроме выбранного или указанного руками МВЗ. При повторном вызове СЭ, изменении, например, поля Филиал в таблице i_t_var_range отображается предыдущее заполнение СЭ и больше не меняется. Изменить заполнение таблицы i_t_var_range в последующем можно путем создания варианта пользователя.
Пробовал заполнить СЭ и "проверить" переменные - не помогло.
Если пробовать в RSRT запросы по отдельности - все работает. Изменения СЭ отрабатывают онлайн. Как только два запроса объединяются в рабочую книгу, то сразу же возникает описанная проблема.
Подскажите, пожалуйста, с чем это может быть связано? Больше всего меня смущает то, что переменная СЭ по МВЗ в рабочей книге обновляет значения в режиме онлайн, все остальные переменные нет.
Спасибо!
|
|