タイガー!タイガー!じれったいぞー!(SE編)

AS400,WAS,GlassFish,Java,JavaEE,JSF等の開発における日々の気づきをまとめたブログ(備忘録)。

【AS400】ソースファイルを物理ファイルとして読む方法

概要

  • RPGからソースファイルのメンバを参照することも可能です。ソースの行を更新することもできます(あまり意味がないかな!?)。
  • ソースファイルをRPGで指定するためには、CLで事前に参照したいメンバを別名で指定しておく必要あります。(OVRDBF)

サンプル

CL(SAMPLE05C)

PGM
    OVRDBF  FILE(SAMP05) TOFILE(TIGER/RPGLESRC) MBR(SAMPLE05)
    CALL    PGM(SAMPLE05)
    DLTOVR  FILE(SAMP05) 
ENDPGM

RPGLE (SAMPLE05)

H DATEDIT(*YMD/)       
H*                          
F*******************************************************************
F* ファイル定義                                           
F*******************************************************************
F** SOURCE PF (RPGLERC SAMPLE05) **OVRDBF**         
FSAMP05    IF   E           K DISK          
 //                                                             
D*******************************************************************
D* 変数定義                                             
D*******************************************************************
 //                                             
C*******************************************************************
C*MAIN-ROUTINE                                          
C*******************************************************************
 /FREE                          
    DOU %EOF = *ON;                            
         READ  SAMP05;                                     
         IF %EOF;                                      
             LEAVE;        
         ENDIF;        
         DSPLY %SUBST(SRCDTA:1:52); //DSPLY命令で表示可能な最大桁
    ENDDO;      
                              
    *INLR = *ON;                    
    RETURN;
 /END-FREE

実行結果

 > CALL SAMPLE05C                                                
    DSPLY       H DATEDIT(*YMD/)                                  
    DSPLY        //                                               
    DSPLY       F********************************************** 
    DSPLY       F* ファイル定義                           
    DSPLY       F**********************************************
    DSPLY       F** SOURCE PF (RPGLERC SAMPLE05) **OVRDBF**       
    DSPLY       FSAMP05    IF   E           K DISK                
    DSPLY        //                                               
    ~
    ~
    ~