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

Виртуальные признаки и атрибуты

Попробовал тут сделать виртуальный признак с атрибутами...

В общем пока атрибуты display - всё ок
При попытке сделать атрибут навигационным - дамп при попытке выполнить отчет.

RSROA_OLAP_BADI - кстати прикольная вещь, но только в 7.3
RSR_OLAP_BADI


воскресенье, 8 ноября 2015 г.

Оптимизация запроса ABAP

[ABAP] Учимся правильно использовать FOR ALL ENTRIES IN

По мотивам статьи...

Да, сам видел в ST04N как данные куба считываются по кусочкам (по 5 значений).

Количество значений передаваемых в оператор IN регулируется настроченным параметром SAP - max_in_blocking_factor

Но чем больше параметр, тем больше нужно памяти для хранения результата.

Хинты для "локального" преодоления параметра
%_hints db2 '&max_in_blocking_factor 500&' или 
%_hints oracle '&max_in_blocking_factor 500&'

Пример:
select * from (table) appending corresponding fields of table lt_table for all entries in lt_tmp where x = lt_tmp-x
%_hints db2 '&max_in_blocking_factor 500&'.

Альтернатива - RANGE 
Вместо for all entries использовать range, но есть ньюансы:
- Если range будет содержать более 2000 строк, то он выйдет за размер SQL запроса передаваемого в базе. Результат - DBIF_RSQL_INVALID_RSQL
- т.о. возникает потребность следить за range