権限チェックのプログラミング
プログラマが、得意先の予約を変更する前の権限チェックを行おうとしています。
そのために、プログラマは、権限項目の登録 (ACTVT および CUSTTYPE) と、各定義項目に対してチェックすべき値の割当(02, B) を行う必要があります。権限項目は、ツール → ABAP ワークベンチ → 開発 → 他のツール → 権限オブジェクト → 項目 (トランザクション SU20) で登録されます。
プログラマは、権限オブジェクトの登録 (ここでは S_TRVL_BKS) とオブジェクトクラスへの権限オブジェクトの割り当ても行う必要があります。
権限項目は、ツール → ABAP ワークベンチ → 開発 → 他のツール → 権限オブジェクト → オブジェクト (トランザクション SU21) で登録されます。権限オブジェクトは、オブジェクトナビゲータ (トランザクション SE80) でも登録することができます。
ABAP 命令 AUTHORITY-CHECK を使用して、権限チェックをプログラミングします。
AUTHORITY-CHECK OBJECT'S_TRVL_BKS'
ID'ACTVT'
FIELD'02'
ID'CUSTTYPE' FIELD'B'
IF
SY-SUBRC <> 0.
MESSAGE E...
ENDIF.
AUTHORITY-CHECK によって、ユーザが特定のアクティビティを実行するのに適切な権限を持っているかどうかがチェックされます。
その際、ユーザマスタレコードの権限プロファイルが適切な権限オブジェクト S_TRVL_BKS) に対してチェックされます。この権限が存在し、それに正しい値が含まれていた場合は、このチェックは正常に終了します。
システム管理者は、権限オブジェクト S_TRVL_BKS に以下の権限を定義しました。
● 次の値を持つ S_TRVL_CUS1:
* 得意先タイプ (項目 CUSTTYPE)
03 アクティビティ (項目 ACTVT)
この権限を持つユーザは、すべての得意先の予約を照会することができます (アクティビティ 03 = 照会)。
● 次の値を持つ S_TRVL_CUS2:
B 得意先タイプ (CUSTTYPE)
02 アクティビティ (ACTVT)
この権限を持つユーザは、すべての企業得意先を変更することができます (アクティビティ 02 = 変更)。
プロファイルを割り当てる際に、システム管理者はユーザごとに異なる権限を与えました。
ユーザ Miller には、これら両方の権限 (S_TRVL_CUS1 と S_TRVL_CUS2) を含むプロファイルが割り当てられています。したがって、Miller は得意先の予約を変更することができます。
一方、ユーザ Meyers が持っている権限はレコードの照会権限 (S_TRVL_CUS1) のみであるため、予約の変更を行なうことはできません。