Sapforum.Biz
Учет и отчетность => Система управления проетами (PS) => Тема начата: themax от Август 23, 2021, 08:14:52 am
-
Добрый день уважаемые консультанты и разработчики.
Возникла необходимость ограничить полномочия на проекты и вложенные в них СПП элементы по балансовой единице. На данный момент БЕ указана в основных данных проектов и спп элементов. Существует ли такой объект авторизации, потому как я ничего подобного не нашёл?
Ветки по модулю Project System на форуме не нашёл, поэтому запостил сюда. Project System знаю так себе, поэтому заранее прошу ногами не пинать.
-
Ну там вариантов.. вагон если честно. Так на вскидку
1. Ну стандартно через объекты полномочий, запусти логирование, получишь весь перечень используемых объектов а дальше стандартно смотри что-то можно сделать.
2. Использование статусной схемы пользователя + далее проверка полномочий на присвоенные статусы, транзакция OK02
3. Возможно через стандартные процессы проверок? транзакция OPSI, можно что-то накрутить.
4. Через присвоение ответственных, транзакция OPS6, если не путаю а дальше проверка полномочий на ответственных за СПП
5. Через абап, если что-то уж надо экзотическое:
Расширение: разработка проверки полномочий
The following SAP enhancement is available for the authorization check function in the Project System:
•CNEX0002 Check on authorizations
You can use this enhancement to add to the authorization check in the Project System.
The enhancement includes an enhancement component for each authorization check which can be enhanced.
If you use authorization checks with fields that are not standard SAP authorization objects, take this in to account in the Project System logical database, which is the basis for reporting. Use enhancement component EXIT_SAPDBPSJ_001 to do this. This is the only way of ensuring a complete authorization check.
Enhancement CNEX0002 contains the following enhancement components:
•EXIT_SAPLCNAU_001: for project definitions
•EXIT_SAPLCNAU_002: for WBS elements
•EXIT_SAPLCNAU_003: for network headers
•EXIT_SAPLCNAU_004: for network activities
•EXIT_SAPLCNAU_005: for milestones
•EXIT_SAPLCNAU_006: for PS texts
•EXIT_SAPLCNAU_007. for simulation versions
•EXIT_SAPDBPSJ_001: for logical database PSJ
The following information is transferred to function modules EXIT_SAPLCNAU_001 through EXIT_SAPLCNAU_007, along with the attributes of the object to be checked (e.g. WBS element or activity):
•Activity:
The authorization activity differentiates how the information is to be accessed (change, display). You will find the values used in the document for the standard authorization objects in the Project System.•Message type:
If a message should be processed explicitly in the function module, you can only do so if SAP_MSGTZ is not initial. Furthermore, you must always enter SAP_MSGTY as the message type for the message statement.•Return value:
Indicator (X), which is set if you have the appropriate authorization.
For a detailed description of function module EXIT_SAPDBPSJ_001, refer to the appropriate documentation.
Activities
1. Generate the enhancement.To do this, either create a new project or use an existing one.2. Activate the project.The enhancement does not become active until you activate the project.
-
Ну там вариантов.. вагон если честно. Так на вскидку
1. Ну стандартно через объекты полномочий, запусти логирование, получишь весь перечень используемых объектов а дальше стандартно смотри что-то можно сделать.
2. Использование статусной схемы пользователя + далее проверка полномочий на присвоенные статусы, транзакция OK02
3. Возможно через стандартные процессы проверок? транзакция OPSI, можно что-то накрутить.
4. Через присвоение ответственных, транзакция OPS6, если не путаю а дальше проверка полномочий на ответственных за СПП
5. Через абап, если что-то уж надо экзотическое:
Вот последнее 5-ое по ходу самое то. Использовал расширение CNEX0002, добавил в EXIT_SAPLCNAU_001: for project definitions что то вроде
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.
Предварительно надо создать объект полномочий ZPSCC100 su21 c одним полем BUKRS. Далее добавляем этот объект полномочий в роль.
-
А не подскажешь свою версию системы, так как для именно этого случая существует такая штука как ACL - собственно контроль доступа к СПП-элементам. В новых версиях эта штука деактивирована на уровне бизнес-функции. Если версия до ECC 6.0 EHP3 то оно сразу вроде как активно иначе нужно активировать бизнес функцию OPS_PS_CI_1 в транзакции SFW5. После активации в профиле настройки проектов можно выбрать галку использовать или не использовать контроль доступа к СПП элементам с использованием ACL Возможно в тестовой системе сейчас проверю эту бизнес функцию.
Мне кажется это лучшее решение, чем использование ABAP.
Да что позоволяет ACL - Access Control List (Как раз то что тебе нужно как мне кажется)
Access Control List
You can use an access control list to assign authorizations for the following PS objects:
Project definition
WBS element
Network
Activity/operation
Activity elements
You can assign the following authorizations:
No Authorization
Read
Edit
Administration
Three user types are available:
Single users
User group
Organizational unit
The access control list is displayed on a new tab page for each PS object. You can specify whether the system should pass on access rights. You can use the menu option Delete Access Control List (transaction "CNACLD") to display and delete all access control lists of a project.
-
1. Вообщем более подробно что появляется при активации бизнес функций можно посмотреть тут: http://sapforum.biz/index.php?topic=2975.new#new&gsc.tab=0
2. Сделаю отдельный раздел под систему управления проектами и перенесу ветку туда.
-
В общем после активации бизнес функции в профиле проекта появляется соответствующая настройка управления доступами. Так что абап можно пока отложить, очень советую использовать данную настройку.
(http://sapforum.biz/index.php?action=dlattach;topic=3064.0;attach=4455;image)
-
А не подскажешь свою версию системы, так как для именно этого случая существует такая штука как ACL - собственно контроль доступа к СПП-элементам. В новых версиях эта штука деактивирована на уровне бизнес-функции. Если версия до ECC 6.0 EHP3 то оно сразу вроде как активно иначе нужно активировать бизнес функцию OPS_PS_CI_1 в транзакции SFW5. После активации в профиле настройки проектов можно выбрать галку использовать или не использовать контроль доступа к СПП элементам с использованием ACL Возможно в тестовой системе сейчас проверю эту бизнес функцию.
Мне кажется это лучшее решение, чем использование ABAP.
Да что позоволяет ACL - Access Control List (Как раз то что тебе нужно как мне кажется)
Версия продукта EHP7 FOR SAP ERP 6.0, с ACL тоже надо попробовать по тестить, возможно ты прав на счёт более подходящего варианта.
-
Если я правильно понял документацию к этой бизнесс функции OPS_PS_CI_1, то ACL это некая вкладка появляющаяся при открытии Проекта с CJ20N, в которой можно конкретно указать пользователя, которому будет дозволено работать с этим проектом в каком то режиме (редактировать, изменить, просмотр). Мне же нужно чтобы authorizations check срабатывал на уровне присвоенной БЕ.
Интереса ради активировал эту функцию, в настройках профиля появилась вкладка как на скрине, который ты запостил, но при открытии проектов CJ20N этой владки нет. Где то ещё надо подкручивать?
-
Интереса ради активировал эту функцию, в настройках профиля появилась вкладка как на скрине, который ты запостил, но при открытии проектов CJ20N этой владки нет. Где то ещё надо подкручивать?
Настраиваешь профиль проекта и дальше появляется закладка, где можно присваивать пользователей и давать им полномочия на операции. Вроде как все работает нормально.
Ссылка на справку: https://help.sap.com/viewer/5ecdd9085d344e6693e65fc60c3b5b0f/6.18.latest/en-US/2fd4b65334e6b54ce10000000a174cb4.html
-
Настраиваешь профиль проекта и дальше появляется закладка, где можно присваивать пользователей и давать им полномочия на операции. Вроде как все работает нормально.
Ссылка на справку: https://help.sap.com/viewer/5ecdd9085d344e6693e65fc60c3b5b0f/6.18.latest/en-US/2fd4b65334e6b54ce10000000a174cb4.html
При создании проекта вкладка появляется, но при открытии уже существующих проектов вкладки нет. Может быть эта фишка не работает с теми проектами, которые были созданы раньше, чем была активирована эта бизнес функция?
-
созданы раньше, чем была активирована эта бизнес функция?
Для старых СПП надо там какая-то утилитка есть которая активирует это дело для ранее созданных объектов. Пока на вскидку быстро не нашел.
-
Вроде нашел, программа RPSACL_MIGRATE, если правильно нашел.
-
Вроде нашел, программа RPSACL_MIGRATE, если правильно нашел.
Спасибо Олег!
Буду тестить.