SAPфорум.RU https://www.sapboard.ru/forum/ |
|
Технология передача range на нижние уровни иерархии из CDS-view https://www.sapboard.ru/forum/viewtopic.php?f=13&t=97157 |
Страница 1 из 1 |
Автор: | Plank [ Пт, дек 14 2018, 09:27 ] |
Заголовок сообщения: | Технология передача range на нижние уровни иерархии из CDS-view |
Коллеги, доброе утро. Требуется мнение экспертов в разработке. Есть отчет, он основан на нескольких CDS-view, которые представляют собой иерархию из нескольких уровней. Сейчас на нижнем уровне выбирается очень много данных, далее выполняется много обогащенный (join) и только на верхнем уровне происходит фильтрация по параметрам селекционного экрана. В результате может остаться 1 запись, а выбирается несколько миллионов... CDS-view параметрические, но на селекционном экране SELECT-OPTIONS, и их не передать на нижний уровень CDS-view. Предлагается следующее решение: 0. Делаем таблицу БД, ключ: имя пользователя, таймштамп, имя поля, счетчик. Далее поля для range. 1. При запуске отчета данные с СЭ из SELECT-OPTIONS сохраняются в таблицу. 2. Commit and wait. 3. По иерархии CDS через параметры передаем имя пользователя и таймштамп. 4. В CDS нижнего уровня делаем join ACDOCA с данными выбранными из нашей таблицы по параметрам. 5. Выбираются только нужные данные. 6. При выводе ALV чистим таблицу по нашим ключам запуска. Чтобы не накапливался мусор при неудачных запусках отчета (дамп по причине недостатка памяти), чистим все данные в нашей таблице старее 1 суток. Commit and wait. С виду бред, но почему нет? |
Автор: | Besa [ Пт, дек 14 2018, 10:07 ] |
Заголовок сообщения: | Re: Технология передача range на нижние уровни стека CDS-view |
CDS не понимает SO в чистом виде, его можно передать только строкой, но и в таком случае его не применить в самом CDS. Это делается через AMDP (можно использовать в "чистом виде" вызвав AMDP класс в ABAP, можно вызвать AMDP через CDS). https://blogs.sap.com/2018/03/21/select-options-in-cds-using-table-function/ https://blogs.sap.com/2015/03/30/handling-of-select-options-parameters-within-amdp/ |
Автор: | Rizor [ Пт, дек 14 2018, 14:26 ] |
Заголовок сообщения: | Re: Технология передача range на нижние уровни иерархии из CDS-view |
Добрый день. Интереса ради. То есть вы делаете SELECT из верхнеуровнего CDS VIEW с WHERE par IN s_params, и наблюдается падение производительности из - за большого кол - ва записей в нижестоящих CDS ? Или аномальное потребление оперативки в Hana? Просто думал, что Hana должна объединить автоматом все CDS в один супер-джойн и как - то оптимально его отфильтровать. Случай то в общем стандартный ... По вопросу - вроде в версии 7.52 появились Global Temporary Tables, которые можно использовать для join-a в CDS |
Автор: | trop [ Пн, дек 17 2018, 16:05 ] |
Заголовок сообщения: | Re: Технология передача range на нижние уровни иерархии из CDS-view |
Иногда проще заменить выборку из CDS ракурса на выборку из исходных таблиц, например CDS ракурс VFCLMMMALL - http://files.rsdn.org/6151/VFCLMMMALL_groups.png |
Автор: | Plank [ Пн, дек 17 2018, 16:52 ] |
Заголовок сообщения: | Re: Технология передача range на нижние уровни иерархии из CDS-view |
Спасибо за советы. Там уже часть CDS заменили на ABAP... |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |