Есть типовая задача — отчет по принятым сотрудникам. Нужно отразить, где сегодня находятся все активные сотрудники и дату их приема. Звучит просто, когда у человека нет перемещений, он принят после даты старта системы. Если же человек перемещался, дата приема может храниться в 41 ИТ или отдельным мероприятием (техническая загрузка), то при выборе периода «Весь период» на селекционном экране логического базы данных, система выведет все записи, включая перемещения и пр.

Есть несколько вариантов решения, которые мне приходят на ум с помощью SAP Query.

Один вариант и самый простой — сделать дополнительное поле, в котором рассчитывать дату первичного приема сотрудника (читать ее из 0041 или 0000 по видам мероприятий). Тогда выбор даты на селекционном экране устанавливаем в «Сегодня». Система все инфотипы прочитает begda <= sy-datum <= endda, а наш допполе само по себе прочитает дату приема.

Второй вариант, это сделать в инфонаборе вывод поля endda для всех инфотипов, которые нам интересны. После чего на селекционном экране ставить период «Весь период», а нужные нам инфотипы фильтровать endda = 31.12.9999, и вариантом скрыть эти поля. Тогда система 0000 или 0041 ИТ будет читать за все периоды, а тот же 0001 будет брать только на сегодня.

Ваши варианты без разработки всего отчета по принятым сотрудникам на ABAP? 🙂