24 октября 2016 г.

Вопросы производительности при использовании больших меню в SAP

В комментариях к одному из прошлых постов ("Как понять каких полномочий не хватает пользователю?") Zeroes поднял вопрос производительности системы при использовании меню. Сегодня мне хотелось бы немного осветить эту тему.

В 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 предлагает несколько решений.
  1. Можно отключить пользовательские меню для всех в системе. Для этого достаточно в таблице SSM_CUST параметру ALL_USER_MENUS_OFF присвоить значение "YES". После этого у всех пользователей в системе будет только стандартное меню SAP, которое, к слову, содержит меньше 2 000 пунктов. Данную настройку я подробно описывал в этом посте. В этом случае есть возможность выделить и сохранить нужные транзакции в подразделе "Фавориты".
  2. Можно принудительно выставить для всех пользователей в системе меню SAP, как меню по-умолчанию при открытии первоначального логина в систему или нового режима. В данном случае, у пользователя останется возможность открыть своё личное меню через соответствующую кнопку на панели основного экрана SAP GUI, но при открытии нового режима будет открываться именно стандартное меню SAP. Для этого необходимо в таблице SSM_CUST параметру FORCED_MENU присвоить значение "SAP".
  3. Можно отключить пользовательское меню только для конкретных пользователей. Например, для тех, что были обнаружены отчетом EASY_ACCESS_NUMBER_OF_NODES (рис. 4). Для этого в таблице USERS_SSM необходимо добавить имя пользователя и выбрать тип предпочитаемого для него меню (SAP) (рис. 5).

    Рис. 5. Настройка типа меню для каждого пользователя индивидуально.

  4. Если вы не можете отказаться от меню пользователя, то можно активировать систему сжатия и удаления избыточности в меню. Активация производится через набор параметров, выставляемых в таблице SSM_CUST. Кратко механизм можно описать так: система удаляет дубликаты транзакций из разных папок, затем удаляет пустые папки и, в конце, объединяет содержимое папок с одинаковыми именами. Подробности можно найти в SAP note # 357693 - Redundacy avoidance in Easy Access.
  5. Так же можно для пользователей, которым необходимо большое количество полномочий, создать групповую роль. В меню групповой роли считываются все меню, присвоенных ей ролей. После создания меню групповой роли можно оптимизировать, например, нажав пункт "Свернуть меню" в транзакции PFCG (рис. 6).

    Рис. 6. Опция "Свернуть меню" при создании групповой роли.

Еще дополнительно по данной теме можно заглянуть в следующие SAP notes:

Автор: Шиболов Вячеслав Анатольевич


Комментариев нет:

Отправить комментарий