AS400 RPGの固定形式・自由形式の読み方|F仕様書・D仕様書・C仕様書とREAD・CHAINを保守目線で見る

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保守でよく出るのが READCHAIN です。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仕様書 / SQLDSPPGMREF確認
ファイル定義DSPFFD / DSPPFMDSPFFD・DSPPFM確認
呼び出し関係CALL / CL / ジョブログCL入門
AIで読む時本番データ・顧客名・接続情報を伏せるRPGソースをAIに読ませる時の注意点