AS/400にFTPでアクセスしてみる
AS/400上のFTPサーバーに対してアクセスする方法を記述します。
■Windowsのftp.exeでのアクセス。
(1)起動
以下のようにパラメータにIPアドレスを指定します。
タイムアウトになり再度接続しなおす場合や、IPアドレスパラメータを指定しないで起動した場合は以下のように接続します。
(2)ファイルシステムの選択
これからFTPで使用する領域がIFSかライブラリーかの指定をします。
NAMEFMTサブコマンドで現在のモードの表示または選択します。
・パラメータに何を指定しない場合:現在のモードを表示
・"0":ライブラリー(デフォルト)
・"1":IFS
※ライブラリーのモードで転送できるOBJタイプは*FILEのみです。
複数のファイルを送信する場合には、SAVFを作成してSAVLIB(SAVOBJ)で保管します。
ただしこの場合には、相手システムは当然ながらAS/400となります。
(一旦PCにダウンロードして、再度別のAS/400へアップロードしたりする方法は良く使われます)
上記のように明示的にしなくても以下のようにカレントディレクトリーの変更でライブラリーからIFSに変更が出来ます。(その逆はテストしましたが出来ませんでした)
以下の例ではIFSのルートに対してカレントディレクトリーの変更を行っています。
(3)転送モードの指定
一般的にFTPではASCIIモード(テキストを変換する転送方法)とBINARYモード(変換せずにそのまま転送する)の2つのモードがあります。 AS/400はEBCDIC(IBM漢字)の文字コードのために一般的なFTPより文字変換を意識した転送が必要です。
以下の例では、TYPEサブコマンドでCCSIDを指定して変換して転送を行っています。
Windowsでテキスト形式で読み込むことが出来ます。
Windowsは以下のようなCCSIDとなります。
・新JIS:943
・旧JIS:932
以下の例では、無変換で転送を行っています。無変換なのでEBCDICのままで転送されますのでWindowsでは表示できません。
AS/400に戻す前提の場合など使用します。
(4)AS/400のコマンドを実行してみる。
以下は CALL XYZLIB/MYPGM のコマンドをFTPで実行した例です。
(5)ファイルの送信時の注意
SAVFを送信する場合にファイルが存在しない場合に勝手に512バイトのレコード長でPFを作成してしまいます。
SAVFの場合にはあらかじめCRTSAVFしておく必要があります。
■FTPクライアントソフトを使用する。
(1)Internet Explorerを使用してみる。
URL欄に "ftp://QSECOFR@192.168.1.1"と入力すると。IEの画面上にAS/400への接続が出来ます。
ファイルの一覧がうまく表示されない場合には、AS/400上のFTP属性を確認してください。
「初期リストの形式」が*UNIXでないと正しく表示できないようです。
FTPを使用したプロダクトが導入されていてこのパラメータが変更できない場合には、残念ですがIEでの使用は出来ません。

