RPG#とは

RPG# のご紹介

RPG# とは潟Iフィスクアトロが独自に開発した ILE-RPG による
Web開発用の言語です。
RPG# もまた 通常の ILE-RPG であり IBM の ILE-RPG コンパイラーによって
コンパイル & 実行することができます。

RPG# は ILE-RPG の進化形であり、通常の ILE-RPG とは異なって次のような特徴があります。

  • イベント駆動指向である
  • これまでの ILE-RPG とは異なりメイン・ルーチンがありません。
    ユーザーがボタンを押した、のようなイベントの発生に対応する記述をプロシージャーとして
    記述していくだけです。
  • HTML の完全外部記述ファイル化
  • HTML は従来の DSPF のように完全に外部のファイルとして扱うことができます。
    HTML を変更してもRPG# を再コンパイルするだけです。
    しかも RPG# からは HTML に対して RPG の READ/WRITE 命令だけでシンプルに
    入出力を行うことができます。
    HTML で EDTCDE, EDTWRD, VALUE, RANGE, .... の DDSキーワードも使用可能
  • GUI コントロール
  • ラジオ・ボタン エディット・コントロール
    押しボタン コンボ・ボックス
    チェック・ボックス テキスト・エリア
    SFLコントロール

RPG# の開発手順

RPG# の開発手順

RPG# のコンパイルとは?

RPG# のコンパイラ(CRTWEBMOD) は HTMLテンプレート( .HTM ) から入出力イメージ用となる
DSPF ソースを自動生成して、この DSPF を外部ファイルとして RPG をコンパイルします。
ですから ...

  • READ/WRITE だけで HTML と入出力を行うことができる。
  • DSPF の編集コード(EDTCDE, EDTWRD) や妥当性検査(VALUES, CHECK, ... )が使用可能
  • DSPF は実際の表示用ではなく入出力バッファーとしての利用だけであるので
    80 * 24 の制限もない。

RPG#でのDSPF

[例]HTML から 生成される DSPF ソースの例

どのようなDSPFが生成されているのかを開発者が知る必要はありません。

    001.00      A                                      DSPSIZ(24 80 *DS3)             
    002.00      A                                      MSGLOC(24)                     
    003.00      A                                      PRINT                          
    004.00      A          R DSPHEAD                                             
    005.00      A            GYONO          4Y 0O  1  2EDTCDE(3)                      
    006.00      A            SHCODE        10A  O  1  2                               
    007.00      A            SHNAME        24O  O  1  2                               
    008.00      A            SHTANK         7Y 0O  1  2EDTCDE(1)                      
    009.00      A            SHSCOD         4A  O  1  2                               

DSPF は入出力バッファーとして利用されるだけで表示に利用されることはありませんので
24行 * 80 桁の制約は一切、ありません。
DSPF ですので EDTCDE, EDTWRD や RANGE, VALUES キーワードを使用することができます。

もちろんサブ・ファイルや 編集コード,編集語, 入力妥当性検査等も行うことができます。
また、QTEMP やライブラリー・リスト、セッション継続(Keep-Alive), COMMIT & ROLLBK も
行うことができます。

RPG# のコーディング例

@ NOMAIN .... メイン・ルーチンが存在しないことを宣言しています。

A PROJECT1H は DSPF ですが実際の入出力は SPECIAL ファイルであり

HTMLDVR という HTMLドライバーが HTML との間を介在します。

B RPG# の実行には HTML ドライバーが HTML とのインターフェースを果たします。

C DSPHEAD.HTM で GOボタンが押されたら DSPHEAD_GO というプロシージャーを起動するよう

指示しています。これがイベント駆動の部分です。

D DSPHEAD_GO はボタンが押されたときの処理を記述しており DSPHEAD.HTM の内容を

READ DSPHEAD によって読んで、最後に WRITE SFLCTL01 によってSFLCTL01.HTM という
HTMLを出力します。

RPG# の開発/保守は eStudio で !!

RPG# の Wizard 生成や保守/デバッグはすべて eStudio というブラウザ・ベースの開発スタジオで行うことができます。