ARINQDSP という名前のワークステーション ファイルと、ARINQ という名前の RPG プログラムを想像してください。ARINQDSP を編集して、ディスプレイに新しいフィールドを追加してコンパイルすると、新しいレコード形式になります (@WarrenT で説明されているように)。ARINQ を呼び出すと、OS はプログラムに保存されているレコード形式を比較します。ファイルに保存されている実際のレコード形式. これらは異なるため、CPF4131 が発行されます. RPG プログラムを再コンパイルすると、現在のレコード形式 ID がプログラム オブジェクトに保存され (現在のバッファー レイアウトと共に!)、CALL ARINQ が期待どおりに実行されます。 . これがレベルチェックエラーの最も一般的な原因です。
これが発生する別の理由があります: ライブラリ リストの不一致です。上記と同じ一連のイベントを想像してください。今回は、開発ライブラリで作業を行うことを想像してください。ARINQDSP を変更し、ファイルとプログラムの両方を再コンパイルしました。ライブラリ リストの一番上に DEVELOPMENT があります。次のようにします。CALL PRODUCTION/ARINQ を呼び出します。OS は製品ライブラリの元のプログラムを呼び出しますが、ライブラリ リストのために、DEVELOPMENT ライブラリから ARINQDSP を開こうとします。実動プログラムに保管されているレコード様式 ID が、開発ライブラリーのワークステーション・ファイルおよびブーム: レベル・チェックに保管されているレコード様式レベル ID と一致しません。