AS400 / IBM i のRPG保守で最初につまずくのは、固定形式、自由形式、F仕様書、D仕様書、C仕様書、READ、CHAIN、EVAL、IF、CALLなどが一度に出てくることです。新しくRPGを書く前に、現場ではまず既存ソースを読み、どのファイルを読んで、どの条件で分岐し、どこで更新しているかを把握する必要があります。
この記事では、RPGを開発教材としてではなく、保守担当者が既存ソースを読むための順番として整理します。細かい文法を全部覚える前に、事故を避けるために見る場所を決めるのが目的です。
最初に全体の入口を見る
RPGソースを開いたら、いきなりC仕様書の細かい処理に入らず、まずプログラム名、説明、呼び出し元、使っているファイル、更新有無を確認します。変更対象のプログラムが単体で動いているのか、CLや別RPGから呼ばれているのかで、影響範囲が変わります。
| 見る場所 | 確認すること | 関連ページ |
|---|---|---|
| F仕様書 | 使用ファイル、入力か更新か、表示ファイルか印刷ファイルか | DSPFFD / DSPPFM |
| D仕様書 | 変数、データ構造、桁数、日付や金額の扱い | RPG保守の最初に見るポイント |
| C仕様書 | READ、CHAIN、IF、EVAL、CALL、UPDATE、WRITE | コンパイルリストの読み方 |
| 呼び出し関係 | CL、別RPG、バッチ、メニューから呼ばれているか | DSPPGMREF影響調査 |
| 実行結果 | ジョブログ、スプール、更新ファイル、エラーメッセージ | ジョブログ確認手順 |
固定形式RPGで見るポイント
古いAS400現場では、固定形式RPGが残っていることがあります。固定形式では、桁位置や仕様書の種類が意味を持つため、見慣れない人には読みづらく感じます。まずは、F仕様書でファイルを確認し、D仕様書で変数を確認し、C仕様書で処理の流れを見る、という順番を固定します。
- F仕様書でファイル名と更新有無を見る
- D仕様書で桁数、データ構造、作業変数を見る
- C仕様書でREAD、CHAIN、IF、CALL、UPDATEを探す
- コメントだけで判断せず、実際の処理を読む
- 変更前にDSPPGMREFで参照関係を確認する
自由形式RPGで見るポイント
自由形式RPGは、他の言語に近く見えるため読みやすく感じることがあります。ただし、ファイルI/O、標識、既存のデータ構造、旧来の固定形式との混在に注意が必要です。自由形式だから安全、固定形式だから危険、という話ではありません。どちらも、何を読んで何を更新しているかを見ることが重要です。
特に、SQLを使っているRPG、画面ファイルを扱うRPG、バッチ更新を行うRPGでは、見た目よりも業務影響が大きいことがあります。販売管理では、受注、出荷、在庫、売上、請求のどこに関わるかを必ず確認します。
READとCHAINの違いを意識する
RPG保守でよく出るのが READ と CHAIN です。READは順番に読む処理で、夜間バッチや一覧処理でよく見ます。CHAINはキーを指定して1件を取りに行く処理で、マスタ参照や明細参照でよく出ます。
| 命令 | 見るポイント | 保守での注意 |
|---|---|---|
| READ | どのファイルを順番に読んでいるか | 処理件数、終了条件、対象期間を確認する |
| CHAIN | どのキーで1件取得しているか | キー項目、マスタ未存在時の処理を見る |
| UPDATE | どのファイルを更新しているか | 本番影響、バックアップ、テスト観点を確認する |
| WRITE | 何を追加しているか | 重複、採番、再実行時の扱いを見る |
| CALL | どのプログラムへ処理を渡すか | 呼び出し先の影響範囲も確認する |
コンパイル前後で見ること
RPGを修正したら、コンパイルが通っただけで終わりにしません。コンパイルリストで重大度、RNF番号、オブジェクト作成結果を確認し、実行時にはジョブログ、スプール、更新ファイル、画面表示、帳票出力を確認します。
単体テストでは、正常系だけでなく、該当データなし、マスタ未登録、ゼロ件、最大桁、締め済み、再実行などを確認します。テスト観点は RPG/CL修正後の単体テスト手順 も参考にしてください。
AIに読ませる時の注意
RPGソースをCodexなどのAIに読ませると、処理の要約やテスト観点の整理に役立ちます。ただし、本番データ、顧客名、会社名、ユーザー名、ライブラリ名、実ファイル名をそのまま出すのは避けます。サンプル化し、機密情報をマスキングしたうえで使います。
安全な使い方は、AS400のRPGソースをAIに読ませる時の注意点 と AS400 / IBM i 現場向けCodex実戦研修 にまとめています。
まとめ
RPG保守では、固定形式か自由形式かよりも、どのファイルを読み、どの条件で分岐し、どこを更新し、どの帳票やジョブに影響するかを読むことが大切です。F仕様書、D仕様書、C仕様書、READ、CHAIN、UPDATE、CALLを順番に見れば、初心者でも少しずつ全体像をつかめます。
最初から全部を理解しようとせず、AS400コマンド逆引き、DSPPGMREF影響調査、コンパイルリストの読み方 と組み合わせて、変更範囲を安全に狭めてください。
Web化・API連携・開発ツールで迷った時
AS400をWeb化したい、API連携したい、PDM/SEU/RDi/VS Code/Codexの使い分けで迷う時は、AS400のWeb化・API連携ガイド と AS400開発ツールの違い を確認してください。既存RPG、CSV、IFS、夜間バッチ、権限、コンパイル手順を整理してから進めます。
Git・ソース管理・AI活用の前に
RPG/CLの保守をGitやAI活用へつなげる時は、AS400でGit・ソース管理を始める手順を確認してください。ソースの正本、コンパイル手順、レビュー、切り戻し、Codex利用時の注意点を整理します。
RPGを読む目的を保守作業に戻す
固定形式・自由形式の読み方を覚える目的は、ソースを読むこと自体ではなく、障害原因、影響範囲、データ更新、後続処理を判断することです。保守全体の流れはAS400保守・運用完全ガイド、AIに読ませる時の注意点はRPGソースをAIに読ませる時の注意点で確認できます。
RPGを読んだ後は影響調査へ進む
RPGの固定形式・自由形式を読めるようになったら、次は「どのファイルを読んでいるか」「どのプログラムから呼ばれるか」「修正するとどの帳票・バッチ・画面に影響するか」を調べます。ソースを読むだけで終わらせず、DSPPGMREF、DSPFFD、DSPDBR、ジョブログ、コンパイル結果までつなげると保守判断が安定します。
| 確認したいこと | 見るもの | 関連ページ |
|---|---|---|
| 参照ファイル | DSPPGMREF / F仕様書 / SQL | DSPPGMREF確認 |
| ファイル定義 | DSPFFD / DSPPFM | DSPFFD・DSPPFM確認 |
| 呼び出し関係 | CALL / CL / ジョブログ | CL入門 |
| AIで読む時 | 本番データ・顧客名・接続情報を伏せる | RPGソースをAIに読ませる時の注意点 |
