Event 25: Individual authorization checks
Событие используется для как правило для оценки возможности редактирования в генераторе относительно полномочий. Пример кодировки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
FORM check_auth. CHECK zcl_auth_checker=>is_auth_checked( ) = abap_false. IF zcl_auth_checker=>is_need_to_view_data( ) = abap_true. " Отобразить информацию о недостаточных полномочиях, но открыть на просмотр CHECK sy-ucomm EQ 'UPD' OR sy-ucomm EQ 'AEND'. " Режим изменения vim_auth_msgid = '/SDF/WS_MON'. vim_auth_msgno = '001'. ELSE. " Не показывать данные ракурса для просмотра MESSAGE ID '/SDF/WS_MON' TYPE 'E' NUMBER '001' WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. vim_auth_rc = 4. ENDFORM. |
Метод is_auth_checked возвращает abap_false, если проверка на полномочия не пройдена.
Метод is_need_to_view_data тут исключительно для демонстрации двух опций обработки отсутствия полномочий.
Мы можем либо отобразить сообщение об отсутствии полномочий на редактирование (если пользователь заходит в редактирование) и показать данные в режиме просмотра, либо выдать сообщение и не показывать данные вовсе.