DSPFFD・DSPPFMの違い|AS400でファイル定義とデータを確認する

AS400(IBM i)の保守で、物理ファイルや論理ファイルを調べる時に使う代表的な画面が DSPFFD と DSPPFM です。

どちらもファイルを確認するコマンドですが、見ているものは違います。DSPFFDはフィールド定義、DSPPFMは物理ファイルのメンバー内容を見る画面です。初心者のうちは名前が似ていて混乱しやすいですが、保守では役割を分けて覚えると調査がかなり楽になります。

AS400のDSPFFDでフィールド定義を表示した画面
DSPFFDの出力例。フィールドごとにデータタイプ(CHAR、ZONED)、フィールド長、バッファー位置、カラムの見出しが並びます。受注番号がCHAR(10)、受注日がZONED(8)といった桁数と属性は、ここで確認します。

対象ライブラリとメンバーを明示して表示する

次は架空の検証用名称を使った表示例です。自社で閲覧を許可された対象に置き換え、接続先を確認してから実行します。

DSPFFD FILE(TESTLIB/ORDERPF)
DSPFD FILE(TESTLIB/ORDERPF) TYPE(*MBRLIST)
DSPPFM FILE(TESTLIB/ORDERPF) MBR(TESTMBR)

DSPFFDで項目の型と桁を、DSPFDでメンバー名を確認してから、DSPPFMでそのメンバーを表示します。DSPPFMはキー順ではなく到着順の表示です。文字/16進表示なので、パック数値などが帳票のような数値表記にならないことがあります。文字化けやデータ破損と即断せず、定義と表示方法を照合してください。IBM公式:DSPPFM、IBM公式:データ表示時のパック数値について

DSPFFDとDSPPFMの違い

コマンド見るもの現場で使う場面
DSPFFDフィールド定義、桁数、型、見出しなどRPG修正、帳票修正、外部連携項目の確認
DSPPFM物理ファイルのメンバー内データ処理前後のデータ確認、単体テスト、障害調査

DSPFFDで見るところ

DSPFFDは、ファイルのフィールド定義を確認する時に使います。RPGやCLの保守では、ソースだけを見ていても、実際のファイル定義とズレていることがあります。DSPFFDでは桁数、属性、フィールド名を確認します。キーの順序や重複可否はDSPFD TYPE(*ACCPTH)などのアクセス・パス情報で調べます。

AS400のDSPFFD画面。ファイルのフィールド定義を確認する例
DSPFFDは、フィールド定義を確認する画面です。桁数、型、フィールド名を見て、ソースや帳票、外部連携とのズレを調べます。

DSPFFDの出力項目は多いため、最初はフィールド名、桁数、データ型、小数桁を確認します。フィールドのテキストや参照情報も確認し、キー情報が必要な場合はDSPFD TYPE(*ACCPTH)の結果と照合します。すべてを暗記するのではなく、目的に必要な項目をIBM公式資料で確認できるようにしておくことが大切です。

AS400のDSPPFMで物理ファイルのレコードを表示した画面
DSPPFMの出力例(値はマスクしています)。DSPFFDが「定義」を見るのに対し、DSPPFMは「実際に入っているデータ」を見ます。上部にファイル名、ライブラリー、メンバー名が出るので、対象を取り違えていないかをここで確認します。

DSPPFMで見るところ

DSPPFMは、物理ファイルの中身を確認する画面です。処理後にデータが作成されたか、更新されたか、想定外の値が入っていないかを見る時に使います。

ただし、本番環境でDSPPFMを見る時は、対象ライブラリと対象ファイルを必ず確認します。画面を見るだけでも、権限や運用ルールによっては注意が必要です。

AS400のDSPPFM画面。物理ファイルのメンバー内容を表示する例
DSPPFMは、物理ファイルのメンバー内容を確認する画面です。単体テストや障害調査では、処理前後のデータ確認に使います。

保守での確認順

順番確認すること判断すること
1対象ライブラリ本番、テスト、開発のどこを見ているか
2対象ファイルPFかLFか、見たいファイルが正しいか
3DSPFFD桁数、型、フィールド名がソースと合っているか
4DSPPFM実データが想定通りか
5関連処理RPG、CL、帳票、外部I/Fに影響がないか

初心者がやりがちなミス

初心者がやりがちなのは、DSPPFMで見えたデータだけで判断してしまうことです。実データを見ることは大事ですが、その項目が何桁で、どの型で、どの論理ファイルから参照されるのかを知らないと、正しい判断ができません。

もう1つは、ライブラリを確認せずに見ることです。AS400では同じ名前のファイルが複数のライブラリに存在することがあります。テスト環境のつもりで本番相当のライブラリを見ていた、またはその逆だった、という事故を避けるためにも、対象ライブラリは必ず確認します。

現場で多い確認場面

  • 画面の項目とファイル項目が合っているか確認する
  • 帳票の桁あふれや文字切れの原因を調べる
  • CSV出力前に項目の型と桁数を確認する
  • RPG修正時に参照項目の定義を確認する
  • EDI連携で相手先の桁数とズレていないか見る

参考:IBM公式ドキュメント(DSPFFD)

本記事で扱った DSPFFD の全パラメーターと表示項目の定義は、IBM公式ドキュメントで確認できます。指定できる値や既定値はOSリリースによって異なるため、本番環境では自社のリリースに合わせて確認してください。