CHGPFについて

AS/400で物理ファイルの項目を追加・変更する際、一般的にはソースからファイルをリコンパイルする事と思います。

先日、諸事情でリコンパイルを用いず、CHGPFコマンドで物理ファイルの項目を変更する機会がありました。
その際、一部の論理ファイルに物理ファイルの項目変更が反映されない事象が出たので備忘を残します。

CHGPFによる物理ファイルの項目変更は、常に論理ファイルに反映されるわけではありません。
IBMのマニュアルによると、下記の制約があります。

———- ibm.comより抜粋 ————–
「物理ファイルの変更 (CHGPF)」コマンドを使用してフィールドを変更、追加、または削除する場合、
同じレコード様式を共用する物理ファイルと論理ファイルとの間には、特定の関係があります。

https://www.ibm.com/docs/ja/i/7.6.0?topic=file-record-format-relationships-between-physical-logical-files

—————————————-

これにより、キーやソート順を指定するだけの単純な論理ファイルには、
CHGPFコマンドだけで物理ファイルの項目変更が反映されますが、

ファイル結合や複数レコード様式を用いた、
レコード様式のフォーマットが異なる論理ファイルには反映されない状態になります。

こういった論理ファイルが紐づいている場合でも、
CHGPF自体は成功し、DSPKEYやDSPFDでPF/LF間の紐づきを見ても
特に異常は見られないので非常に解り辛いです。

こういった論理ファイルの場合は、素直にリコンパイルする事が対処方法になります。