Так оказалось, что в транзакции переключения открытых периодов OB52 не предполагается разделение полномочий по БЕ (или вариантам периодов проводки). Но что делать, если у нас очень много БЕ и мы не готовы возложить такую ответственность на кого-либо.
Как добиться?
Вариант 1. Собственная разработка
Можно сделать собственную ABAP-разработку. На первый взгляд кажется, что если организовать прямые операции чтения и записи в стандартную таблицу T001B, то всё получится. Кроме этого можно добавить туда понятливости и красоты, чего нет в стандартной транзакции ну ни на грамм. Обычный человек в OB52 пугается без хорошей инструкции.
Минусы: большой объём разработки, прямая работа со стандартными таблицами.
Плюсы: при грамотном подходе можно повысить удобство, наглядность, контроль и автоматизацию.
Вариант 2. Скопировать ведение
Транзакция OB52 – это всего лишь вызов ведения SM30 с ракурсом ведения V_T001B. Поэтому можно скопировать ракурс, сгенерировать для него своё ведение и повесить туда нужное событие.
Минусы: копии стандартных объектов разработки.
Плюсы: будет работать.
Вариант 3. Использовать организационные критерии и объект полномочий S_TABU_LIN
Можно сделать настройки и OB52 будет уметь работать с учётом полномочий. Вот об этом я сейчас расскажу подробнее.
Сначала нужно определить организационный критерий в SPRO:
SAP NetWeaver –> Сервер приложений –> Системное администрирование –> Пользователи и полномочия –> Полномочия по строкам –> Определение организационных критериев (SM34:CL_ORGCRIT)
Сначала добавляем новый организационный критерий BUKRS.
Создаём записи атрибутов. В данном случае я решил заодно решил похожий метод распространить на ещё одну таблицу.
К сожалению, пришлось сделать по одному атрибуту на каждую таблицу.
К атрибуту привязываем поля таблицы (V_T001B-BUKRS):
После этого критерий надо активировать там же рядом в SPRO:
SAP NetWeaver –> Сервер приложений –> Системное администрирование –> Пользователи и полномочия –> Полномочия по строкам –> Активация организационных критериев (SM30:V_ORGCRACT)
После этого надо добавить объект полномочий S_TABU_LIN в роль.
После этого можно пробовать всё это в деле. Работает почти незаметно: если нет полномочий на просмотр, то записи просто не будет в списке. Если изменить ключ на запретный, то при сохранении будет выведена ошибка.
Минусы: ограниченное количество атрибутов и невозможность привязать несколько таблиц к одному атрибуту.
Меня несколько обнадёживает сообщение при попытке привязать несколько таблиц к одному атрибуту: “Несколько табличных полей на атрибут: это пока не поддерживается” (SV765). Видимо надо или обновиться, или подождать. Но не факт, что имеется в виду.
Плюсы: Только настройка, только стандарт.
Жаль только, что красивее и понятнее эта транзакция не стала.
Как-то на меня наложили обязанность ведения этой таблички для всей компании в соответствии с регламентом. А именно более 100 БЕ (около 120 на тот момент) и у каждой более 10 диапазонов счетов, т.к. закрытие квартала отличается от закрытия обычного периода, а закрытие года — это отдельная песня.
Т.е. несколько тысяч записей нужно было прошерстить и вручную изменить часть из них. Делать это надо было за пару часов.
Понаслаждавшись этим 1 раз, я решила автоматизировать хоть как-то данный процесс.
Написала LSMW проект: рекординг OB52 1. шаг позиционирование на конкретной записи, 2. шаг изменение записи.
Выгрузка таблицы T001B в Excel
Подготовка загрузочника
Хоть как-то выкрутилась, но вообще безумно не удобная настройка. Особенно для больших компаний.
Спасибо за статью.
Ввести объект полномочий и раздать поддержку в местные службы поддержки это здорово.
Правда, я так понимаю, что при ведении таблица блокируется полностью независимо от полномочий? ;)