(2)ffftp.exeを使用してみる。
www.vector.co.jp などのサイトでffftp.exeをダウンロードして使用してみました。
このFTPクライアントは、リストコマンドの設定変更が出来ますので、上記のパラメータの変更が出来なくともクライアントで指定が出来ます。
「ホストの設定」→「高度タブシート」を開きます。「LISTコマンドでファイル一覧を取得」のチェックをONにすると、AS/400の「初期リストの形式」=*DFTに対応が出来るようです。
■Windowsのftp.exeでのアクセス。
(1)起動
以下のようにパラメータにIPアドレスを指定します。
| C:\>FTP 192.168.1.1 Connected to 192.168.1.1. 220-QTCP AT S1234567. 220 CONNECTION WILL CLOSE IF IDLE MORE THAN 5 MINUTES. User (192.168.1.1:(none)):QSECOFR |
タイムアウトになり再度接続しなおす場合や、IPアドレスパラメータを指定しないで起動した場合は以下のように接続します。
| C:\>ftp ftp> open To 192.168.1.1 |
(2)ファイルシステムの選択
これからFTPで使用する領域がIFSかライブラリーかの指定をします。
NAMEFMTサブコマンドで現在のモードの表示または選択します。
・パラメータに何を指定しない場合:現在のモードを表示
・"0":ライブラリー(デフォルト)
・"1":IFS
| ftp> QUOTE SITE NAMEFMT 250 NOW USING NAMING FORMAT "0". ftp> QUOTE SITE NAMEFMT 0 250 NOW USING NAMING FORMAT "0". ftp> QUOTE SITE NAMEFMT 1 250 NOW USING NAMING FORMAT "1". |
※ライブラリーのモードで転送できるOBJタイプは*FILEのみです。
複数のファイルを送信する場合には、SAVFを作成してSAVLIB(SAVOBJ)で保管します。
ただしこの場合には、相手システムは当然ながらAS/400となります。
(一旦PCにダウンロードして、再度別のAS/400へアップロードしたりする方法は良く使われます)
上記のように明示的にしなくても以下のようにカレントディレクトリーの変更でライブラリーからIFSに変更が出来ます。(その逆はテストしましたが出来ませんでした)
以下の例ではIFSのルートに対してカレントディレクトリーの変更を行っています。
| ftp> CD / 250-NAMEFMT SET TO 1. 250 "/" IS CURRENT DIRECTORY. |
(3)転送モードの指定
一般的にFTPではASCIIモード(テキストを変換する転送方法)とBINARYモード(変換せずにそのまま転送する)の2つのモードがあります。 AS/400はEBCDIC(IBM漢字)の文字コードのために一般的なFTPより文字変換を意識した転送が必要です。
以下の例では、TYPEサブコマンドでCCSIDを指定して変換して転送を行っています。
Windowsでテキスト形式で読み込むことが出来ます。
Windowsは以下のようなCCSIDとなります。
・新JIS:943
・旧JIS:932
| ftp> QUOTE TYPE C 943 200 REPRESENTATION TYPE IS CCSID 943. ftp> GET XYZLIB/MYFILE C:\TEXT.TXT 200 PORT SUBCOMMAND REQUEST SUCCESSFUL. 150 RETRIEVING MEMBER MYFILE IN FILE MYFILE IN LIBRARY XYZLIB. 250 FILE TRANSFER COMPLETED SUCCESSFULLY. ftp: 891 bytes received in 0.18Seconds 4.95Kbytes/sec. |
以下の例では、無変換で転送を行っています。無変換なのでEBCDICのままで転送されますのでWindowsでは表示できません。
AS/400に戻す前提の場合など使用します。
| ftp> BIN 200 REPRESENTATION TYPE IS BINARY IMAGE. ftp> GET XYZLIB/MYFILE C:\BINARY.BIN 200 PORT SUBCOMMAND REQUEST SUCCESSFUL. 150 RETRIEVING MEMBER MYFILE IN FILE MYFILE IN LIBRARY XYZLIB. 250 FILE TRANSFER COMPLETED SUCCESSFULLY. ftp: 891 bytes received in 0.18Seconds 4.95Kbytes/sec. |
(4)AS/400のコマンドを実行してみる。
以下は CALL XYZLIB/MYPGM のコマンドをFTPで実行した例です。
| ftp> QUOTE RCMD CALL XYZLIB/MYPGM 250 COMMAND OCALL XYZLIB/MYPGM SUCCESSFUL. |
(5)ファイルの送信時の注意
SAVFを送信する場合にファイルが存在しない場合に勝手に512バイトのレコード長でPFを作成してしまいます。
SAVFの場合にはあらかじめCRTSAVFしておく必要があります。
■FTPクライアントソフトを使用する。
(1)Internet Explorerを使用してみる。
URL欄に "ftp://QSECOFR@192.168.1.1"と入力すると。IEの画面上にAS/400への接続が出来ます。
ファイルの一覧がうまく表示されない場合には、AS/400上のFTP属性を確認してください。
「初期リストの形式」が*UNIXでないと正しく表示できないようです。
FTPを使用したプロダクトが導入されていてこのパラメータが変更できない場合には、残念ですがIEでの使用は出来ません。

(2)ffftp.exeを使用してみる。
www.vector.co.jp などのサイトでffftp.exeをダウンロードして使用してみました。
このFTPクライアントは、リストコマンドの設定変更が出来ますので、上記のパラメータの変更が出来なくともクライアントで指定が出来ます。
「ホストの設定」→「高度タブシート」を開きます。「LISTコマンドでファイル一覧を取得」のチェックをONにすると、AS/400の「初期リストの形式」=*DFTに対応が出来るようです。