ILERPGについて


1.ILERPGとは
ILEとは、Integrated Language Environment(統合化言語環境)の略です。
異なる言語間に対して、共通の統合化したインターフェースを提供します。
これにより、RPG、COBOL、Cなどの言語を使用して、共通のアプリケーションを
作成することが出来ます。

2.RPGVとの主な相違点
2−1.全般
ILERPGは、RPGVの後継の言語です。RPGVの機能は、すべて継承しています。
大きな変更点は、次の項目です
  • E仕様書の代わりに、D仕様書が出来た。
  • フィールド名が10桁になった。
2−2.F仕様書
  • データベースのフィールド名に、任意のPrefix文字をつけて、プログラム内で使えます。
     これにより、フィールド名の重複を回避する事が出来ます。
2−3.E仕様書
  • なくなりました。代わりに、D仕様書が出来ました。
 
2−4.D仕様書
  • D仕様書が新しく出来ました。変数、配列の定義を行います。
  • 配列の定義 DIM(Dimension)を使って定義します。
        10桁の長さで要素数100個の配列の定義は、
           ARRAY   S   10  DIM(100)
        のように定義します。
  • 変数の定義 初期値を設定できます。
        10桁の変数の中身を、’AXEL’で初期設定して定義します
           FIELD   S   10  INZ(’AXEL’)
2−5.C仕様書
  • 条件標識が1行に1つしか書けなくなりました。
     ただ、ILERPGでは標識をあまり使わなくてもよくなっています。
     【RPGV】   KEY   CHAINFILE   90
             *IN90   IF   *ON
     【ILERPG】 KEY   CHAINFILE
                     IF   NOT FOUND

  • 演算命令も10桁可能になったので、命令が少し変更になりました。
     (英語そのものの表記に近くなりました。)
     SETOF→SETOFF、UPDAT→UPDATEなど

  • IFなどの条件の書き方が、柔軟になりました。(従来の書き方も可能です)
     【RPGV】   HINBAN  IFEQ ’12345’
     【ILERPG】          IF HINBAN=”12345”
     【RPGV】   HINBAN  IFEQ ’12345’
              HINBAN  OREQ ’567879’
     【ILERPG】          IF HINBAN=”12345” OR
                         HINBAN=”56789” 
     【RPGV】   *IN90   IFEQ ’1’
     【ILERPG】          IF *IN90

  • 配列の指標の書き方が変わりました
     【RPGV】   AR,1    COMP ’A’
     【ILERPG】 AR(1)   COMP ’A’

  • EVAL命令が出来ました。
     【RPGV】           MOVE ’1’    FIELD
     【ILERPG】         EVAL FIELD=’1’

 
RPGVから利用可能にする方法

次のようなILERPGを作成し、これをRPGVでCALLすれば、
i-webRPGの機能をRPGVから利用できます。

ただし、Webプログラミングは、文字列を操作することが頻繁に発生するので、
RPGVでプログラミングすることは非常に労力を要しますので、
ILERPGでのプログラム作成を強くお勧めいたします。

【#GET_FORM】
  * prototype of #GET_FORM  (変数の読み込み)                        
 D #GET_FORM       PR          2000    EXTPROC('#GET_FM')             
 D                               10    VALUE                          
 D                                1                                   
 C     *ENTRY        PLIST                                            
 C                   PARM                    #GF_nam          10      
 C                   PARM                    #GF_opt           1      
 C                   PARM                    #GF_val        2000      
  *                                                                   
 C                   EVAL      #GF_val=#GET_FORM(#GF_nam:#GF_opt)     
  *                                                                   
 C                   SETON                                        LR  
  *                                                                   
【#OUT_HTML】
 C     *ENTRY        PLIST                                             
 C                   PARM                    LIB              10       
 C                   PARM                    FILE             10       
 C                   PARM                    MBR              10       
 C                   PARM                    RPL_DATA          1       
  *                                                                    
 C                   CALLB     '#OUT_HTML'                             
 C                   PARM                    LIB              10       
 C                   PARM                    FILE             10       
 C                   PARM                    MBR              10       
 C                   PARM                    RPL_DATA       2000       
  *                                                                    
 C                   SETON                                        LR   
  *