AS400(IBM i)の保守では、RPGだけでなくCLを見る場面も多くあります。CLはControl Languageの略で、コマンドをまとめて実行したり、ジョブの流れを制御したりするために使われます。
RPGが業務ロジックやファイル処理を担当することが多いのに対して、CLはプログラムの呼び出し、ファイルの準備、ライブラリリストの変更、メッセージ送信、バッチ起動など、処理全体の段取りを担当することが多いです。
CLでよく行うこと
- RPGプログラムを呼び出す
- ライブラリリストを変更する
- ファイルをコピーする
- バッチジョブを投入する
- エラー時のメッセージを処理する
- 処理結果によって分岐する
たとえば、日次処理ではCLが最初に動き、必要なファイルを準備してから複数のRPGプログラムを順番に呼び出すことがあります。この場合、RPGだけを見ても処理全体の流れはつかめません。
RPGとの違い
RPGはレコードを読み書きしながら業務処理を行うことが得意です。一方、CLはAS400のコマンドを組み合わせて、ジョブや環境を制御することが得意です。どちらが上というより、役割が違います。
- RPG: 売上計算、在庫更新、帳票データ作成など
- CL: 呼び出し順の制御、環境設定、バッチ投入、例外処理など
保守で見るポイント
CLを見るときは、どの順番でプログラムを呼んでいるか、途中でライブラリリストを変更していないか、エラー時にどの処理へ進むかを確認します。特に本番障害では、CLの分岐やエラー処理が原因で本来の原因が見えにくくなることがあります。
- CALLしているプログラム名
- MONMSGで拾っているメッセージ
- SBMJOBで投入しているジョブ
- ADDLIBLEやCHGLIBLの有無
- ファイルコピーや一時ファイル削除の処理
よくある質問
CLだけ覚えればAS400保守はできますか?
CLだけでは業務ロジックの中身までは追いきれません。CLで処理の流れを把握し、RPGで実際のデータ処理を確認する、という組み合わせで見ると理解しやすくなります。
CLでエラーが出たらどこを見ますか?
まずジョブログで、どのコマンドやCALLでエラーが出たかを確認します。MONMSGがある場合は、エラーが握りつぶされていないか、後続処理へ進んでいないかも確認します。
このサイトの運営方針は、このサイトについて にまとめています。
CL保守で注意したい実務ポイント
CLは処理全体の入口になっていることが多いため、少しの変更でも影響範囲が広がる場合があります。たとえばライブラリリストの変更、投入先ジョブキューの変更、MONMSGの追加・削除は、呼び出されるRPGの動作にも影響します。
- CALLの順番を変更してよいか確認する
- MONMSGで本来見るべきエラーを隠していないか確認する
- SBMJOBの投入先、ユーザー、ジョブ記述を確認する
- ADDLIBLEやRMVLIBLEの影響範囲を確認する
- 本番と開発で同じCLが使われているか確認する
CLは見た目が短くても、裏側で複数の処理を動かしていることがあります。障害対応では、CLだけでなく、呼び出し先のRPG、使用ファイル、ジョブログまでセットで確認すると安全です。

