BAPI_USER_LOCK・BAPI_USER_UNLOCKでSAPユーザーをロックする方法

SAPユーザーをプログラムからロック・解除する場合、BAPI_USER_LOCKとBAPI_USER_UNLOCKが使われます。用途は退職・休職などのライフサイクル管理や、承認された一時停止です。ロック解除は本人確認と承認を要する運用操作として扱います。

呼び出しの基本

USERNAMEに対象ユーザーIDを指定します。結果はSY-SUBRCだけでなく、BAPIのRETURNメッセージを確認します。利用可能なインターフェースは対象システムのSE37で確認してください。

DATA lt_return TYPE TABLE OF bapiret2.

CALL FUNCTION 'BAPI_USER_LOCK'
  EXPORTING username = lv_username
  TABLES    return   = lt_return.

LOOP AT lt_return INTO DATA(ls_return).
  IF ls_return-type = 'E' OR ls_return-type = 'A'.
    " エラーを記録し、後続処理を中止
  ENDIF.
ENDLOOP.

ロック解除は同じ考え方でBAPI_USER_UNLOCKを呼びます。成功と判断する前にRETURNとSU01の状態を確認し、必要なコミット処理は対象システムのBAPI仕様に従って検証します。

運用上の確認

  1. 依頼者・承認者・対象ユーザー・理由・実行日時を記録する。
  2. 管理者や技術ユーザーを一括処理で誤ってロックしないよう除外条件を設ける。
  3. 現在のロック状態、接続中セッション、他の認証管理との連携を確認する。
  4. 解除時は原因(誤入力、管理者ロック等)を区別し、必要な場合はパスワードや認証方式も確認する。

権限不足やユーザー不存在時のエラーもテストします。広範囲の一括ロックは業務停止につながるため、テスト環境で対象一覧と件数を先に確認します。

参考・関連記事

関連記事

PAGE TOP