Предлагаю поделиться опытом по вопросу полномочий при переводе сотрудника.
Мой выход. Есть один табельный номер, который был переведен между двумя БЕ/РП. Назовем условно БЕ1, БЕ2, и, соответственно, кадровик 1, кадровик 2. Есть данные по деньгам — ИТ0008, который мы хотим показывать только тому кадровику и в том объеме, на которую БЕ у него есть полномочия.
Стандартная система работает так. Кадровик 1 увидит только свою информацию. Кадровик 2 увидит свою и Кадровика 1. Все дело в одной проверке в стандартном классе проверки полномочий CL_HRPAD00AUTH_CHECK_STD->CONSIDER_SY_DATUM. Здесь в коде прописана такая логика, что полномочия предоставляются на дату СЕГОДНЯ МИНУС КОЛВО ДНЕЙ ИЗ T77S0 (AUTSW ADAYS) по дату оргприсвоения. Соответственно, первый кадровик увидит только свое, второй все.
Вопрос в этом кусочке кода:
IF READ_LEVELS CS LEVEL.
* Read access.
DESCRIBE TABLE AUTHORIZATION_PERIODS_TAB.
* The table is assumed to be normalized hence the last entry
* will have the highest ENDDA.
READ TABLE AUTHORIZATION_PERIODS_TAB INTO PERIOD INDEX SY-TFILL.
CLEAR AUTHORIZATION_PERIODS_TAB.
PERIOD-BEGDA = LOW_DATE.
* If SY_DATUM is not after the highest ENDDA + ADAYS, then grant
* authorization until HIGH_DATE.
IF SY_DATUM_MINUS_ADAYS <= PERIOD-ENDDA.
PERIOD-ENDDA = HIGH_DATE.
ENDIF. " SY_DATUM_MINUS_ADAYS <= PERIOD-ENDDA.
APPEND PERIOD TO AUTHORIZATION_PERIODS_TAB.
ELSE. " READ_LEVELS CS LEVEL.
Единственный способ полностью отключить возможность просмотра конфиденциальной информации, это переопределить весь класс и исключить вызов этого метода для определения периодов доступа к данным.
Вторая заметка. В ракурсе настройки инфотипов V_T582A-VALDT есть поле "Полномоч/Доступ" (VALDT), которое определяет как будет работать вышеуказанный метод. Если для инфотипа галочка снята, то система не анализирует текущую дату и предоставляет полномочия на все периоды! Если галочка стоит, то в работу включается параметр КОЛВО ДНЕЙ ИЗ T77S0 (AUTSW ADAYS) для определения, сколько дней кадровик 2 может видеть данные кадровика 1. Но это не касается самого последнего перевода.