1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プログラム構造

Last updated at Posted at 2025-10-15

はじめに

「IBM i 初学者向けの教育に役立つ資料作成」 をテーマにした教育資料です。
ここでは 「IBMiのサーバーとしての役割」 について説明しています。
IBM i 初学者向けの教育に役立つ資料作成 にて、
ほかの教育資料も公開しています。
ぜひ覗いてみてください!

プログラム(RPG3)概要

RPG3とは、手続き型の言語で様々な仕様書の種類から構成される言語です。
各仕様書は特定の目的のために存在し、それぞれが固定された列に情報を記述する形式(固定形式)を取ります。
プログラムは、コンパイルしオブジェクト化することで動かすことができます。

仕様書の種類

ファイル仕様書 (F): プログラムで使用するファイルの情報を記述します。
補足仕様書 (E): 配列(配列、テーブル)に関する情報を記述します。
演算仕様書 (C): プログラムのロジック、つまり各種の演算処理を記述します。
補足仕様書 (L): 印刷出力ファイルに関する情報を記述します。
出力仕様書 (O): 出力データのフォーマットや、出力レコードの形式に関する情報を記述します。
入力仕様書 (I): 入力データの構造や、レコードのフォーマットに関する情報を記述します。

仕様書ごとに記述イメージ:
image.png

記述オプション(どの行に何を記述する)については、SEUエディタでそれぞれの仕様書にてF4キーを実行し確認可能です。
オプション確認イメージ:
image.png
項目にカーソルを当てた状態でF1キーを実行しヘルプ(解説)を見ることが可能です。

ファイル名でF1を押した場合:
image.png

PGMの関係性

関係性:
大きく関係するのは、ファイルとCL言語です。
ファイルは、F仕様書で記述する、物理ファイルと論理ファイル、プリンターファイルと関係しコンパイルを行う際にはPGMに合った正しいファイル情報が環境に必要です。
コマンド言語 (CL)は、RPGを動かすために使用することがあります。
(CLは、RPGプログラムにパラメータを渡したり、複数のRPGプログラムや他のユーティリティの実行順序を制御したり、エラー処理を行ったりします。)

関係性図 (例:マスタメンテPGM)
image.png

コンパイルコマンド

下記がコンパイルに使用するコマンドです。
CRTRPGPGM PGMID
(PGMIDはコンパイルしたいPGMを記述してください)
上記コマンドでやりたいこと
SRCFのMBR→オブジェクト(タイプ:*PGM))を作成

パラメーター

受け取りパラメーター内容:受け取る値を記述する場所です。
パラメーターは静的なものでなく、PGM内でパラメーターの値が変更されたら
変更された値で必ずパラメーターを返します。*ENTRYと記述します。
パラメーター記述イメージ:
image.png

標識

標識とは:
プログラムの流れを制御するために使われる特別な変数です。
特定の桁に特定の情報を記述することで制御が可能とするものです。

1.数字の標識(01~99)について
プログラムが実行中に特定の出来事があったかどうかを記録するための、99個の値です。

役割:
プログラムの途中で「特定の条件が満たされたか?」「ファイルをうまく読み込めたか?」といった結果を一時的に保存します。

使い方:
例えば、CHAIN命令を使ってファイルから特定のデータを検索したとします。
データが見つかった場合、指定した標識(例:*IN99)はオフ(*OFF)になります。
データが見つからなかった場合、標識はオン(*ON)になります。
その後の処理で、「もし*IN99がオンだったら(データが見つからなかったら)エラーメッセージを表示する」といったように、条件分岐の判断材料として使います。

数字標識イメージ:
image.png

補足:
90番台はファイル読み込み用の標識
80番台は画面のサブファイル用の標識
1~24番台はファンクションキーのON、OFF用の標識
など意味を持たせることが多いです。

 
2. 特殊な標識
これらは、特定の重要な役割を担う、名前のついた特別なスイッチです。
LR (Last Record): プログラムを終了させるための標識です。この標識をオンにすると、プログラムは全ての処理を終えて停止します。
RT (Return): サブルーチン(小さなプログラムの塊)からメインのプログラムに戻るときに使う標識です。
L1~L9 (Level): 特定の条件で特別な処理を実行するコントロール・ブレイク処理に使う標識です。例えば、商品のキーコードが変わるたびに合計を計算する。
といった処理に使います。

特殊標識イメージ:
image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?