鈴木 由臣
株式会社クレスコ・ジェイキューブ
デジタルソリューションセンター
今回は、プログラムソースを一括でPCに転送する方法について紹介します。
IBM iのプログラムソースをPCに転送して、テキストとして扱ったり管理したい時があるかと思います。
ACSやPCOMなどのエミュレータ製品のデータ転送機能を利用してPCへの転送も可能ですが、プログラムのソースメンバーを1つ1つ指定する必要があるので、ソースメンバーが数多くある場合は手間と時間がかかってしまいます。
今回ご紹介するFTPを活用する方法を利用すれば、ソースメンバーを1つ1つ指定することなく、ソースファイル内のメンバーを一括でPCへテキストとして転送できます。
ご紹介する大まかな手順は、次の通りです。
(1) IBM iのIFSにワークディレクトリを作成する。
(2) IBM iのローカルホストのFTPのサブコマンドMGETでワークディレクトリにプログラムソースを転送する。
(3) IFSのワークディレクトリのプログラムソースをPCへFTPのサブコマンドMGETで転送する。
今回は、PXSBASライブラリのQRPGSRCファイルを例にご説明します。
(1)IBM iのIFSにワークディレクトリ /HOME/SUZUKI を作成します。
CRTDIR DIR(‘/HOME/SUZUKI’)

(2)IBM iのローカルホストのFTPのサブコマンドMGETでワークディレクトリにプログラムソースを転送します。
・5250画面でFTP LOCALHOSTを実行

・IBM iのユーザ/パスワードでFTPにログインする。

・名前形式 1を指定
NAMEFMT 1

・ワークディレクトリ(/HOME/SUZUKI)に移動
LCD /HOME/SUZUKI を実行

・文字コード S-JISを指定
TYPE C 943

・PXSBASライブラリのQRPGSRCファイルの全メンバーをFTPのサブコマンドMGETで転送する。
MGET /QSYS.LIB/PXSBAS.LIB/QRPGSRC.FILE/*.MBR
※NAMEFMT 1 を指定しているので、下記のファイル形式で指定します。
/QSYS.LIB/ライブラリ名.LIB/ソースファイル名.FILE/メンバー名.MBR
メンバー名は全メンバーを指定するため、総称名(*)で指定します。

各メンバーのGETが成功するたびに、次のメッセージが表示されます。
「226 FILE TRANSFER COMPLETED SUCCESSFULLY.」

・F3(=終了)でFTPを終了します。
(3)IFSのワークディレクトリのプログラムソースをPCへFTPのサブコマンドMGETで転送します。
・PCのコマンド・プロンプトを起動して、IBM iにFTPでログインします。
FTP IBMiのIPアドレス

・名前形式 1 を指定
QUOTE SITE NAMEFMT 1

・無変換を指定
BINARY

・PC側の転送先ディレクトリを指定
LCD C:¥temp¥IBMi

・ワークディレクトリ(/HOME/SUZUKI)をカレントディレクトリに指定
CD /HOME/SUZUKI

・ワークディレクトリ(/HOME/SUZUKI)の全ソースメンバーをサブコマンドMGETでPCへ転送する。
PROMPT (自動応答のために「対話モードオフ」を指定します)
MGET /HOME/SUZUKI/*.*


QUITでFTPを終了します。
・C:\temp\IBMiディレクトリにQRPGSRC.メンバー名というファイル名で転送されます。

QRPGSRC.メンバー名の形式のファイル名を変更したい場合は、ファイル名を一括で変更できます。その方法を紹介しているサイトがネット上にたくさんありますので、検索してファイル名の変更を試してみてください。