Copyright © i-Learning Co.,Ltd.
フリー・フォーマット型RPGの入門
Copyright © i-Learning Co.,Ltd. Agenda
•再確認・RPGとは
•フリーフォーマットRPGは、RPGⅣであるという
こと。
•演算仕様書のみのフリーフォーマットRPG
•完全フリーフォーマット
1Copyright © i-Learning Co.,Ltd. RPGとは
•RPGとは、Report Program Generator
– 帳票印刷プログラムを作成する言語•RPG仕様書記入方式で、習得が早い
– 固定位置記入方式のコーディング – RPG内部論理で、入出力命令が不要 CL0N01FACTOR1+++++++OPCODE&EXTFACTOR2+++++++RESULT++++++++LEN++D+HILOEQ C EXCEPT MIDASI C* 繰り返し C DO *HIVAL C READ TOKMSP 99 C N99 EXSR @MEISUB C N99 ENDDO C* 終了処理 C EXCEPT SAISHU C SETON LR C RETURNRPGとは
Copyright © i-Learning Co.,Ltd. RPGの変遷
•RPGⅡ
– System36以前 – プログラム記述方式 – RPG内部論理•RPGⅢ
– System38、AS/400 – RDBを外部記述ファイルで使用•RPGⅣ
– AS/400~IBM i – RPGⅢでの規制を大幅緩和 5RPGⅣで大きく変わった事
•データ名の柔軟性
– _が使用可 – 長さが10文字まで(フィールド名は4096文字)•関数の使用
– 命令の表現が簡素に。 •日付計算が容易。 •標識を使用せずに、命令結果を判断。•統合言語環境
Copyright © i-Learning Co.,Ltd. RPGⅢプログラマーにとっては。。。
•RPGⅣの新しい機能も、自分たちで解決済み
– 日付の計算 – データ名の名前の短さ(6文字) 7あえて冒険する必要は無い?
しかし!
•プログラマーが高齢化
•若いプログラマーは、Java、C、PHP。。。
自宅PCで 開発可能 市販教材が豊富 教育機関で 学習 S/38以来、 この道30年 。。。 後継者を 育てたい!Copyright © i-Learning Co.,Ltd.
フリーフォーマットRPGが解決の糸口
•JavaやCと記述方式が似ているので、若いプ
ログラマーの習得が容易。
•Rational Develper for i (Eclipse)で、Javaと
違和感がまったく無い。
•同じRPGなので、これまでのRPGプログラマー
も慣れるのが速い。
Agenda
フリーフォーマットRPGは、
RPGⅣであるということ。
Copyright © i-Learning Co.,Ltd. RPGⅢからRPGⅣへの変換
•フリーフォーマットRPGは、RPGⅣ。
•ソース・プログラムはCVTRPGSRCコマンドで、
RPGⅢからRPGⅣへ簡単に変換可能。
– 固定位置記入形式のRPGⅣプログラムに変換。CVTRPGSRC
FROMFILE(QRPGSRC)
FROMMBR(*ALL)
TOMBR(*FROMMBR)
RPGは混在可能
•RPGⅢプログラムも、RPGⅣプログラムも、オ
ブジェクトタイプは*PGM。
– CALLコマンド、またはRPGからCALL命令で実行 – RPGⅢプログラムから、RPGⅣプログラムが実行可 能 すべてのRPGプログラムをRPGⅣ、 FFRPGに変更する必要は無い。Copyright © i-Learning Co.,Ltd. まずRPGⅣを知ろう(1)
•制御仕様書はすべてキーワード
– DATEDIT(日付編集) 13DATFMT(*JIS)
TIMFMT(*ISO)
NOMAIN
まずRPGⅣを知ろう(2)
•ファイル仕様書の継続行はキーワード記入
オーバーフロー標識 OFLIND(*INOF) ユーザーオープン USROPN サブファイル使用Copyright © i-Learning Co.,Ltd. まずRPGⅣを知ろう(3)
•定義仕様書(D)
– 配列(RPGⅢではE仕様書) – データ構造(RPGⅢではI仕様書) – キーワード使用可能 15 INZ(省略時の値指定) CONST(固定情報) DIM(配列定義)まずRPGⅣを知ろう(4)
•定義仕様書の例(配列)
– RPGⅢのE仕様書 – RPGⅣのD仕様書 FMT E ...E....FROMFILETOFILE++NAME++N/RN/TBLENPDSARRNAMLENPDSCOMMENTS++++++ 0005.00 E TCD 1 10 5 TNM 10 FMT D ...DNAME+++++++++++ETDSFROM+++TO/L+++IDC.KEYWORDS++++++++++++++++++++ 0005.00 D TCD S 5 DIM(10) CTDATA PERRCD(1)Copyright © i-Learning Co.,Ltd. まずRPGⅣを知ろう(5)
•定義仕様書の例(データ構造)
– RPGⅢのI仕様書 – RPGⅣのD仕様書 17 FMT DS ...IDSNAME....NODSEXT-FILE++...OCCRLEN+... 0007.00 I@DATA DS 99 FMT J ...I...PFROMTO++DFIELD+L1M1FRPLMNZR. 0008.00 I 1 5 CODE 0009.00 I 6 20 NAME FMT D ...DNAME+++++++++++ETDSFROM+++TO/L+++IDC.KEYWORDS++++++++++++++++++++ 0008.00 D @DATA DS OCCURS(99) 0009.00 D CODE 1 5 0010.00 D NAME 6 20まずRPGⅣを知ろう(6)
•演算仕様書
Copyright © i-Learning Co.,Ltd. まずRPGⅣを知ろう(7)
•新しい演算命令
– FOR – ELSEIF – LEAVESR – ADDSUR – SUBDUR•従来と名前が変わった命令
– LOKUP → LOOKUP – UPDAT → UPDATE – DELET → DELETE 19まずRPGⅣを知ろう(8)
•演算仕様書:式の評価
– 拡張演算項目2を使用し、式の評価が可能
EVAL URIAGE = SURYO * TANKA
IF URIAGE = 0
EVAL URIAGE = SURYO * TANKA
Copyright © i-Learning Co.,Ltd. まずRPGⅣを知ろう(8) • 関数 – 日付計算 •%DAYS •%MONTHS •%YEARS – 文字列操作 •%SUBST •%TRIM – これまでの演算命令の代わり •%XFOOT •%LOOKUP
演算仕様書のみの
Copyright © i-Learning Co.,Ltd. フリーフォーマット型RPG
•V5R1より、演算仕様書のフリーフォーマット化
•V7R1(Technology Refresh 7)より、完全フリー
フォーマット化
/FREE
URIAGE
=
SURYO * TANKA;
/END-FREE
演算命令記入規則
• 命令 演算項目2 演算項目1 結果のフィールド;
CHAIN
TOKMSP
JHTOKB;
URIAGE
=
SURYO
*
TANKA;
COUNT
+=
1;
// コメント
Copyright © i-Learning Co.,Ltd.
コーディング例1
read tokmsp;
dow not %eof(tokmsp); count += 1;
sagaku = tkgend - tkuzan; if *inof; write midashi; *inof = *off; endif; write meisai; read tokmsp; enddo;
コーディング例2
READ TOKMSP;
DOW NOT %EOF(TOKMSP); COUNT += 1;
SAGAKU = TKGEND - TKUZAN; IF *INOF; WRITE MIDASHI; *INOF = *OFF; ENDIF; WRITE MEISAI; READ TOKMSP;
Copyright © i-Learning Co.,Ltd. 関数
•日付計算
– 今までのやり方•年月日のフィールドをデーや構造で定義
– (年、月、日) FMT I ...IFILENAMESQNORIPOS1NCCPOS2NCCPOS3NCC... 0003.00 I DS FMT J ...I...PFROMTO++DFIELD+L1M1FRPLMNZR. 0004.00 I 1 80HIZUKE 0005.00 I 1 40NEN 0006.00 I 5 60TSUKI 0007.00 I 7 80HI関数
• 日付計算(ADDDURやSUBDURでも可)
TKNYUK = @TODAY + %DAYS(20) ;
TKNYUK = @TODAY + %MONTHS(6) ;
TKNYUK = @TODAY + %YEARS(2) ;
• データベースの日付フィールド定義
FMT PF ...A...T.NAME++++++RLEN++TDPB...FUNCTIONS++++++++++++++++++ 0012.00 A TKGEND 9P 0 COLHDG(' 信用限度額 ')
Copyright © i-Learning Co.,Ltd. 関数
•文字列操作
TKNAKJ = ‘ 株式会社アイ・ラーニング△△△△△△△ ‘@JUSHO = %TRIM(TKNAKJ) + ‘ 様 ’;
株式会社アイ・ラーニング
様
フリーフォーマットで使えないもの
•使えなくなった命令
– XFOOT – LOOKUP – ADDDUR – SUBDUR – 関数で代用•結果の標識が使用不可
– 関数で代用Copyright © i-Learning Co.,Ltd.
完全フリーフォーマット
完全フリーフォーマット
•制御仕様書、ファイル仕様書、定義仕様書も
フリーフォーマット。
– 完全フリーフォーマット化
•/FREEと/END-FREEは不要
– IBM i 7.1 TR7(Technology Refresh 7)より
– Rational Develper for i 使用(5250画面のSEU では構文エラー)
Copyright © i-Learning Co.,Ltd. 完全フリーフォーマットのメリット
•習得が容易
– JavaやPHPを知っている人であれば、直感で理解 できる。(RDi の画面ではJavaの世界とほぼ同じ) – 従来のRPGプログラマーは命令を知っているのです ぐに慣れることができる。•SEUからの開放
– FTPなどでソースメンバーをPCに転送して編集が可 能。 – RDIでPC側のファイルと、実際のソースメンバーとの 整合性を管理。 33Rational Develper for i (Eclipse画面)での開発 PDMのように IBM i上のオブ ジェクトを操作 SEUのようにソー スを表示・編集・ 操作できるLPEX エディター ファイルのフィールド やデータをテーブル形 式で表示
Javaと
違和感
Copyright © i-Learning Co.,Ltd.
制御仕様書
CTL-OPT DATFMT(*ISO) TIMFMT(*ISO);
ファイル仕様書
DCL-F TOKMSP;
•デフォルトでは読み取り専用、全手順アクセ
ス、外部記述データベース・ファイル。
DCL-F TOKMSP USAGE(*INPUT) KEYD DISK(*EXT) ; DCL-F QPRINT USAGE(*OUTPUT)Copyright © i-Learning Co.,Ltd.
定義仕様書
DCL-S URIAGE
PACKED (9:0);
DCL-S CUST_NAME CHAR(100);
DCL-S ARRAY1
ZONED(5:0) DIM(5);
フィールド名、配列、データ構造もすべて
定義仕様書で定義。
定義仕様書
•データ構造の例
DCL-DS *N; DCL-SUBF DS_1_10 CHAR(10); DS_1_5 CHAR(5) OVERLAY (DS_1_10:1); DS_6_10 CHAR(5) OVERLAY (DS_1_10:6); DS_2_6 CHAR(5) OVERLAY (DS_1_10:2); DS_7_9 CHAR(3) OVERLAY (DS_1_10:7); END-DS;Copyright © i-Learning Co.,Ltd. 徐々に勉強しましょう
•ILE(統合言語環境)
– 異なる言語のプログラム(RPG、COBOL、C、CL)を モジュールとしてコンパイルし、結合してプログラム オブジェクトを作成。 – サービス・プログラムの作成により、関数的な使用 方法が可能。 39 ソース・プログラム ソース・プログラム モジュール・ オブジェクト モジュール・ オブジェクト プログラム・ オブジェクト徐々に勉強しましょう
•SQL
– 組み込みSQLでファイル操作。 – 今存在している物理ファイル、論理ファイルを、 テーブル、ビューとして使用可能。 – 条件付レコードの読み取りがOPNQRYFよりも簡単。DCL-DS INPDTA EXT EXTNAME('TOKMSP') PREFIX(I#:2) END-DS;
EXEC SQL
SELECT * INTO :INPDTA FROM TOKMSP
Copyright © i-Learning Co.,Ltd. コンパイル
•単一コマンドでのコンパイル
– CRTBNGRPG(今までのCRTRPGPGM) – CRTSQLPKGI(SQLを含むプログラム)•ILEでのコンパイル
– CRTRPGMOD(モジュール作成) – CRTPGM(プログラム結合) 41アイ・ラーニングについて 2013年4月 アイ・ラーニング 日本研修 サービス IBM Japan Learning Division 日本IBM人財 ソリューション 2006 アイセス (トレーニング・パートナー) 1990 IBM-J 4% 日本アイ・ビー・エム 研修部 社名変更 研修事業移管 IBMコーポレーションのグローバルプログラムの一環として、IBM研修事業はト レーニング・パートナーであるアイ・ラーニングに移管されました。
Copyright © i-Learning Co.,Ltd. RPG研修 •AS513 System i RPGⅣバッチ・プログラム演習 – RPGⅣの基礎と帳票を出力するバッチプログラムのプログラミ ングを学ぶコースです。 •AS514 System i RPGⅣ対話型プログラム演習 – 画面を使用したRPGⅣのプログラミングを学ぶコースです。 •AS518 System i RPGⅢ基礎演習 – RPGⅢの基礎と帳票出力、データベース操作を行うプログラ ミングを学ぶコースです。 •AS515 System i RPGⅢバッチ・プログラム演習 – RPGⅢの構造化、内部論理プログラミングを学ぶコースです。 •AS519 System i RPGⅢ対話型プログラム演習 – 画面を使用したRPGⅢのプログラミングを学ぶコースです。
RPG研修