У кінцевих користувачів системи SAP ERP часто виникає необхідність створення звіту, який містив би як частина полів стандартного звіту, так і додаткові поля. Як приклади таких звітів можна назвати: список клієнтів, історія за рахунком головної книги, відкриті рахунки-фактури від постачальників. В системі SAP ERP відповідні стандартні звіти містять надлишкову інформацію, є складним для розуміння і не містять «потрібного» користувачеві поля.
Функціональність SAP Query дає можливість створити «оптимізовані» звіти в потрібному форматі без значних трудовитрат.
У статті я детально розгляну процес створення «оптимізованого» звіту засобами SAP Query.
Основні кроки для створення запиту:
- Створіть інфо-набір.
- Створіть групу користувачів і надайте їй інфо-набір.
- Створіть запит на базі інфо-набору.
Бізнес-кейс
Створення інфо-набору
Інфо-набір повинен містити поля, які повинні бути відображені в підсумковому звіті. Якщо будь-якого поля немає в інфо-наборі, то його не можна включити в запит. У нашому прикладі в інфо-набір будуть включені наступні поля: балансова одиниця, основний рахунок, сума у внутрішній валюті, номер документа, дата документа, дата проводки, опис рахунку, номер тижня.
Запустіть транзакцію SQ02 (див. Малюнок 1).
- Введіть ім'я Інфо-набору «ZZ_SAMPLE_ACCOUNTING» і натисніть кнопку Створено.
- Визначте опис інфо-набору «Приклад інфо-набору: Бухоблік»
- Введіть ім'я логічної бази даних SDF (див. Малюнок 2). Це стандартна логічна база даних, що містить дані по бухгалтерських документах і рахунках головної книги.
SAP пропонує кілька джерел для створення інфо-набору, це:
- об'єднання таблиць (англ. join),
- зчитування таблиці безпосередньо,
- логічна база даних,
- збір даних програмою.
Кожен з джерел даних має свої особливості, які не обговорюються в цій статті. Ми вибрали стандартний джерело даних - поставляється SAP логічну базу даних, яка являє собою програму, написану оптимальним і коректним чином, що забезпечує високу швидкість роботи інфо-набору і, як наслідок, запиту.
- Підтвердіть введення, натиснувши кнопку підтвердження.
У вікні, ви побачите список таблиць, які входять в структуру логічної бази даних SDF.
- Виберіть таблиці, які ви будете використовувати в інфо-наборі (див. Малюнок 3). У нашому прикладі це такі таблиці:
SKA1 Основні записи основних рахунків (план рахунків),
SKB1 Основні записи основних рахунків (балансова одиниця),
BSIS Бухгалтерія: вторинний індекс для основних рахунків.
Тепер ми перебуваємо на першому екрані ведення інфо-набору (див. Малюнок 4.) Екран розділений на три частини.
- Лівий блок - список таблиць і полів в них.
- Правий верхній блок - список груп полів. Групи полів відповідають таблиць, обраним для створення звіту. Щоб зробити поле доступним для запиту, необхідно включити його в групу полів. Чи не присвоєне групі поле не може бути включено до звіту.
- Правий нижній блок - детальні параметри поля. Тут можна змінити опис поля, яке буде відображатися в звіті. Подвійне клацання по полю з лівого блоку викличе відображення деталей поля в правому нижньому блоці.
- Клацніть по групі полів Основні записи основних рахунків (план рахунків) у верхньому правому блоці.
- Відкрийте папку Основні записи основних рахунків (план рахунків) в лівій секції, клацнувши по стрілці зліва від папки. Відкриється список полів таблиці.
- Виділіть поле Номер основного рахунку одним клацанням миші.
- Натисніть кнопку Додати поле. В результаті поле Номер основного рахунку переміщається в виділену групу полів.
- Слідуючи цим крокам, акуратно перемістіть перераховані нижче поля до відповідних груп полів.
- З таблиці SKA1: Основні записи основних рахунків (план рахунків)
- План рахунків
- Номер основного рахунку
- З таблиці SKB1: Основні записи основних рахунків (балансова одиниця)
- балансова одиниця
- З таблиці BSIS: Бухгалтерія: вторинний індекс для основних рахунків
- Номер бухгалтерського документа
- Номер позиції бухгалтерського документа
- Дата проведення документа
- Сума у внутрішній валюті
- Місце виникнення витрат
- З таблиці SKA1: Основні записи основних рахунків (план рахунків)
- Збережіть інфо-набір.
- На цьому кроці система може запросити ключ розробника або запит на перенесення змін (див. Малюнок 5). Якщо ви не знаєте, які дані вводити, зверніться в вашу технічну команду.
- Згенеруйте інфо-набір, натиснувши на кнопку генерації.
- Натисніть кнопку Назад, щоб повернутися на перший екран ведення інфо-набору.
Створення групи користувачів
Групи користувачів забезпечують контроль доступу до інфо-наборам і запитам. Інфо-набори і користувачі присвоюються до груп користувачів. Коли користувач створює або запускає запит, то група користувачів визначає список інфо-наборів, до яких у користувача є доступ.
У нашому прикладі група користувачів буде включати співробітників фінансового відділу. У разі, якщо доступ до бухгалтерської звітності потрібен іншим відділам, то група користувачів може бути присвоєна і їм.
Перейдіть по меню Середовище> Групи користувачів з першого екрану ведення інфо-набору.
Екран на малюнку 6 призначений для ведення груп користувачів і присвоєння інфо-наборів до груп користувачів.
- Введіть ім'я групи користувачів «ZZ_SAPMLE».
- Натисніть кнопку Створити.
- Визначте опис групи користувачів «Приклад: Бухоблік» (малюнок 7).
- Натисніть кнопку Зберегти. На цьому кроці система може запросити ключ розробника або запит на перенесення змін. Якщо ви не знаєте, які дані вводити, зверніться в вашу технічну команду.
- Коли опис визначено, перейдіть назад і натисніть кнопку Присвоїти користувачів і інфо-набори.
- Введіть користувачів, які працюють у фінансовій службі.
- Натисніть кнопку Зберегти.
- Натисніть кнопку Присвоїти інфо-набори (рисунок 8).
- Система відобразить як стандартні, так і призначені для користувача інфо-набори. Прокрутіть список вниз, щоб знайти призначені для користувача інфо-набори (малюнок 9).
- Виберіть інфо-набір, встановивши індикатор навпроти його.
- Натисніть кнопку Зберегти.
створення запиту
Ми створили інфо-набір і групу користувачів. Наступний крок - створення запиту. На цьому кроці поля інфо-набору включаються до звіту, визначається сортування і підсумовування, а також лічильник для кількості документів і можливість переходу в ведення рахунку та документа. Для доступу до запитів Запустіть транзакцію SQ01.
Переконайтеся, що ви працюєте з групою користувачів, створеної раніше. (Див. Назва групи у верхній частині екрану). Якщо немає, натисніть кнопку Інша група користувачів (перша кнопка зліва в ряду кнопок під назвою екрану на малюнку 10) і виберіть потрібну групу користувачів.
- Введіть ім'я запиту «Z_ACCOUNTING».
- Натисніть кнопку Створити.
Якщо група користувачів вже містить присвоєні їй запити, то вони будуть виведені на екран. Користувач може виконати будь-який із запитів в його групі користувачів, якщо має необхідні повноваження.
Система виведе список інфо-наборів, прив'язаних до групи користувачів (рисунок 11). Тільки один інфо-набір може бути обраний для створення запиту. Це означає, що всі поля, які ви хочете включити звіт, повинні бути в одному інфо-наборі. Двічі клацніть по інфо-набору для його вибору в якості бази для створення запиту.
Заголовок звіту з'являється на екрані, коли запит виконується.
Формат списку повинен відповідати існуючому формату друку в управлінні висновком, інакше звіт не може бути надрукований. Найбільш поширені формати: 65x132 і 65x80. У нашому прикладі ми залишили формат за замовчуванням: 0 рядків (без обмеження) і 83 стовпчика.
- Введіть опис запиту «Приклад запиту: Бухоблік», як показано на малюнку 12.
- Натисніть на кнопку Основний список у верхній частині екрану.
Відкриється графічний екран побудови запиту, як показано на малюнку 13. Запит в цілому будується на цьому екрані з використанням виділення об'єктів і їх перетягування.
Доступні поля для побудови запиту відображаються в лівій частині екрана у вигляді таблиці, як показано на малюнку 13.
- Розкрийте кожну секцію зліва, щоб відобразити всі поля, включені в інфо-набір.
- Для вибору полів, які будуть відображені в звіті, встановіть індикатор навпроти кожного поля в стовпці Поля списку. Виберіть з наступного поля: номер основного рахунку, текст основного рахунку, балансова одиниця, сума у внутрішній валюті, дата проводки, номер бухгалтерського документа.
- Визначте поля, які будуть відображені на екрані вибору, встановивши індикатор Поля вибору в рядку поля Номер бухгалтерського документа. Це другий стовпець. Деякі поля, наприклад, Номер основного рахунку. вже визначені для вибору і не можуть бути змінені. Це означає, що поле вже встановлено як поле для вибору в логічній базі даних. На екрані вибору запиту відображаються всі поля, помічені для вибору даних: і певні в логічній базі даних, і ті, які визначили ви.
Коли поле позначається для відображення як Поле списку. воно з'являється в правій верхній частині екрану. Саме в цьому порядку поля будуть відображені в звіті. Для зміни
Обмежений доступ
Для прочитання повної версії статті необхідно зайти як зареєстрований користувач.
Сподобалося 2 людям
В'ячеслав спасибі.
Невеликий питання до Вас.
У вас виходило прив'язати до запиту Z * таблиці. Зараз немає під рукою 6 версії, в 4.7 я просто не бачу ці таблиці.
Сьогодні поки що не сподобалося
Напевно все вже користувалися транзакціями з параметрами. Там нехитро виходить викликати квері за допомогою START_REPORT і набору параметрів
D_SREPOVARI-REPORT
D_SREPOVARI-EXTDREPORT
D_SREPOVARI-VARIANT
D_SREPOVARI-REPORTTYPE
І простіше цього придумати напевно складно. Не кажучи про генерацію звітів і т.д.
Сьогодні поки що не сподобалося
Сьогодні поки що не сподобалося
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.
Сьогодні поки що не сподобалося