RPGプログラムを開発するときにまっさらの1からソースを
開発している人は稀れだろう。
何がしら社内で統一したテンプレートのようなものを
持っていてそれをコピーして生成しているのではないだろうか?
弊社も実は同じでひとつのシンプルなRPGテンプレートを
持っている。
テンプレートと言ってもほとんど特別な機能は備えていない。
しかしそれだからこそ共通の基盤として使用することができる。
[AA_SAMPE:標準テンプレート]
ソースはこちらから
0001.00 H DFTNAME(AA_SAMPLE) DATEDIT(*YMD/) BNDDIR('QC2LE')
0002.00 F********** AA_SAMPLE *************************************************
0003.00 FSQLFUNCOL UF A E K DISK
0004.00 F EXTFILE(SQLFUN_LIB)
0005.00 F**********************************************************************
0006.00
0007.00 * CRTRPGMOD OBJ(QTEMP/AA_SAMPE) SRCFILE(R610SRC/QRPGLESRC)
0008.00 * DBGVIEW(*SOURCE) AUT(*ALL)
0009.00 * CRTPGM PGM(ASNET.COM/AA_SAMPLE) MODULE(QTEMP/AA_SAMPLE ACTGRP(*NEW)
0010.00 * AUT(*ALL)
0011.00
0012.00 *-------------------------------------------------------------------*
0013.00 * 2017/05/01 : 作成
0014.00 *-------------------------------------------------------------------*
0015.00 *( 作業変数 )
0016.00 D SQLFUN_LIB S 21 INZ('QUSRTEMP/SQLFUNCOL')
0017.00 D AR S 1A DIM(256)
0018.00 D N S 4S 0
0019.00 D TRUE S 1A DIM(256)
0020.00 D TRUE#
S 4B 0 INZ(0)
0021.00 D FALSE# S 4B 0 INZ(-1)
0022.00 D QUOT C CONST(X'7D')
0023.00 D OE C CONST(X'0E')
0024.00 D OF C CONST(X'0F')
0025.00 D NULL C CONST(X'00')
0026.00
0027.00 D*( プログラム状況データ構造 )
0028.00 D INFDS_THIS SDS
0029.00 D PROC_NAM *PROC
0030.00 D ROUTINE *ROUTINE
0031.00 D 512A
0032.00 D PGMINFO 1 512
0033.00 D LINE_NUM 21 28
0034.00 D CPFID 40 46
0035.00 D CPFDTA 91 170
0036.00 D ERRMSGID 46 51
0037.00 D CURUSR 358 367
0038.00
0039.00 D*( WORK 日付 YYMMDD データ 構造 )
0040.00 D DATEDS DS
0041.00 D CENTURY 1 2 0 INZ(20)
0042.00 D YYMMDD 3 8 0
0043.00 D YY 3 4
0044.00 D MM 5 6
0045.00 D DD 7 8
0046.00 D CYY 1 4
0047.00
0048.00 C*--------------------------------------------------------------------------
0049.00 C USRKEY KLIST |
0050.00 C KFLD USER |
0051.00 C*--------------------------------------------------------------------------
0052.00 C SETON LR
0053.00 C RETURN
0054.00 C******************************************************
0055.00 C *INZSR BEGSR
0056.00 C******************************************************
0057.00 C* 初期 CYCLE のみの実行
0058.00 C ENDSR
[解説]
C関数をバインドできるように BNDDIR(‘QC2LE’) を定義している。
CGI でファイルをライブラリーも明示的に指定できるように
EXTFILE
を定義している。
利用頻度の高い作業変数はいつも指定している。
キー・リストや利用頻度の高いサブ・ルーチン: *INZSR も定義している。
最近の事情を考慮すればプロージャーも定義しておいたほうがよいだろう。
