Ярлыки

четверг, 5 ноября 2015 г.

Webi долго работает

Столкнулся с проблемой. BEx отчет отрабатывает за 8 секунд, Webi на нем отрабатывает 140 секунд.

Решал следующим образом:
1. Поставил трейс в ST01 на SQL. Не увидел ничего криминального
2. Поставил трейс в RSTT. Увидел, что большинство времени тратится на два FM:
  • RSR_MDX_BXML_GET_INFO - получает информацию от bex
  • RSR_MDX_BXML_GZIP_DATA - упаковывает запрос и передает неоднократно на сервер  BObj
3. Зашел в STAD, увидел то же самое. Заметил, что Memory Used около 500 мб. Подумал, что наверно, большой объем данных передается из BEx в BO.
4. Обратил внимание, что в BEx отображается 1000 строк, а в сводке запроса Webi 14000 строк. Это означает, что настройка подавления нулей была проигнорирована стороной Webi, Query Designer предупреждал об этом
5. Создал несколько фильтров на стороне запроса Webi, скрывающий нулевые строки. В результате в отчет стало передаваться меньше данных.
6. Уменьшил количество фильтров до одного - спустил расчет фильтруемых значений в BEX - сократил в семь раз время выполнения.

понедельник, 19 октября 2015 г.

LOOP AT itab GROUP BY group

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

LOOP AT itab GROUP BY 
( comp_code = result_fields-comp_code
  busentity = result_fields-busentity
  rebuilding = result_fields-rebuilding )
REFERENCE INTO DATA (group_ref).

     LOOP AT group_ref ASSIGNING <result_fields>.
     <...>
     ENDLOOP

ENDLOOP.

Если есть записи:
comp_code busentity rebuilding cha1 cha2
1000            1001       1003          abc   xyz
1000            1001       1003          qwe  rty
1000            1001       1003          asd   dfg
1000            1001       1004          zxc   vbn
1000            1001       1004          yui   opp

То в первом цикле мы упакуем в группу group_ref первые три записи, и пройдемся по ним, 
во втором цикле упакуем следующие две записи и пройдемся по ним.

суббота, 17 октября 2015 г.

Отсутствуют полномочия Изменить для Query 'QueryName'

Поймал ошибку полномочий в Query Designer. 
Открыл запрос, получил ошибку:


У пользователя SAP_ALL, трейс проблем не видит:


Оказалось, что запрос был создан  в GUI 7.40, при открытии в GUI 7.30 возникает такая ошибка. 
При обновлении ошибка устранилась.

среда, 7 октября 2015 г.

вторник, 1 сентября 2015 г.

#TOREFRESH

Для того, чтобы избежать ошибки #TOREFRESH в ячейке webi отчета при добавлении какого-либо нового показателя на лист можно пойти на хитрость и в юниверс-дизайнере принудительно установить способ требуемой агрегации для показателя (меры). Обычно это SUM. 

По умолчанию агрегация делегируется от источника - "БД делегирован".
Так же иногда помогает при #UNAVAILABLE

Не отображаются сведения в webi

Была такая проблема, которую никак не могу объяснить.
Имеем бекс на кубике. В кубике есть инфообъект. У него есть атрибут - "Дата создания".
Бекс вытягивает этот инфообъект и его атрибут, и отлично отображает.









Webi как известно, игнорирует атрибуты, которые мы выводим в бексе. Он видит абсолютно все атрибуты признака, поэтому в бексе их можно не выводить дополнительно. Но, отображает, к сожалению, не все. Например, в данном примере не отображает дату.
Атрибуты webi видит как "Сведения". 







Проблема самоустранилась с переходом на 7.4 on HANA.

понедельник, 31 августа 2015 г.

Формула

В правиле преобразования формулы RIGHT, LEFT работают в два раза быстрее, чем SUBSTRING:



Мелочь, а приятно.