AS400 / IBM iのRPG/CLのコンパイルエラーでは、ソースの文法だけでなく、作成ジョブが参照したファイルやライブラリリストも確認します。この記事は、環境差や参照定義の不一致を切り分けたい保守担当者向けです。RPGで外部記述を取り込めず後続エラーが増える想定例を使い、最初に直す原因と、その結果として出たエラーを分けて再コンパイルする流れを示します。
コンパイルエラーで見る順番
| 確認 | 見るもの | 判断 |
|---|---|---|
| コンパイルリスト | スプール、エラー行、メッセージID | 文法か、参照先か、環境差か |
| ソース | 修正箇所、行番号、過去コメント | 本当に修正対象のソースか |
| 参照ファイル | DDS、外部記述、DSPFFD | 項目名や桁数が合っているか |
| ライブラリリスト | コンパイル時のLIBL | 本番と開発で違うものを見ていないか |
| 影響範囲 | 呼び出し元、後続処理、テスト観点 | コンパイル成功だけで終えてよいか |
スプールの先頭だけで判断しない
コンパイルリストでは、最初に出たエラーが本当の原因とは限りません。参照ファイルが見つからない、外部記述が違う、ライブラリリストが違うと、後続に大量のエラーが出ます。まず原因になっている最初の構造的なエラーを探します。
修正後は影響調査とテストをセットにする
RPG/CLは、1本の修正が請求締め、在庫更新、出荷確定、帳票出力に連鎖することがあります。コンパイル成功後は、呼び出し元、使用ファイル、画面、帳票、夜間バッチ、戻し手順まで確認します。
変更範囲はRPG/CL影響調査チェックリスト、修正後の検証は境界値・単体テストの確認表、作業承認と退避は本番作業前の確認を参照してください。
Codexで読む時の使い方
Codexへの提供が社内ルールと契約で許可されていることを確認したうえで、ソース全体や本番情報をそのまま渡さず、匿名化したエラー行、メッセージID、該当する定義部分、確認したライブラリリストだけを渡します。AIは原因候補の整理には有効ですが、業務影響の最終確認は現場担当者が行います。
関連: AS400ライブラリリスト違いによる障害の調べ方|開発・本番・テスト環境差を見るもあわせて確認してください。
関連: AS400のフル桁入力・境界値テスト観点|RPG/CL修正後の確認表もあわせて確認してください。
RPGデバッグ・コンパイルコマンドで探す時の順番
RPGのデバッグやコンパイルエラーを確認する場合は、エラー行だけを追う前に、対象ソース、ライブラリ、コンパイル条件、参照ファイル、パラメータ、実行時ジョブログを分けて確認します。デバッグに入る前に、コンパイル時点の前提をそろえると原因を説明しやすくなります。
- RPGの読み方から戻る: RPG固定形式・フリーフォーマットの読み方
- 修正前の影響範囲を見る: RPG/CL影響調査チェックリスト
- ジョブログで実行時の原因を見る: CPFエラーとジョブログ確認
コンパイルエラーが止まった時の次アクション
RPG/CLのコンパイルエラーは、1件ずつ直すだけでなく、原因の説明を残すことで次回の調査時間を減らせます。エラー行、参照ファイル、変更前後の差分、ジョブログの内容を揃えておくと、保守会社への相談や若手への引き継ぎが進めやすくなります。
- ジョブログの基本は、AS400ジョブログ初心者向け確認手順で確認できます。
- CPFエラーと合わせて見る場合は、AS400 CPFエラーとジョブログ確認手順を使ってください。
想定例:外部記述の読込みに失敗して、後続エラーが増える
説明用の例として、ファイル定義を取り込めず、後の計算行で項目未定義のエラーが大量に出た場合を考えます。
- 一覧の件数だけで判断せず、ファイル宣言付近のメッセージと二次レベルの説明を読みます。
- そのコンパイルを行ったジョブのライブラリリスト、参照ファイルの存在・権限・様式を確認します。自分の現在のDSPLIBLだけでは代用できません。
- 必要な外部記述が取り込めていなければ、その原因を先に直して検証環境で再コンパイルします。後続の各行に同じ変数定義を追加して隠しません。
- 新しいリストで消えたエラーと残ったエラーを分けます。文法誤りが残る場合は、その行の修正と境界値テストへ進みます。
コンパイル時のRNFと実行時のRNX/CPFは別段階です。コンパイルリストの出力条件と重大度はRPGコンパイルリストの読み方で確認できます。