論理ファイルは、物理ファイルによって表現される表を操作して得られる新しい表に相当します。RDBのテーブル(Table)から得られるビュー (view)みたいなものです。
論理ファイルは基になる物理ファイルを指定します。
選択項目、選択条件、レコードの並び順(アクセスパス)を指定します。
選択項目が同じ、つまり、同じレコード様式の場合は、レコード様式名も同じにします。
ここまではRDBのViewと同じですが、AS400の論理ファイルは、異なるレコード様式を持つことができます。
Viewを10レコードを読んだ時に1レコード目と2レコード目が異なる、つまり同じViewから呼んでもレコードによって列の構成(レコード様式)が異なるということです。
この場合はキーフィールドの指定順に従ってまず(受注見出しファイルから)受注番号順に、次いで同じ受注番号のレコードについては(受注明細ファイルから)受注明細行番号の順に並んだものが作成されます。
このようにするメリットはおそらくRPG側でデータのまとまりを判断しやすく、簡単に処理をするものだと思いますが、まだよく理解していません。
複数の物理ファイルからのフィールドを1つのレコード様式に結合した論理ファイルを結合論理ファイルといいます。RDBの複数のテーブルを結合して1つのビューを作成するのと同じです。
上記のものは、結合していませんので、非結合論理ファイルといいます。
結合論理ファイル
結合論理ファイルの制約事項
- 結合論理ファイルは、データの読み取りだけが許されます。(データの追加、更新、削除は不可)
- DFUは結合論理ファイルを使用できません。
- 結合論理ファイルのキーフィールドは最初に指定した物理ファイルのフィールドでかつ結合レコード様式中に存在するフィールドでなければなりません。