先日、一括プログラム用の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」を指定すれば、解決できることがわかりました!
あらためて、やってみましょう。
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オプションを指定するのも面倒なので、コマンドの初期値を変更してしまいましょう。
CHGCMDDFT CMD(CPYSRCF) NEWDFT('TEXT(*FROMMBR)')
これにて、一件落着です。