権限のチェックを行う[[ABAP]]命令。
* 概要 [#ye033c40]
[[アドオン]]にチェックを組み込む場合は、[[権限オブジェクト>権限管理/権限オブジェクト]]と[[権限項目>権限管理/権限項目]]を指定し、利用する。
権限を持たない場合は、SUBRCにゼロ以外が設定される。
** OBJECT、ID、FIELD [#q01bc6f6]
*** 用法 [#mfc7598e]
OBJECTには[[権限オブジェクト>権限管理/権限オブジェクト]]、IDには[[権限項目>権限管理/権限項目]]、FIELDには値を設定する。
*** サンプル [#n4aac89a]
# AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
# ID 'ACTVT' FIELD '03'
# ID 'BUKRS' FIELD P_BUKRS.
#
# IF SY-SUBRC <> 0.
# MESSAGE E800(FR) WITH P_BUKRS.
# ENDIF.
AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
ID 'ACTVT' FIELD '03'
ID 'BUKRS' FIELD P_BUKRS.
IF SY-SUBRC <> 0.
MESSAGE E800(FR) WITH P_BUKRS.
ENDIF.
** FOR USER(ユーザ) [#l647e396]
*** 用法 [#mfc7598e]
実行者以外のユーザで権限チェックしたい場合に使用する。
例えば、データをプールしておいてから一括処理する場合など。
*** サンプル [#n4aac89a]
# PARAMETERS
# P_USER TYPE SY-UNAME DEFAULT SY-UNAME.
#
# ATSELECTION-SCREEN.
#
# AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' FOR USER P_USER
# ID 'ACTVT' FIELD '03'
# ID 'BUKRS' FIELD P_BUKRS.
#
# IF SY-SUBRC <> 0.
# MESSAGE E800(FR) WITH P_BUKRS.
# ENDIF.
PARAMETERS
P_USER TYPE SY-UNAME DEFAULT SY-UNAME.
ATSELECTION-SCREEN.
AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' FOR USER P_USER
ID 'ACTVT' FIELD '03'
ID 'BUKRS' FIELD P_BUKRS.
IF SY-SUBRC <> 0.
MESSAGE E800(FR) WITH P_BUKRS.
ENDIF.
* その他 [#j1e88b95]
SUBRCに設定される値は、下記の通り。
|値|内容|h
|0|権限は正常であるか、 またはチェックが実行され ませんでした。権限オブジ ェクトに対する権限がユー ザマスタレコードにありま した。その値セットには、 指定された値が含まれています。|
|4|権限チェックは正常に 行われませんでした。実際 に、ユーザマスタレコード に権限オブジェクトに対する権限が 1 つ以上見つかり、それらの 権限には指定された値では なく値セットが含まれてい ます。または、正しくない 権限項目もしくは膨大な数の権限項目が指定されました。|
|12|ユーザマスタレコード には、権限オブジェクトに 対する権限がありませんでした。|
|24|見つかった権限項目が 正しくないか、または権限 項目の数が正しくありません。リリース 6.20 からは、このリターンコ ードは設定されなくなります。リリース 4.6 までは、 プロファイルパラメータ "auth/new_buffering" の値が 3 未満の場合に 限り、このリターンコードが設定されていました。|
|40|userに無効なユーザ ID が入力されています。|
~
~
CENTER:【スポンサードリンク】
#htmlinsert(amazon_book_sap_system_implement)
~
~
----
#pcomment(reply)