IF SY-SUBRC 0.
message i124(01) with newusrid.
exit.
ENDIF.
SELECT SINGLE * FROM TRDIR WHERE NAME = P_REPORT.
PERFORM AUTHORITY_CHECK(SAPLSVAR) USING L_SUBRC.
IF L_SUBRC NE 0.
MESSAGE I626(DB) WITH TRDIR-SECU.
EXIT.
ENDIF.
SELECT * FROM VARID CLIENT SPECIFIED
WHERE MANDT = ‘000’
AND REPORT = p_report
AND VARIANT in s_varian
AND VARIANT LIKE ‘CUS&%’.
IF SY-SUBRC = 0.
varid-aename = newusrid.
update varid client specified.
else.
MESSAGE E268(DB) WITH P_REPORT.
endif.
ENDSELECT.
write: / ‘THE OWNERSHIP OF FOLLOWING VARIANTS ARE CHANGED ‘.
SELECT * FROM VARID CLIENT SPECIFIED
WHERE MANDT = ‘000’
AND REPORT = p_report
AND VARIANT in s_varian.
write: / varid-report, varid-variant.
ENDSELECT.
BuXPb
Все эти способы известны. Спасибо.
Комментарий оставил только с точки зрения уточнения работы этого отчета 🙂
5 комментариев
BuXPb
Работает только для пользовательских вариантов. Для вариантов SAP& и CUS& к сожалению не работает 🙁
VirVit
Для системных можно снять защиту вот так http://saphr.ru/2012/03/28/delete_variant/
Роман Величко
Смотрите SAP ноту для этого 709619.
Роман Величко
Solution
A report is provided below, which you can use to transfer the protection attribute of the CUS&… system variants from user A to user B.
REPORT Z_SYSVAR_OWNER_CHANGE .
TABLES: VARID, TRDIR.
DATA: L_SUBRC LIKE SY-SUBRC.
parameters: p_report like varid-report obligatory.
select-options: s_varian for varid-variant.
parameters: newusrid like varid-aename.
CALL FUNCTION ‘SUSR_USER_CHECK_EXISTENCE’
EXPORTING
USER_NAME = newusrid
EXCEPTIONS
USER_NAME_NOT_EXISTS = 1
OTHERS = 2 .
IF SY-SUBRC 0.
message i124(01) with newusrid.
exit.
ENDIF.
SELECT SINGLE * FROM TRDIR WHERE NAME = P_REPORT.
PERFORM AUTHORITY_CHECK(SAPLSVAR) USING L_SUBRC.
IF L_SUBRC NE 0.
MESSAGE I626(DB) WITH TRDIR-SECU.
EXIT.
ENDIF.
SELECT * FROM VARID CLIENT SPECIFIED
WHERE MANDT = ‘000’
AND REPORT = p_report
AND VARIANT in s_varian
AND VARIANT LIKE ‘CUS&%’.
IF SY-SUBRC = 0.
varid-aename = newusrid.
update varid client specified.
else.
MESSAGE E268(DB) WITH P_REPORT.
endif.
ENDSELECT.
write: / ‘THE OWNERSHIP OF FOLLOWING VARIANTS ARE CHANGED ‘.
SELECT * FROM VARID CLIENT SPECIFIED
WHERE MANDT = ‘000’
AND REPORT = p_report
AND VARIANT in s_varian.
write: / varid-report, varid-variant.
ENDSELECT.
BuXPb
Все эти способы известны. Спасибо.
Комментарий оставил только с точки зрения уточнения работы этого отчета 🙂