RPGソースの構造
H |
プログラム見出し |
H Y/ 1 H *******************************************************
H * *
H * 作成者、作成日 *
H * *
H ******************************************************* |
F |
ファイル定義 |
F
F
F |
E |
配列テーブル定義 |
E ****************************************************
E * A R R A Y T A B L E * 注釈
E **************************************************** |
I |
入力定義 |
I ******************************************************
I * D E F I N E I N P U T F I E L D *
I ****************************************************** |
I |
データ構造定義 |
I ******************************************************
I * D E F I N E D A T A S T R U C T U R E *
I ****************************************************** |
I |
固定情報定義 |
I ******************************************************
I * D E F I N E C O N S T A N T *
I ****************************************************** |
C |
非実行文定義 |
C ******************************************************
C * DEFINITION MODULE ( PLIST FIELD KLIST ) *注釈
C ****************************************************** |
C |
プログラム基本処理 |
C ******************************************************
C * M A I N - R O U T I N E * 注釈
C ****************************************************** |
C |
サブ・ルーチン |
C ******************************************************
C * S U B - R O U T I N E * 注釈
C ****************************************************** |
O |
出力処理 |
O ******************************************************
O * O U T P U T M O D U L E *
O ****************************************************** |
※ソースコード自体でドキュメント化を図るという考えが、次第に広まってきている。その時点で最良のものを採用したい。
CLPソースの構造
プログラム見出し |
/* PROGRAMMER - T.KAKEFUDA */
/* CREATION - XX.XX.XX */
/* */
/* MODIFIED - XX.XX.XX BY XXXXXXXXXXXX */
/*注意: */
/*ジョブ環境:このプログラムは、対話型 実行です。*/
/*ジョブ環境:このプログラムは、バッチ 実行です。*/
/* */ |
宣言文 |
DCL &XXXXXXX *CHAR 20
DCL &XXXXXXX *CHAR 20
DCL &XXXXXXX *CHAR 20 |
プログラムレベル・モニターメッセージ |
MONMSG CPF0000 *N GOTO ERR |
前準備 |
OVRDBF XXXXXXXX |
主プログラム起動 |
CALL SSX000 |
後処理 |
DLTOVR QPRT132 |
エラーメッセージ処理 |
ERR: |
CLPでの考慮事項
ライブラリーを制御するコマンドやライブラリー名を参照するコマンドでは、なるべく、直接そのライブラリー名を指定しない。ただし、*LIBL *CURLIB QTEMP は例外的に使用してよい。
MONMSG(特にプログラムレベルでのMONMSG)には注意してコーディングすること。
へたに、プロンプトを多用すると、かなりソースが見づらくなる。なるべく、定位置法で書き込む。
なぜこのようにコーディングしたのかを示すための、注釈も大切である。
|