Основы работы с большими данными в SAP

Рано или поздно каждый консультант сталкивается с задачей быстрой и эффективной обработки большого массива данных из системы. Предметная область тут неважна. Многие компании практически не используют современные аналитические решения на благо повседневной трудовой деятельности. Причин тому много, но сегодня речь о другом. Наиболее типичные ситуации, это сверка данных при миграции данных или выгрузка большого объема данных из системы с целью последующей обработки в MS Excel. В 99% случаев будут именно такие задачи.

Вроде бы что сложного в выгрузке данных из отчета в системе? Совершенно ничего, когда мы говорим о паре десятков или сотен строк. Если речь идет о десятках тысяч строк или сотен тысяч строк, то мировоззрение начинает меняться. Попробуйте в ваших системах запустить оперативный запрос с даты старта SAP по паре инфотипов. А потом все это выгрузите и нарисуйте несколько формул рядом.

Исходя из моего опыта, могу дать некоторые базовые советы.

Совет 1. Выгрузка в MS Excel может быть осуществлена множеством способов. Даже нажимая одну кнопочку выгрузки разные системы обрабатывают событие по-разному. В ALV отчетах есть две возможность выгрузить данные в файл.

Левая кнопочка  зависимости от версии системы либо откроет MS Excel Inplace (то есть внутри системы откроется XLS файл). Очень неудобно, мелко, но достаточно для просмотра пары записей. Файл можно сохранить. В другом случае система спросит, в каком формате желаете выгрузить данные.

По умолчанию у всех стоит первый вариант — MHTML. И не дай вам чебурашке выгружать тысячи записей в этом формате. Система внутри готовит данные, потом запускает XLST трансформацию и вываливает все это в страшненький полу-HTML код. Это занимает очень много памяти на сервере и часто приводит к дампам. При открытии такого файла Excel наоборот производит конвертацию из XML файла в свой XLS формат, что, по сути, дублирует работу. Если выгружать сразу в Excel XLS/XLSX формате, то лишние действия не производятся, файл выгружается существенно быстрее.

Читать далее


Вариант селекционного экрана

Варианты селекционного экрана знает каждый. Если не знает, то срочно надо узнать что это. Они сильно облегчают жизнь пользователя и САПера. Особенно для отчетов, а, если еще и к ним ALV вариант настроить, то совсем красиво получается. Так вот, есть еще такие вариант, как системные. Это те, которые просто так не изменить. Помогает сохранить пользователям руки и не отрывать их, когда они что-нибудь перезатирают друг у друга.

Системные варианты начинаются с SAP& для саповских вариантов и CUS& для клиентских. Эти варианты хранятся в 000 манданте и переносятся транспортными запросами.

А еще в вариантах можно делать подстановки:

  • Даты
  • Пользовательские переменные
  • Табличные переменные TVARVC

Настройка полей ввода в CATS

Полчаса убил на то, чтобы понять, как работают поля в CATS. Те самые, которые видит пользователь в зависимости от выбранного профиля. Все оказалось просто — нужно было внимательно, а не просто так, прочитать инструкцию к соответствующей настройке IMG в транзакции SPRO.

Суть простая. Сначала мы настраиваем глобально (Modifiable) поля для всех профилей, а затем каждый профиль отдельно тюнингуем в Influencing. Таким образом, настройки глобального характера перекрывают настройки профилей.

Если после всего этого у вас в транзакции CAT2 поля не появились, то откройте настройку таблицы ALV (справа в верхнем углу иконка таблички). Нажимаете кнопку Administrator и смотрите там. У CATS есть какое-то ограничение то ли на длину всех полей, то ли количество колонок. Пока не разобрался, но таким образом удалось вытащить нужные поля. Часть скрыл и мои появились.

Скоро еще напишу про CATS. Оказывается, вполне интересная штука, не хуже PTMW для ряда задач.