!--a11y-->

以下の命令を使用して、アプリケーションサーバ上の順次ファイルにアクセスします。
キ OPEN DATASET
キ READ DATASET
キ TRANSFER
キ DELETE DATASET
このとき、ユーザの権限が権限オブジェクト S_DATASET で自動的にチェックされます。
このオブジェクトを使用すると、特定のプログラムの特定のファイルに権限を割り当てることができます。権限を割り当てて、オペレーティングシステムコマンドをファイルフィルタとして使用することもできます。

ABAP ファイルへの一般的なアクセス権の制御、つまりユーザ依存の権限チェックには S_DATASET を使用しないでください。代わりに、テーブル SPTH を使用します ( ファイルアクセスの一般チェックを参照) 。
オブジェクトS_DATASET は、以下の項目で構成されています。
キ ABAP プログラム名
アクセスが許可される ABAP プログラムの名称。これにより、そのタスクの少数のプログラムにファイルアクセスを明確に限定することができます。
キ アクティビティ
使用可能な値は以下のとおりです。
33: 通常のファイル読込
34: 通常のファイル書込または削除
A6: フィルタによるファイル読込 ( オペレーティングシステムコマンド)
A7: フィルタによるファイル書込 ( オペレーティングシステムコマンド)
キ ファイル名
オペレーティングシステムファイルの名称これにより、アクセス可能なファイルを制限することができます。
権限オブジェクトの詳細については、「ユーザと権限」文書を参照してください。

自動権限チェックの結果が不可の場合は、実行時エラーが発生します。
そのため、ABAP プログラムで権限チェックを実行した後に、汎用モジュール AUTHORITY_CHECK_DATASET でファイルにアクセスするようにします。
この汎用モジュールを使用すると、ファイルを開く前にそのファイルに対するユーザのアクセス権限の有無をチェックすることができます。この汎用モジュールによって、自動権限チェック時の実行時エラーの発生を回避することができます。
この汎用モジュールには、以下のインポートパラメータがあります。
キ PROGRAM
ファイルを開く ABAP プログラムの名称。プログラム名を指定しない場合は、現在のプログラム名が使用されます。
キ ACTIVITY
アクセスタイプ。使用可能な値は以下のとおりです。
- READ: ファイル読込
- WRITE: ファイル変更
- READ_WITH_FILTER: フィルタ機能によるファイル読込
- WRITE_WITH_FILTER: フィルタ機能によるファイル書込
- DELETE: ファイル削除
これらの値は、データ型グループ SABC の定数として以下のように定義することができます。
TYPE-POOL SABC .
CONSTANTS:
SABC_ACT_READ(4)
VALUE 'READ',
SABC_ACT_WRITE(5) VALUE
'WRITE',
SABC_ACT_READ_WITH_FILTER(16) VALUE
'READ_WITH_FILTER',
SABC_ACT_WRITE_WITH_FILTER(17) VALUE 'WRITE_WITH_FILTER',
SABC_ACT_DELETE(6)
VALUE 'DELETE',
SABC_ACT_INIT(4)
VALUE 'INIT',
SABC_ACT_ACCEPT(6)
VALUE 'ACCEPT',
SABC_ACT_CALL(4)
VALUE 'CALL'.
キ FILENAME
アクセスするファイルの名称

TYPE-POOLS SABC.
.....
CALL FUNCTION 'AUTHORITY_CHECK_DATASET'
EXPORTING PROGRAM =
SY-REPID
ACTIVITY
= SABC_ACT_READ
FILENAME
= '/tmp/sapv01'
EXCEPTIONS NO_AUTHORITY =
1
ACTIVITY_UNKNOWN
= 2.
......
この汎用モジュールコールでは、現在のプログラムがファイル '/tmp/sapv01' にアクセス可能かどうかがチェックされます。