AS400物理ファイルと論理ファイルの違い|PF・LF・DDS・DSPFDの確認

PF、LF、DDS(データ記述仕様)、DSPFD、DSPFFDを軸に、RPGのCHAIN、READ、SETLLとファイル定義の関係を確認できるようにしています。

AS400 / IBM i の保守では、物理ファイルと論理ファイルの違いを理解していないと、RPGの読み方を間違えやすくなります。物理ファイルは実データを持つファイル、論理ファイルはそのデータを別の見方で参照するための定義です。

この記事では、PF、LF、DDS、キー、アクセスパス、RPGのCHAIN / READ / SETLLとの関係を、現場での確認順に整理します。

物理ファイルや論理ファイルに入る前に、AS400とIBM iの全体像を確認したい場合は、AS400とは何かを初心者向けに整理した記事 から読むと用語をつなげやすくなります。

同名ファイルを取り違えずに定義を比べる

以下は架空の検証用ファイルです。ライブラリ名を省略せず、PFとLFで何が違うかを記録します。

DSPFFD FILE(TESTLIB/ORDERPF)
DSPFFD FILE(TESTLIB/ORDERLF)
DSPFD FILE(TESTLIB/ORDERLF) TYPE(*ACCPTH)
DSPFD FILE(TESTLIB/ORDERLF) TYPE(*SELECT)

DSPFFDでは項目と型を、DSPFDではキー順や選択・除外条件を確認します。定義に該当する条件がある場合は、同じ伝票がPFでは見えてLFでは見えない理由を説明できるかを確認します。条件がないLFもあるので、名前だけで絞り込みを決めつけません。IBM公式:DSPFDで確認できる情報

物理ファイルと論理ファイルの違い

種類役割保守で見ること
物理ファイル実データを保持する項目定義、データ件数、更新対象かどうか
論理ファイル物理ファイルを別のキーや条件で見るキー順、選択条件、参照元PF
DDSPF/LFの定義を記述するフィールド、桁数、キー、参照関係
アクセスパスレコードを取り出す経路。到着順とキー順がある使用する経路、順序、再作成、性能への影響を確認する

RPGから見たPF/LF

RPGが物理ファイルを直接読んでいるとは限りません。ソース上のファイル名がLFの場合、CHAIN や SETLL のキーはLFのキー定義に従います。データが存在するのに見つからない時は、RPGだけでなくLFのキーと選択条件を確認します。

読み方の概念例(コンパイル用ソースではありません)
1. ORDERL1をキー付き入力ファイルとして宣言する
2. CUSTNOでSETLLし、読み始める位置を決める
3. 同じキーの次のレコードをREADEで読む

PFとLFの関係は、定義の説明だけでは頭に入りません。既存のDDSとRPGを突き合わせて「このCHAINはどのアクセスパスを使っているのか」を追う作業が要ります。Codexを使ったソース読解と人のレビューをチームで練習したい場合は、AS400 / IBM i現場向けCodex実践研修の内容を確認してください。

保守で確認するコマンド

コマンド確認内容使う場面
DSPFDファイル属性、キー、メンバーPF/LFの定義を確認する
DSPFFDフィールド定義桁数、型、フィールド名を確認する
DSPDBR依存関係PFに紐づくLFを確認する
DSPPFMデータ内容少量のデータを直接確認する
WRKOBJLCKロック状況更新できない、待ちになる時

PF/LFでよくある障害

  • RPGはLFを見ているのに、PFだけ確認してしまう
  • LFのキー順が想定と違い、READやREADEの範囲がずれる
  • 同じファイル名が本番・検証ライブラリに存在する
  • DDSの桁数変更後にRPGを再コンパイルしていない
  • アクセスパス再作成やロックでバッチが遅くなる

ジョブログと合わせて見る

ファイルが見つからない、レコードロックで待つ、数値変換で落ちる、フィールドが合わないといった障害はジョブログにヒントが出ます。PF/LFの調査は ジョブログ確認、RPG側の読み方は RPG保守ポイント とセットで見ると確実です。

受注照会をPFとLFから追う想定例

たとえば受注データは存在するのに照会画面へ出ない場合、画面が参照するLF名だけを見てデータ欠損と判断しないようにします。PF、LF、キー、選択条件を順番に確認します。

確認点確認内容判断
入口RPGのF仕様やDCL-Fで使うファイル名とライブラリを確認する同名ファイルやライブラリ違いを先に除外する
定義DSPFDやDDSで基礎物理ファイル、キー、選択条件を確認するLFごとの抽出条件や並び順の違いを見分ける
データ対象キーをPFとLFの両方で照合するPFに存在してLFに出ないなら選択条件やキーを疑う

LFを作り直したりデータを直接修正したりする前に、対象レコードが選択条件を満たすかを確認します。調査記録には、見たライブラリ、PF、LF、キー値、確認時刻を残します。

まとめ

項目追加やキー変更の前には、対象ファイルを使うRPG、CL、画面、帳票、夜間バッチまで調べます。PF/LFの定義だけでは、変更による利用先への影響は確定できません。

物理ファイルは実データ、論理ファイルは見方やキーを変える定義です。AS400 / IBM i の保守では、RPGのファイル名、PF/LFの関係、DDS、ライブラリリスト、ジョブログをつなげて確認することが重要です。