Если вы хотите ограничить доступ ко всему отчету, вы можете сделать это на уровне транзакции. При создании транзакции вы можете указать объект авторизации, при желании также с указанными полями. Пользователи, которые не авторизованы для этого объекта авторизации, будут исключены из отчета. Убедитесь, что пользователи не могут обойти это, запустив отчет через SE38 или аналогичную транзакцию.
Однако иногда вам может потребоваться запрограммировать это. Например, в вашем отчете может быть поле выбора балансовой единицы, и вы хотите, чтобы только определенные пользователи могли просматривать данные для определенных балансовых единиц. В этом случае вы можете использовать ключевое слово AUTHORITY-CHECK. Вот пример:
AUTHORITY-CHECK OBJECT 'BUKRS_COMP'
ID 'BUKRS' FIELD lv_bukrs
ID 'ACTVT' FIELD '03'. "read access
IF sy-subrc <> 0.
MESSAGE 'No authorization' TYPE 'E'.
ENDIF.