RPG

153. プログラム・オブジェクトから RPGソースを探すには (2)

オブジェクトから生成の元になっているソースを探す、もうひとつの方法は
DSPOBJD コマンドを使うことである。

  DSPOBJD OBJLIB/MYPGM TYPE(*PGM) + [実行] 

によって

 
                       オブジェクト記述の表示−基本リスト                       
                                                             ライブラリー 1 の 1
  ライブラリー  . . . . :   CGIBIN          ライブラリー ASP 装置 . . :   *SYSBAS    
                                            ライブラリー ASP グループ . :   *SYSBAS    
                                                                                
  オプションを入力して,実行キーを押してください。                              
    5= 全属性の表示   8= 保守属性の表示                                         
                                                                                
  OPT  オブジェクト     タイプ    属性                サイズ    テキスト            
       PGM001      *PGM      RPGLE                 274432  RPG#  メイン・モジュ
  

のように表示されたら「8= 保守属性の表示」を選択すると次のように表示される。

 
                        オブジェクト記述の表示−保守リスト                      
                                                             ライブラリー 1 の 1
   オブジェクト . . . . . . . . . . . . :   PGM001                              
     ライブラリー . . . . . . . . . . . :     QTROBJ                            
   ライブラリー ASP 装置  . . . . . . . :   *SYSBAS                             
   ライブラリー ASP グループ  . . . . . :   *SYSBAS                             
   タイプ . . . . . . . . . . . . . . . :   *PGM                                
                                                                                
   ソース・ファイル . . . . . . . . . . :   QRPGLESRC                           
     ライブラリー . . . . . . . . . . . :     QTRSRC                            
   メンバー . . . . . . . . . . . . . . :   PGM001                              
   属性 . . . . . . . . . . . . . . . . :   RPGLE                               
   ユーザー定義の属性 . . . . . . . . . :                                       
   解放 . . . . . . . . . . . . . . . . :   NO                                  
   サイズ . . . . . . . . . . . . . . . :   208896                              
   作成日/時刻 . . . . . . . . . . . . :   07/12/10  09:29:43                  
   ソース・ファイルの日付/時刻 . . . . :                                       
   システム・レベル . . . . . . . . . . :   V5R4M0                              
   コンパイラー . . . . . . . . . . . . :   CRTPGM     V5R4M0                   

これによって元のソースが表示されるのだが、たまに下記のようにソース欄が空白になっている場合もある。

 
                        オブジェクト記述の表示−保守リスト                     
                                                            ライブラリー 1 の 1
   オブジェクト . . . . . . . . . . . . :   PGM001                             
     ライブラリー . . . . . . . . . . . :     CGIBIN                           
   ライブラリー ASP 装置  . . . . . . . :   *SYSBAS                            
   ライブラリー ASP グループ  . . . . . :   *SYSBAS                            
   タイプ . . . . . . . . . . . . . . . :   *PGM                               
                                                                               
   ソース・ファイル . . . . . . . . . . :                                      
     ライブラリー . . . . . . . . . . . :                                      
   メンバー . . . . . . . . . . . . . . :                                      
   属性 . . . . . . . . . . . . . . . . :   RPGLE                              
   ユーザー定義の属性 . . . . . . . . . :                                      
   解放 . . . . . . . . . . . . . . . . :   NO                                 
   サイズ . . . . . . . . . . . . . . . :   274432                             
   作成日/時刻 . . . . . . . . . . . . :   08/10/11  10:52:30                 
   ソース・ファイルの日付/時刻 . . . . :                                      
   システム・レベル . . . . . . . . . . :   V6R1M0                             
   コンパイラー . . . . . . . . . . . . :   CRTPGM     V6R1M0                  

これは生成の元になったモジュールが既に System i 上に存在しないか、または
このプログラムが CRTDUPOBJ コマンドによって複製されてできたものであることを
意味している。
ソースが登録されていない場合には再コンパイルせずにオブジェクトに対して
強制的にソース情報を登録することのできるコマンドとして、

CHGOBJSRC オブジェクトのソース登録

というコマンドがこのサイトの Tools に紹介されている。