powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / bi11g, rpd, presentation table, hide object if
8 сообщений из 8, страница 1 из 1
bi11g, rpd, presentation table, hide object if
    #39898144
vint44
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

Подскажите, можно ли в репозитории для "presentation table "в блоке "hide object if" вызвать пользовательскую функцию или выполнить sql?
Задача стоит так, надо скрывать или показывать объект презентации в зависимости от параметров сессии пользователя.
...
Рейтинг: 0 / 0
bi11g, rpd, presentation table, hide object if
    #39898243
sharkoff76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
bi11g, rpd, presentation table, hide object if
    #39898386
vint44
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я видел эту статью. Но в ней ничего не сказано про вызов процедур (хотя в expression builder в целом можно вызывать процедуры, например через evaluatе, но видимо здесь этот builder урезан по функциональности). SQL можно использовать через инициализацию сессионных переменных, и это могло бы мне помочь. Но непонятно как передавать в эти переменные контекст вызова, мне же надо в sql передать наименование объекта презентации, чтобы правильно вычислить значение этой переменной.
...
Рейтинг: 0 / 0
bi11g, rpd, presentation table, hide object if
    #39898507
sharkoff76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vint44,


Думаю можно попробовать задействовать Row-Wise Initialization.
Функцию можно обернуть в pipeline (oracle? ) и в итоге получить таблицу динамическую типа USER:OBJECT:ACCESS(Y|N)

https://www.rittmanmead.com/blog/2008/09/obiee-repository-variables-filtering-and-conditional-formatting/

До инстанса BI доползу не скоро, точно утверждать что это работает не могу
...
Рейтинг: 0 / 0
bi11g, rpd, presentation table, hide object if
    #39898854
vint44
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sharkoff76

и в итоге получить таблицу динамическую типа USER:OBJECT:ACCESS(Y|N)

Row-Wise Initialization позволяет заполнить набор переменных из SQL. Но это нам мало что даст. Нам важно знать из какого объекта
презентации мы инициализируем переменные, т.е. передать значение параметра OBJECT. А как его передать в SQL?
Другими словами в "hide object if" мы должны получить значение 0|1, для того чтобы открыть|скрыть объект презентации. Это значение вводится в "expression builder". Мы можем, перед тем как получить на выходе 0|1, в этом блоке проинициализировать значение переменной презентации, например AAA = 'BBB'? Если нет, то способ с SQL имхо отпадает.
Самое простое было бы вызвать пользовательскую функцию в "expression builder" и в качестве параметра передавать в нее заданное значение, например тоже 'BBB'. И на выходе получать 0 или 1. Но видимо и этот способ тоже не работает, у меня evaluate не срабатывает, вернее функцию позволяет ввести выражение, но ничего при этом не происходит, функция на БД не вызывается. Может ее надо определять в не в БД, а где-то в BI.
...
Рейтинг: 0 / 0
bi11g, rpd, presentation table, hide object if
    #39907430
vint44
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Апну эту ветку, может все же кто-то сталкивался.

Пытаюсь в репозитории для "presentation table" в блоке "hide object if" вызвать lookup функцию, примерно так:
lookup(dense "NameArea"."LookupTable"."LookupFld", 1).
Анализатор кода при этом не ругается, но при этом "presentation table" скрывается всегда, независимо от возвращаемого значения lookup.
Возможно ошибка все-таки возникает, но вычислить ее не могу по логам.
Кстати, поле основанное на этом же lookup в BMM работает корректно.
...
Рейтинг: 0 / 0
bi11g, rpd, presentation table, hide object if
    #39908407
sharkoff76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vint44
Апну эту ветку, может все же кто-то сталкивался.

Пытаюсь в репозитории для "presentation table" в блоке "hide object if" вызвать lookup функцию, примерно так:
lookup(dense "NameArea"."LookupTable"."LookupFld", 1).
Анализатор кода при этом не ругается, но при этом "presentation table" скрывается всегда, независимо от возвращаемого значения lookup.
Возможно ошибка все-таки возникает, но вычислить ее не могу по логам.
Кстати, поле основанное на этом же lookup в BMM работает корректно.


Оно так не работает. На презентационном слое вы можете оперировать сессиоными переменными и простейшими логическими конструкциями/функциями.

Row-wise даст вам создать набор сессионных переменных _для пользователя_ на основе таблицы и/или SQL. Их 2 сессионых переменных.

Затем проверите этот набор в @hide object if@

VALUEOF(NQ_SESSION."OBJECT")='Моя_предметная_область.Таблица презентации.Колонка такая то'
AND VALUEOF(NQ_SESSION."ACCESS")='Y'
...
Рейтинг: 0 / 0
bi11g, rpd, presentation table, hide object if
    #39909739
vint44
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sharkoff76,
Да, Вы предложили хороший (и наверное единственный) вариант сокрытия объектов презентации в зависимости от параметров сессии пользователя.
Вначале я недооценил нюансы использования row-wise инициализации переменных, но теперь вижу, что эта схема работоспособна.
Спасибо!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / bi11g, rpd, presentation table, hide object if
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]