SAPфорум.RU
https://sapboard.ru/forum/

Объекты полномочий на проекты
https://sapboard.ru/forum/viewtopic.php?f=9&t=99718
Страница 1 из 1

Автор:  Maksimka [ Пн, авг 23 2021, 08:08 ]
Заголовок сообщения:  Объекты полномочий на проекты

Добрый день уважаемые консультанты и разработчики.

Возникла необходимость ограничить полномочия на проекты и вложенные в них СПП элементы по балансовой единице. На данный момент БЕ указана в основных данных проектов и спп элементов. Существует ли такой объект авторизации, потому как я ничего подобного не нашёл? Project System знаю так себе, поэтому заранее прошу ногами не пинать.

Автор:  Maksimka [ Вт, авг 24 2021, 08:25 ]
Заголовок сообщения:  Re: Объекты полномочий на проекты

Если кому интересно или может быть пригодится, то можно использовать exit CNEX0002. Создаём объект полномочий ZPSCC100 su21 c одним полем BUKRS. Далее добавляем этот объект полномочий в роль. Для разграничения доступа по БЕ к проектам необходимо в ФМ EXIT_SAPLCNAU_001: authorization checks in project definitions.добавить это:
Code:
DATA: VALUES TYPE  US335 OCCURS 0,
      WA_VAL  LIKE LINE OF VALUES.

RANGES: zbukrs FOR T880-RCOMP.

"Call Values of Authorization Object for current user
CALL FUNCTION 'GET_AUTH_VALUES'
  EXPORTING
    OBJECT1 = 'ZPSCC100'
    USER    = SY-UNAME
  TABLES
    VALUES  = VALUES.

if values[] IS INITIAL.
  MESSAGE 'Authorization failed!' TYPE 'E'.
ENDIF.

" Authorization object for Project
READ TABLE VALUES INTO wa_val WITH KEY field = 'BUKRS' lowval = '*'.
IF sy-subrc ne 0.
  LOOP AT VALUES INTO WA_VAL WHERE FIELD EQ 'BUKRS'.
    IF wa_val-highval IS NOT INITIAL.
      zbukrs-sign = 'I'.
      zbukrs-option = 'BT'.
      zbukrs-low = wa_val-lowval.
      zbukrs-high = wa_val-highval.
      append zbukrs.
    ELSE.
      zbukrs-sign = 'I'.
      zbukrs-option = 'EQ'.
      zbukrs-low = wa_val-lowval.
      append zbukrs.
    ENDIF.
    CLEAR WA_VAL.
  ENDLOOP.
ENDIF.

CLEAR WA_VAL.

IF NOT zbukrs[] IS INITIAL.
  IF SAP_PROJ-vbukr NOT IN zbukrs.
    MESSAGE 'Authorization failed!' TYPE 'S'.
  ELSE.
    SAP_X_ACTVT = 'X'. "Authorization Allowed Check
  ENDIF.
ELSE.
   SAP_X_ACTVT = 'X'. "Authorization Allowed Check
ENDIF.

Аналогичные вещи можно сделать также и для СПП элементов и сетевых графиков, но а таких ФМ как EXIT_SAPLCNAU_002: authorization checks in WBS elements и EXIT_SAPLCNAU_003: authorization checks in network headers

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/