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

AS400, Java, JavaEE, JSF等の開発、習慣など。日々の気づきをまとめたブログ(備忘録)

【AS400】CPYSRCFコマンドでテキストを含めてコピーする方法

先日、一括プログラム用のCLLEプログラムを書いてみました。
その中で、CPYSRCF コマンドで、ライブラリーAからライブラリーBへソース・コードの複写を実施したのですが、PDMで表示されるテキスト名が複写されていないことを発見しました。

ソース・ファイルの中身は無事にコピーされておりました。

再現手順

まず、2つのソース・ファイルを準備しました。

WRKMBRPDM TIGER/RPGLESRC SAMPLE41*

                           PDM を使用したメンバーの処理
                                                                       
  ファイル . . . .   RPGLESRC                                            
    ライブラリー .     TIGER                 位置指定  . . . . . .      
                                                                                
  オプションを入力して,実行キーを押してください。                              
  2= 編集    3=コピー    4= 削除    5= 表示     6= 印刷     7= 名前の変更
  8= 記述の表示   9= 保管   13=テキスト の変更    14=コンパイル   15=モジュール 作成 ...
                                                                                
 OPT  メンバー       タイプ        テキスト                                              
      SAMPLE41    RPGLE        RPGLE SAMPLE 41 + COMMENTS
      SAMPLE41B   RPGLE        RPGLE SAMPLE 41 

次に、下記のコマンドを実施(SAMPLE41→SAMPLE41B のコピー指示)。

CPYSRCF FROMFILE(TIGER/RPGLESRC) TOFILE(TIGER/RPGLESRC)
FROMMBR(SAMPLE41) TOMBR(SAMPLE41B)

しかしながら、結果は・・・テキストは変わらず。
中身は、問題なく複製されていましたが。

                           PDM を使用したメンバーの処理
                                                                       
  ファイル . . . .   RPGLESRC                                            
    ライブラリー .     TIGER                 位置指定  . . . . . .      
                                                                                
  オプションを入力して,実行キーを押してください。                              
  2= 編集    3=コピー    4= 削除    5= 表示     6= 印刷     7= 名前の変更
  8= 記述の表示   9= 保管   13=テキスト の変更    14=コンパイル   15=モジュール 作成 ...
                                                                                
 OPT  メンバー       タイプ        テキスト                                              
      SAMPLE41    RPGLE        RPGLE SAMPLE 41 + COMMENTS
      SAMPLE41B   RPGLE        RPGLE SAMPLE 41 

解決方法

IBM Knowledge Centerで「CPYSRCF」のマニュアルを見てみますと、「TEXT」というパラメータがあり、そこに「*FROMMBR」を指定すれば、解決できることがわかりました!

IBM Knowledge Center

あらためて、やってみましょう。

CPYSRCF FROMFILE(TIGER/RPGLESRC) TOFILE(TIGER/RPGLESRC)       
        FROMMBR(SAMPLE41) TOMBR(SAMPLE41B)  TEXT(*FROMMBR)   
                           PDM を使用したメンバーの処理
                                                                       
  ファイル . . . .   RPGLESRC                                            
    ライブラリー .     TIGER                 位置指定  . . . . . .      
                                                                                
  オプションを入力して,実行キーを押してください。                              
  2= 編集    3=コピー    4= 削除    5= 表示     6= 印刷     7= 名前の変更
  8= 記述の表示   9= 保管   13=テキスト の変更    14=コンパイル   15=モジュール 作成 ...
                                                                                
 OPT  メンバー       タイプ        テキスト                                              
      SAMPLE41    RPGLE        RPGLE SAMPLE 41 + COMMENTS
      SAMPLE41B   RPGLE        RPGLE SAMPLE 41 + COMMENTS

無事、テキストもコピーされました! オッケー、オッケー!!

コマンドの初期値変更

毎回、TEXTオプションを指定するのも面倒なので、コマンドの初期値を変更してしまいましょう。

tigertaizo.hatenablog.com

CHGCMDDFT CMD(CPYSRCF) NEWDFT('TEXT(*FROMMBR)')

これにて、一件落着です。