Текущее время: Пт, июл 18 2025, 05:25

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Иерархия как параметр в запросе
СообщениеДобавлено: Ср, июн 21 2006, 12:01 
Гость
В запросе один из параметров базируется на признаке с иерархией. Другой параметр - временной инетрвал. В процессе формирования отчета user-exit берет верхнюю границу интервала и присваивает ее контрольной дате запроса. Таким образом в отчете получается требуемый срез иерархии на указанную дату. Здесь проблем нет. А проблема в следующем. Когда появляется окно с параметрами запроса, пользователь пытается выбрать узел иерархии, но не находит его, поскольку при выборе по-умолчанию отображается (как я понял) срез иерархии на теущую дату, а к этому моменту времени "время жизни" узла уже не действует. Каким образом можно указать правильный срез иерархии на этапе заполнения окна параметров?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Иерархия как параметр в запросе
СообщениеДобавлено: Ср, июн 21 2006, 12:38 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, июн 24 2005, 15:18
Сообщения: 1216
Откуда: Diagon Alley
SAP-мучитель написал(а):


......

при выборе по-умолчанию отображается (как я понял) срез иерархии на теущую дату, а к этому моменту времени "время жизни" узла уже не действует. Каким образом можно указать правильный срез иерархии на этапе заполнения окна параметров?


А иерархия (структура) зависит от времени ? Если зависит, то вы и увидите только ту структуру, которая релевантна на контрольную дату запроса (если в параметрах выбора иерархии ничего другог не указано).

_________________
"Если ты в молодости не испытал трудности, их стоит купить за большие деньги". (с) Даймо


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 21 2006, 16:26 
Гость
Узлы иерархии разумеется зависят от времени, иначе бы не было и вопроса. Вот наглядный пример. Пользователь выполняет отчет, появляет окно с параметрами

Узел: _____ (кнопка выбора)
Период: с ____ по ____

Пользователь желает построить отчет со следующими параметрами

Узел: _SG45_ (кнопка выбора)
Период: с _01.2005_ по _03.2005_

Текущая дата сейчас 21.06.2006, период жизни узла SG45 с 01.01.2005 по 31.12.2005, то есть на данный момент времени узла такого уже нет "в живых". Когда пользователь пытается по кнопке выбора найти этот узел, то с досадой обнаруживает его отсутствие.
Тогда он устанавливает Период с 01.2005 по 03.2005 и снова нажимает кнопку выбора узла иерархии, но опять ничего там не находит, потому как иерархия по-прежнему показывает срез на текущую (сегодняшнюю) дату. Как же привязать Период к иерархии еще на стадии выбора параметров отчета???


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 22 2006, 10:54 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, сен 13 2005, 13:40
Сообщения: 80
Откуда: местный
При создании запроса нажать кнопку "Свойства запроса" и в поле "Контрольная дата" правильно выставить дату. Как вариант - написать новую переменную, которую на абапе обрабатывать, учитывая значения периода временного интервала селекционного экрана.
Вариант второй - в свойствах объекта, у которого должна выводится иерархия, в разделе "Иерархия презентации" нажать на кнопку "Значения" (это справа от поля, где вводишь имя иерархии). Откроется окно "Выбор иерархии". В разделе "Контрольная дата" необходимо выставить нужную дату либо написать переменную (см.выше).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 22 2006, 10:55 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, сен 13 2005, 13:40
Сообщения: 80
Откуда: местный
Да, кстати, советую поменять местами поля селекционного экрана, чтобы пользователя не вводить в ступор: пусть он сначала дату выставляет, а уж потом узел иерархии выбирает.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 22 2006, 12:03 
Гость
Все так было сделано с самого начала (по первому варианту). Однако, когда пользователь выбирает в селекционном экране параметров узел иерархии или меняет параметр периода, то никакого события в модуле EXIT_SAPLRRS0_001 не происходит (смотрел в отладчике). Событие происходит перед отображением селекционного экрана (но на этом этапе период времени пользователем еще не задан) и после (когда уже сделан выбор всех параметров), а при изменении параметров во время активности самого селекционного экрана - ничего. Что не так делаю?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 22 2006, 12:42 
Начинающий
Начинающий

Зарегистрирован:
Чт, июн 22 2006, 10:22
Сообщения: 9
критично ли соответствие выводимой в критериях выбора иерархии интересующему пользователя временному интервалу (который вводится в тех же критериях выбора)?

я имею в виду следующее:
если в запросе переменная иерархии зависит от контрольной даты запроса, а поле "контрольная дата запроса" пусто, то пользователю будет предложена вся иерархия, когда-либо существовавшая.

если пользователь сначала выберет требуемый временной интервал (а система попросит его это сделать перед тем, как дать выбрать значения иерархии), а затем попробует выбрать узлы иерархии, то система проверит соответствие выбранных узлов иерархии временному интервалу и даст отлуп в случае несовпадения

другой вариант: решение длинным путем через книгу с двумя запросами и VBA


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 22 2006, 13:54 
Гость
2 AndrejIv

Цитата:
если в запросе переменная иерархии зависит от контрольной даты запроса, а поле "контрольная дата запроса" пусто, то пользователю будет предложена вся иерархия, когда-либо существовавшая.


Контрольной дате запроса присвоена переменная, которая при выводе селекционного окна переменных никак не инициализируется. Что за "вся иерархия" мне вообще не понятно.

Цитата:
если пользователь сначала выберет требуемый временной интервал (а система попросит его это сделать перед тем, как дать выбрать значения иерархии), а затем попробует выбрать узлы иерархии, то система проверит соответствие выбранных узлов иерархии временному интервалу и даст отлуп в случае несовпадения


Чего-то у меня система ничего не просит, просто выводит иерархию и все


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 23 2006, 07:14 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, сен 13 2005, 13:40
Сообщения: 80
Откуда: местный
1) Поменяй местами в селекционном экране временной период с переменной выбора узла иерархии.
2) для определения значения переменной "контрольная дата" для иерархии используй абап-код.
3) в этом самом коде учитывай I_STEP (его значение должно быть равно 2).
n) если всё правильно сделано - такой алгоритм не может не работать.
n+1) может я неверно понял проблему?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 23 2006, 09:08 
Гость
I_STEP = 1 - отрабатывает до появления селекционного экрана
I_STEP = 2 - отрабатывает после выбора всех параметров, когда секционный экран закрывается (грубо говоря после нажатия на кнопку "выполнить")

Меня же интересует событие в активном селекционном экране, когда при выборе параметра даты и перехода к параметру выбора узла иерархии я мог выбрать узлы соответсвующего временного среза.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 26 2006, 10:05 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, сен 13 2005, 13:40
Сообщения: 80
Откуда: местный
Выдержка из "How to… Derive a Variable value from another variable" (от 05.2001):
"The first step (I_STEP = 1) is before the processing of the variable pop-up and gets called for every variable of the processing type “customer exit”. You can use this step to fill your variable with default values.
The second step (I_STEP = 2) is called after the processing of the variable pop-up. This step is called only for those variables that are not marked as “ready for input” and are set to “mandatory variable entry”.
The third step (I_STEP = 3) is called after all variable processing and gets called only once and not per variable. Here you can validate the user entries."


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 26 2006, 13:38 
Гость
Ну и что?!


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

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


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

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


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

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