У конечных пользователей системы SAP ERP часто возникает необходимость создания отчёта, который содержал бы как часть полей стандартного отчёта, так и дополнительные поля. В качестве примеров таких отчётов можно назвать: список клиентов, история по счёту главной книги, открытые счета-фактуры от поставщиков. В системе SAP ERP соответствующие стандартные отчёты содержат избыточную информацию, являются трудночитаемыми и не содержат «нужного» пользователю поля.
Функциональность SAP Query даёт возможность создать «оптимизированные» отчёты в нужном формате без значительных трудозатрат.
В статье я подробно рассмотрю процесс создания «оптимизированного» отчёта средствами SAP Query.
Основные шаги для создания запроса:
В нашем примере финансовая служба запросила отчет по бухгалтерским документам в разрезе основного счета и балансовой единицы. Отчет должен делать суммирование по номеру счета и подсчитывать количество проводок по каждому счету, также требуется получить номер недели, которая соответствует дате проводки документа. Из отчёта должна быть возможность перехода в ведение счета главной книги и просмотр бухгалтерского документа.
Инфо-набор должен содержать поля, которые должны быть отображены в итоговом отчёте. Если какого-либо поля нет в инфо-наборе, то его нельзя включить в запрос. В нашем примере в инфо-набор будут включены следующие поля: балансовая единица, основной счет, сумма во внутренней валюте, номер документа, дата документа, дата проводки, описание счета, номер недели.
Запустите транзакцию SQ02 (см. Рисунок 1).
SAP предлагает несколько источников для создания инфо-набора, это:
Каждый из источников данных имеет свои особенности, которые не обсуждаются в настоящей статье. Мы выбрали стандартный источник данных – поставляемую SAP логическую базу данных, которая представляет собой программу, написанную оптимальным и корректным образом, что обеспечивает высокую скорость работы инфо-набора и, как следствие, запроса.
В открывшемся окне вы увидите список таблиц, которые входят в структуру логической базы данных SDF.
SKA1 Основные записи основных счетов (план счетов),
SKB1 Основные записи основных счетов (балансовая единица),
BSIS Бухгалтерия: вторичный индекс для основных счетов.
Теперь мы находимся на первом экране ведения инфо-набора (см. Рисунок 4.) Экран разделен на три части.
![]() |
Рис. 1 | Первый экран инфо-набора |
![]() |
Рис. 2 | Выбор источника данных для инфо-набора |
![]() |
Рис. 3 | Выбор таблиц логической базы данных |
![]() |
Рис. 4 | Выбор полей инфо-набора |
![]() |
Рис. 5 | Сохранение инфо-набора в пакет |
Группы пользователей обеспечивают контроль доступа к инфо-наборам и запросам. Инфо-наборы и пользователи присваиваются к группам пользователей. Когда пользователь создает или запускает запрос, то группа пользователей определяет список инфо-наборов, к которым у пользователя есть доступ.
В нашем примере группа пользователей будет включать сотрудников финансового отдела. В случае, если доступ к бухгалтерской отчетности нужен другим отделам, то группа пользователей может быть присвоена и им.
Перейдите по меню Среда>Группы пользователей с первого экрана ведения инфо-набора.
Экран на рисунке 6 предназначен для ведения групп пользователей и присвоения инфо-наборов к группам пользователей.
![]() |
Рис. 6 | Экран ведения группы пользователей |
![]() |
Рис. 7 | Описание группы пользователей |
![]() |
Рис. 8 | Присвоение группы пользователей пользователям |
![]() |
Рис. 9 | Присвоение инфо-набора группе пользователей |
Мы создали инфо-набор и группу пользователей. Следующий шаг – создание запроса. На этом шаге поля инфо-набора включаются в отчет, определяется сортировка и суммирование, а также счетчик для количества документов и возможность перехода в ведение счета и документа. Для доступа к запросам Запустите транзакцию SQ01.
Убедитесь, что вы работаете с группой пользователей, созданной ранее. (см. название группы в верхней части экрана). Если нет, нажмите кнопку Другая группа пользователей (первая кнопка слева в ряду кнопок под названием экрана на рисунке 10) и выберите нужную группу пользователей.
Если группа пользователей уже содержит присвоенные ей запросы, то они будут выведены на экран. Пользователь может выполнить любой из запросов в его группе пользователей, если имеет необходимые полномочия.
Система выведет список инфо-наборов, привязанных к группе пользователей (рисунок 11). Только один инфо-набор может быть выбран для создания запроса. Это означает, что все поля, которые вы хотите включить отчет, должны быть в одном инфо-наборе. Дважды щелкните по инфо-набору для его выбора в качестве базы для создания запроса.
Заголовок отчета появляется на экране, когда запрос выполняется.
Формат списка должен соответствовать существующему формату печати в управлении выводом, иначе отчет не может быть напечатан. Наиболее распространенные форматы: 65x132 и 65x80. В нашем примере мы оставили формат по умолчанию: 0 строк (без ограничения) и 83 столбца.
Откроется графический экран построения запроса, как показано на рисунке 13. Запрос в целом строится на этом экране с использованием выделения объектов и их перетаскивания.
Доступные поля для построения запроса отображаются в левой части экрана в виде таблицы, как показано на рисунке 13.
Когда поле помечается для отображения как Поле списка, оно появляется в правой верхней части экрана. Именно в этом порядке поля будут отображены в отчете. Для изменения порядка можно поменять поля местами путем перетаскивания.
Для прочтения полной версии статьи необходимо зайти как зарегистрированный пользователь.
Александр Филинов (Рейтинг: 190) 22:49, 18 апреля 2012
Было бы не плохо добавить шаг про создание транзакции, было бы полное описание.
Пока никому не понравилось
Олег Точенюк (Рейтинг: 10749)
Пока никому не понравилось
Александр Филинов (Рейтинг: 190)
Пока никому не понравилось
Олег Точенюк (Рейтинг: 10749)
Пока никому не понравилось
Вячеслав Контарев (Рейтинг: 266)
Понравилось 2 людям
Александр Филинов (Рейтинг: 190)
Небольшой вопрос к Вам.
У вас получалось привязать к запросу Z*таблицы. Сейчас нет под рукой 6 версии, в 4.7 я просто не вижу эти таблицы.
Пока никому не понравилось
Евгений Каноплич (Рейтинг: 79)
D_SREPOVARI-REPORT
D_SREPOVARI-EXTDREPORT
D_SREPOVARI-VARIANT
D_SREPOVARI-REPORTTYPE
И проще этого придумать наверное сложно. Не говоря про генерацию отчетов и т.д.
Пока никому не понравилось
Василь Мандрика (Рейтинг: 75) 15:38, 03 мая 2012
Пока никому не понравилось
Олег Точенюк (Рейтинг: 10749)
SET PARAMETER ID 'BES' FIELD <номер заказа>.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
Или более правильно использовать специальный ФМ:
CALL FUNCTION 'ME_DISPLAY_PURCHASE_DOCUMENT'
EXPORTING
i_ebeln = <номере документа>
i_ebelp = <позиция документа>
i_enjoy = 'X'
EXCEPTIONS
OTHERS = 1.
Пока никому не понравилось
Василь Мандрика (Рейтинг: 75)
Пока никому не понравилось
Вадим Новак (Рейтинг: 76)
Пока никому не понравилось
Олег Точенюк (Рейтинг: 10749)
Пока никому не понравилось
Вадим Новак (Рейтинг: 76)
Я с Вами полностью согласен, по поводу того, что SAP мог бы подумать и передавать в PID данные текущей выделенной строки для всех колонок. В Query для обеспечения универсальности генерируется куча ненужного ABAP кода и лишних 5-10 строк кода для передачи PID погоды не сделали бы.
Пока никому не понравилось
Евгений Ермолаев (Рейтинг: 157) 16:44, 07 сентября 2012
Пока никому не понравилось