【ABAP】DELETE DATASET命令を1分で解説

ABAP

CLOSE DATASET命令の使い方を1分で解説します。書き方は簡単で以下のようにコーディングするだけ。

DELETE DATASET (ファイル名).

構文や処理内容自体は非常に簡単なので、このページではDELETE DATASET命令のサンプルコードや使いどころを中心に解説します。

このページで学べる内容
  • DELETE DATASET命令の使い方
    • DELETE DATASET命令を用いたサンプルコード
    • DELETE DATASET命令の注意点・使いどころ

ABAPerであれば、知っておいて損はない基本知識の1つです。是非最後までご覧ください。

スポンサーリンク

DELETE DATASET命令

DELETE DATASET (ファイル名).

DELETE DATASET命令は、指定したファイルを削除する命令です。

サーバー上に存在するファイルのみが削除できます。

ユーザのローカルに存在するようなファイルを削除するような処理ではありませんので注意が必要です。

file = '/usr/sap/sample.txt'.

DELETE DATASET file.

ファイルは開いていても閉じていても削除可能

CLOSE DATASET命令READ DATASET命令の場合、ファイル操作を行う場合には必ずOPEN DATASET命令を用いてファイルを開いておく必要がありましたが、DELETE DATASET命令の場合はその必要がありません。

今開いているファイルでも、閉じられているファイルでも削除することが可能です。

file1 = '/usr/sap/sample1.txt'.
DELETE DATASET file1.

WRITE SY-SUBRC. ⇒ 0
file2 = '/usr/sap/sample2.txt'.

* ファイルオープン「sample2.txt」
OPEN DATASET file.

DELETE DATASET file1.
WRITE SY-SUBRC. ⇒ 0
OPEN DATASET命令とは?

OPEN DATASET命令は、サーバー上のファイルを開く(オープンする / 掴む)命令です。

ABAPでファイルにレコードを書き込んだり読み取りを行う場合は、必ず最初にファイルオープンが必要です。

OPEN DATASET (ファイル) FOR (アクセスタイプ) IN (格納タイプ).
OPEN DATASET命令の基本
  • 開くファイルを指定
  • アクセスタイプの指定(読み取りモード?上書きモード?)
  • 格納タイプの指定(バイナリで開く?テキストで開く?)
OPEN DATASET FILE_PATH
  FOR INPUT
  IN TEXT MODE .

詳しい構文ルールや使い方は下記のページで解説しております。

リターンコード(SY-SUBRC)

DELETE DATASET命令で返されるSY-SUBRCの値は0か4のどちらかです。

リターンコード
  • 0・・・ファイル削除に成功
  • 4・・・ファイル削除に失敗

例えば、指定したファイルが存在しない、ファイルを削除する権限が存在しない、などの場合にSY-SUBRCが4となります。

DELETE DATASET命令の難点の1つですが、仮にファイル削除に失敗したとしてもその理由を知るすべがないという点に注意しましょう。

SY-SUBRCが4で返ってきたとしても、ファイルがなかったから削除できなかったのか?それとも、それ以外の理由で削除できなかったのか?という点をDELETE DATASET命令単独では知る術がありません。

一部例外として、ファイルの処理権限がない場合のみ「OPEN_DATASET _NO_AUTHORITY」という例外がトリガーされます。

そのため、ファイルの削除等は外部コマンドの仕組みを活用する方が件名な場合がありますので、よく検討するようにしましょう。

外部コマンド

外部コマンドとは、その名の通りSAP上からOSコマンド(LinuxやAIXなど)やバッチやシェルを動かすときに利用する機能です。

サーバー上に配置されているファイル名称を取得したい!(Linuxのlsコマンド)場合や、ABAPからFTP連携できる仕組みを実現したい!といった場合に外部コマンドが活躍します。

SAP / ABAPを1から学習したい方は

SAP / ABAPを1から学習したい初心者の方向けに、できるだけ網羅的にABAPが理解できるよう以下ページに知識体系を整理しています。

特に初心者のうちは、どこから学べばよいか?どう勉強すれば良いか?すらわからない状態になりがち。

ある程度の知識を持ったうえで、はじめて実践的な理解へとつながります。

是非、一度ご覧になってみてください。

タイトルとURLをコピーしました