Персонализация формы OEBS и переменные

titanium2008
Дата: 10.01.2013 18:22:48
Добрый день,

Задача - ограничить наборы значений в ОГП формы в зависимости от значений на форме.

Сейчас реализовано через профили, хотелось бы более красивое решение. Возможно ли сделать через локальные переменные персонализации? если да, то как их использовать в условии набора значений


Заранее спасибо.
va_kochnev
Дата: 10.01.2013 21:12:09
titanium2008
Дата: 10.01.2013 22:57:10
спасибо за ссылку, собственно при помощи профилей я и реализовал.

Вы пишите:

Использовать ли глобальную переменную, которая заполянется из хранимой функции, или "псевдо профили", зависит от конкретной задачи.
Если в дальнейшем это значение предполагается использовать в каком-то запросе (набор значений в ОГП, свойство блока default_where или еще что), то следует учесть, что глобальная переменная при выполнении запроса на сервере БД будет считаться bind-переменной, что, скорее всего, будет предпочтительнее, чем "профильная" функция с т.зр. быстродействия запроса.



Вопрос - могу ли я обойтись без хранимой функции, а именно в персонализации объявить глобальную переменную а потом использовать ее в табличном наборе значений в условии where?
va_kochnev
Дата: 11.01.2013 10:16:13
titanium2008
Вопрос - могу ли я обойтись без хранимой функции, а именно в персонализации объявить глобальную переменную а потом использовать ее в табличном наборе значений в условии where?

Можно.
Тут только можно на такую проблему нарваться.
Допустим, в ОГП материальных транзакций создали сегмент с табличным набором значений, содержащим условие "... and table_column=:global.xx_val".
В форме "Прочие транзакции" в персонанизации прописываем значение этой глобальной переменной. При входе в ОГП переменая существует и имеет правильное значение. Список на данном сегменте в данной форме работает замечательно.
Потом заходим в форму "Просмотр транзакций" и ищем созданную транзакцию. И тут при проверке значений сегмента ОГП наш набор значений начнет "дурить", т.к. глобальная переменная не определена (или определена неправильным значением, т.к. проверка ОГП выполняется раньше персонализации, которая глобальную переменную инициализирует).
Для разруливания этой проблемы в наборе значений лучше использовать :global.xx_val:null с проверкой текущего использования:
... and table_column=decode(:system.form_name,'ПРОЧАЯ_ТРАНЗАКЦИЯ',:global.xx_val:null,'ПРОСМОТР_ТРАНЗАКЦИЙ',table_column)

Пример достаточно условный. Слепо его применять не следует. В данном случае при выполнении запроса не подцепится индекс по столбцу table_column. Если этого и не требуется, то метод можно использовать. Если мешает оптимизатору запроса, то придется извращаться по другому.
Magic+
Дата: 11.01.2013 10:51:33
А вот такая штука не подойдёт?
/topic/817808&hl=
titanium2008
Дата: 11.01.2013 11:01:03
va_kochnev,

большое спасибо, буду пробовать
titanium2008
Дата: 12.01.2013 20:24:49
В итоге не получилось использовать глобальные переменные для наборов значений которые используются в ОГП, вернее в КГП - расширителе ОГП. При валидации ОГП идет ругань что валидация ОГП идет на сервере, чтобы работали переменные необходимо отключить профиль валидации на сервере гибких полей, что Оракл не рекомендует в целях производительности
Magic+
Дата: 16.01.2013 12:28:40
titanium2008
В итоге не получилось использовать глобальные переменные для наборов значений которые используются в ОГП, вернее в КГП - расширителе ОГП. При валидации ОГП идет ругань что валидация ОГП идет на сервере, чтобы работали переменные необходимо отключить профиль валидации на сервере гибких полей, что Оракл не рекомендует в целях производительности


А зачем использовать глобальные переменные? Фиктивные (скрытые) поля в ОГП не помогут?
titanium2008
Дата: 19.01.2013 22:38:32
Magic+

А зачем использовать глобальные переменные? Фиктивные (скрытые) поля в ОГП не помогут?


Нам и так не хватает сегментов ОГП. Есть простая задача - пользователь вводит Счет фактура Кредиторов - требуется ограничить набор значений по поставщику Vendor_id. Как бы Вы решили данную задачу при помощи фиктивных полей ОГП? Сейчас она решается мной через профили и персонализацию. Хотел сделать более красивое решение через переменные, но не получилось.(((
Magic+
Дата: 25.01.2013 12:30:36
Типа такого? Видео во вложении