| 
 | 
| 
 
bi11g, rpd, presentation table, hide object if 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Добрый день, Подскажите, можно ли в репозитории для "presentation table "в блоке "hide object if" вызвать пользовательскую функцию или выполнить sql? Задача стоит так, надо скрывать или показывать объект презентации в зависимости от параметров сессии пользователя. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 04.12.2019, 15:09 | 
  
  
  
   | 
||
| 
 
bi11g, rpd, presentation table, hide object if 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 04.12.2019, 17:19 | 
  
  
  
   | 
||
| 
 
bi11g, rpd, presentation table, hide object if 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Я видел эту статью. Но в ней ничего не сказано про вызов процедур (хотя в expression builder в целом можно вызывать процедуры, например через evaluatе, но видимо здесь этот builder урезан по функциональности). SQL можно использовать через инициализацию сессионных переменных, и это могло бы мне помочь. Но непонятно как передавать в эти переменные контекст вызова, мне же надо в sql передать наименование объекта презентации, чтобы правильно вычислить значение этой переменной. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 05.12.2019, 08:03 | 
  
  
  
   | 
||
| 
 
bi11g, rpd, presentation table, hide object if 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  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 доползу не скоро, точно утверждать что это работает не могу ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 05.12.2019, 11:54 | 
  
  
  
   | 
||
| 
 
bi11g, rpd, presentation table, hide object if 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  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. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 05.12.2019, 21:10 | 
  
  
  
   | 
||
| 
 
bi11g, rpd, presentation table, hide object if 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Апну эту ветку, может все же кто-то сталкивался. Пытаюсь в репозитории для "presentation table" в блоке "hide object if" вызвать lookup функцию, примерно так: lookup(dense "NameArea"."LookupTable"."LookupFld", 1). Анализатор кода при этом не ругается, но при этом "presentation table" скрывается всегда, независимо от возвращаемого значения lookup. Возможно ошибка все-таки возникает, но вычислить ее не могу по логам. Кстати, поле основанное на этом же lookup в BMM работает корректно. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.12.2019, 12:05 | 
  
  
  
   | 
||
| 
 
bi11g, rpd, presentation table, hide object if 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  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' ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 26.12.2019, 13:13 | 
  
  
  
   | 
||
| 
 
bi11g, rpd, presentation table, hide object if 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  sharkoff76, Да, Вы предложили хороший (и наверное единственный) вариант сокрытия объектов презентации в зависимости от параметров сессии пользователя. Вначале я недооценил нюансы использования row-wise инициализации переменных, но теперь вижу, что эта схема работоспособна. Спасибо! ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 30.12.2019, 09:55 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=49&msg=39898854&tid=1857405]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    12ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    55ms | 
get topic data:  | 
    10ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    38ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 11ms | 
| total: | 145ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.