PR

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

ABAP

CLOSE DATASET命令の使い方を1分で解説します。

CLOSE DATASET (ファイル名).

構文は非常に簡単ですが、前提となるOPEN DATASET命令などの知識も必要となる命令です。

処理の内容的には非常に簡単ですが、いくつか注意点もありますので、このページで一歩深い知識まで頭に入れておくようにしましょう。

このページで学べる内容
  • 前提:OPEN DATASET命令
  • CLOSE DATASET命令の使い方
  • CLOSE DATASET命令の留意点

ABAPerであれば知らないと恥ずかしい基本知識です。是非最後までご覧ください。

スポンサーリンク

前提:OPEN DATASET命令

OPEN DATASET命令を理解している方は本章は読み飛ばしていただいてOKです。

前提となる内容ですが、サーバー上に存在するファイルを読み込んだり書き込んだりするためには、あらかじめOPEN DATASET命令を用いてファイルを開いておく必要があります。

OPEN DATASET命令とは?

OPEN DATASET命令は、サーバー上のファイル操作を行う命令です。

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

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

今回解説するCLOSE DATASET命令は、OPEN DATASET命令でオープンしたファイルを閉じる処理を行います。したがって、基本的にはOPEN DATASET命令とセットで用いる必要があるという点に注意しましょう。

ここから、CLOSE DATASET命令の解説です。

CLOSE DATASET命令

CLOSE DATASET (ファイル名).

CLOSE DATASET命令は、開かれているサーバ上のファイルを閉じます。

OPEN DATASET命令でファイルを開かれてから、CLOSE DATASET命令でファイルを閉じるまでの間、対象のファイルは常に参照・読み取り・書き込み可能な状態で掴まれている状態で存在しています。

尚、ファイルが既に閉じられている場合やファイルが存在しない場合、本命令は無視されます。その際、SY-SUBRCの値は「0」がリターンされます。

サーバ上のファイルオープンから、ファイルの読み込み、ファイルクローズまでの一連のサンプルコードがこちらです。

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

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

* ファイルの内容を内部テーブルに格納
WHILE SY-SUBRC = 0.
  READ DATASET file INTO LS_file LENGTH LEN.
  " 読み込んだレコードが0件の場合は処理を抜ける
  IF LEN = 0.
    EXIT.
  ENDIF.
  IF SY-SUBRC = 0.
    APPEND LS_FILE TO LT_FILE.
    CLEAR LS_FILE.
  ELSE.
    EXIT.
  ENDIF.
ENDDO.

* ファイルを閉じる
CLOSE DATASET file.
IF SY-SUBRC <> 0.
  ASSERT 1 = 2.
ENDIF.

ちなみに、CLOSE DATASET命令を用いてファイルを閉じなくても、プログラム終了時にファイルは自動的に閉じられます

したがって、サンプルコード最後の4行を記述しなくてもエラーが発生する確率は高くありません。が、ABAPのお作法の1つとしてCLOSE DATASET命令は必ず明示するようにしましょう。

READ DATASET命令
READ DATASET (ファイル名) INTO (変数).

READ DATASET命令は、(ファイル名)に指定したファイルからレコードを1行読み込み、(変数)にその内容を代入します。

詳細を以下の記事で解説しておりますので、合わせて学習しておきましょう。

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

初めてABAPを勉強するのは結構難しいですよね。

でもその悩みを抱えているのは一人じゃありません。全てのABAP使いが同じ道を進んできました。

ABAPをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?

あなたの技術、もっと価値ある場所で活かしませんか?
SAPエンジニアのキャリア支援はこちらから↓

No.1 > 外資系・IT業界などハイクラスの転職なら【アクシスコンサルティング】blank
4人に1人のコンサルタントが選ぶパートナー!
ビッグ4やアクセンチュアへの転職を実現し年収1000万へ。

No.2 > IT・Web転職特化エージェント【レバテックキャリアblank
blank
サービス利用者数20万人突破。

平均年収アップ率77%であなたの転職成功を保証します。

No.3 > blankリクルートエージェント
blank
\転職支援実績NO.1/

応募が殺到しすぎるが故に・・・非公開にせざるを得ない魅力的な求人が多数!

読者料典 【完全無料】ABAP:学習カリキュラム ←こちらから!

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
ABAPSAP
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました