В комментариях к одному из прошлых постов ("Как понять каких полномочий не хватает пользователю?") Zeroes поднял вопрос производительности системы при использовании меню. Сегодня мне хотелось бы немного осветить эту тему.
В SAP системе действует правило "что не разрешено, то запрещено", поэтому для настройки полномочий в системе создаются роли. Обычно у роли настраивается меню, представляющее собой набор транзакций, оформленных в виде дерева папок, а полномочия генерируются в специальном профиле полномочий, который связан с ролью. Пользователю, в зависимости от бизнес-процессов, которые он выполняет в системе, присваиваются роли (с привязанными к ним профилями полномочий) (рис. 1).
Итоговое меню пользователя на основном экране SAP GUI формируется как совокупность всех меню присвоенных ему ролей. При большом количестве пунктов в итоговом меню, то есть транзакций и папок, затрачиваются большие объемы памяти. Причем, память выделяется для каждой открытой сессии в рамках одного логона в систему. О процессе выделения памяти я писал в посте "Организация памяти в SAP AS ABAP - II".
Стоит так же упомянуть, что структура меню хранится в таблицах AGR_HIER и AGR_HIERT. Если посмотреть технические настройки данных таблиц (транзакция SE11 -> "Имя таблицы" -> "Технические параметры настройки"), то можно увидеть, что обе эти таблицы буферизируются по ключу на уровне сервера приложений SAP. Хочу напомнить, что про процесс буферизации таблиц я писал в посте "Буферизация таблиц на уровне сервера приложений SAP - I". Таким образом, для больших меню выделяются большие области в буфере таблиц, что так же негативно сказывается на общей производительности системы.
Оказывающим влияние на производительность системы считается меню с 2 000 пунктами и более. Для поиска пользователей с объемными меню в системе можно воспользоваться отчетом EASY_ACCESS_NUMBER_OF_NODES. На начальном экране есть возможность ограничить поиск только по диалоговым и действующим пользователям, у которых стоит в настройках показывать меню пользователя, а так же указать пограничное количество пунктов меню (рис. 2).
В предыдущих версиях системы был другой отчет - PROFGEN_CORR_REPORT_5. Начальный экран имеет похожий набор фильтров и параметров (рис. 3).
Результатами работы программы будет список пользователей, отсортированных по количеству пунктов в меню (рис. 4).
Как можно облегчить нагрузку на систему со стороны таких пользователей? SAP предлагает несколько решений.
Еще дополнительно по данной теме можно заглянуть в следующие SAP notes:
Автор: Шиболов Вячеслав Анатольевич
В SAP системе действует правило "что не разрешено, то запрещено", поэтому для настройки полномочий в системе создаются роли. Обычно у роли настраивается меню, представляющее собой набор транзакций, оформленных в виде дерева папок, а полномочия генерируются в специальном профиле полномочий, который связан с ролью. Пользователю, в зависимости от бизнес-процессов, которые он выполняет в системе, присваиваются роли (с привязанными к ним профилями полномочий) (рис. 1).
Рис. 1. Пример присвоения пользователю роли и соответствующего профиля полномочий. |
Итоговое меню пользователя на основном экране SAP GUI формируется как совокупность всех меню присвоенных ему ролей. При большом количестве пунктов в итоговом меню, то есть транзакций и папок, затрачиваются большие объемы памяти. Причем, память выделяется для каждой открытой сессии в рамках одного логона в систему. О процессе выделения памяти я писал в посте "Организация памяти в SAP AS ABAP - II".
Стоит так же упомянуть, что структура меню хранится в таблицах AGR_HIER и AGR_HIERT. Если посмотреть технические настройки данных таблиц (транзакция SE11 -> "Имя таблицы" -> "Технические параметры настройки"), то можно увидеть, что обе эти таблицы буферизируются по ключу на уровне сервера приложений SAP. Хочу напомнить, что про процесс буферизации таблиц я писал в посте "Буферизация таблиц на уровне сервера приложений SAP - I". Таким образом, для больших меню выделяются большие области в буфере таблиц, что так же негативно сказывается на общей производительности системы.
Оказывающим влияние на производительность системы считается меню с 2 000 пунктами и более. Для поиска пользователей с объемными меню в системе можно воспользоваться отчетом EASY_ACCESS_NUMBER_OF_NODES. На начальном экране есть возможность ограничить поиск только по диалоговым и действующим пользователям, у которых стоит в настройках показывать меню пользователя, а так же указать пограничное количество пунктов меню (рис. 2).
Рис. 2. Начальный экран отчета EASY_ACCESS_NUMBER_OF_NODES. |
В предыдущих версиях системы был другой отчет - PROFGEN_CORR_REPORT_5. Начальный экран имеет похожий набор фильтров и параметров (рис. 3).
Рис. 3. Начальный экран отчета PROFGEN_CORR_REPORT_5. |
Результатами работы программы будет список пользователей, отсортированных по количеству пунктов в меню (рис. 4).
Рис. 4. Список пользователей с большим количеством пунктов меню. |
Как можно облегчить нагрузку на систему со стороны таких пользователей? SAP предлагает несколько решений.
- Можно отключить пользовательские меню для всех в системе. Для этого достаточно в таблице SSM_CUST параметру ALL_USER_MENUS_OFF присвоить значение "YES". После этого у всех пользователей в системе будет только стандартное меню SAP, которое, к слову, содержит меньше 2 000 пунктов. Данную настройку я подробно описывал в этом посте. В этом случае есть возможность выделить и сохранить нужные транзакции в подразделе "Фавориты".
- Можно принудительно выставить для всех пользователей в системе меню SAP, как меню по-умолчанию при открытии первоначального логина в систему или нового режима. В данном случае, у пользователя останется возможность открыть своё личное меню через соответствующую кнопку на панели основного экрана SAP GUI, но при открытии нового режима будет открываться именно стандартное меню SAP. Для этого необходимо в таблице SSM_CUST параметру FORCED_MENU присвоить значение "SAP".
- Можно отключить пользовательское меню только для конкретных пользователей. Например, для тех, что были обнаружены отчетом EASY_ACCESS_NUMBER_OF_NODES (рис. 4). Для этого в таблице USERS_SSM необходимо добавить имя пользователя и выбрать тип предпочитаемого для него меню (SAP) (рис. 5).
Рис. 5. Настройка типа меню для каждого пользователя индивидуально.
- Если вы не можете отказаться от меню пользователя, то можно активировать систему сжатия и удаления избыточности в меню. Активация производится через набор параметров, выставляемых в таблице SSM_CUST. Кратко механизм можно описать так: система удаляет дубликаты транзакций из разных папок, затем удаляет пустые папки и, в конце, объединяет содержимое папок с одинаковыми именами. Подробности можно найти в SAP note # 357693 - Redundacy avoidance in Easy Access.
- Так же можно для пользователей, которым необходимо большое количество полномочий, создать групповую роль. В меню групповой роли считываются все меню, присвоенных ей ролей. После создания меню групповой роли можно оптимизировать, например, нажав пункт "Свернуть меню" в транзакции PFCG (рис. 6).
Рис. 6. Опция "Свернуть меню" при создании групповой роли.
Еще дополнительно по данной теме можно заглянуть в следующие SAP notes:
- # 380029 - FAQ: Customizing of SAP Easy Access,
- # 203617 - High memory consumption with SAP Easy Access menu.
Комментариев нет:
Отправить комментарий