2017-10-10 84 views
0

AS400のテーブルのデータをiSeriesコマンドを介して別のマシンにエクスポートしようとしていますが、処理の途中でスタックしています。私はCSVファイルを作成するストアドプロシージャを持っていますが、完了後にこのファイルを別のマシン(もちろんAS400に接続されています)に転送する必要があります。AS400から同じネットワーク内の別のマシンにファイルを転送する

ストアドプロシージャでは、CPYTOIMPFコマンドを使用して表データをCSVにエクスポートし、ファイルをAS400ファイルシステムに書き込みました。ファイルを別のマシンに直接書き込むオプションがあるかどうかわかりません。

CALL QSYS2.QCMDEXC(
'CPYTOIMPF FROMFILE(LIBRARY/TABLE) TOSTMF('/QIBM/UserData/TestFolder/2.CSV') STMFCODPAG(*PCASCII) RCDDLM(*CRLF)' 
); 

この手順は完了し、ファイルはそのディレクトリに書き込まれます。

これで、上記のコマンドを実行しなくても、このファイルをAS400に接続されているWebサーバーに転送する必要があります。

どうすればいいですか?

+0

他のマシンのオペレーティングシステムとは何ですか? – mao

+0

windows server 2008 R2 – user715079

+0

AS400(iシリーズ)とWindowsサーバーの間でプログラムされたファイル転送をどうやって行うのですか? Windowsにファイルをプッシュするi-seriesボックス、またはi-seriesからファイルをプルするWindowsを計画していますか? iシリーズでプッシュを実行する場合は、SFTP(Windowsサーバーでサービスを実行する場合)を検討してください。 – mao

答えて

0

IBM iでFTPを使用できます。ここでIBM Knowledge Center

このからの変形例は、CLプログラム

PGM 
    OVRDBF FILE(INPUT) TOFILE(MYLIB/QCLSRC) MBR(FTPCMDS) 
    OVRDBF FILE(OUTPUT) TOFILE(MYLIB/QCLSRC) MBR(OUT) 
    FTP  RMTSYS(SYSxxx) 
ENDPGM 

このプログラムはMYLIB/QCLSRC部材FTPCMDSにスクリプトへのFTPクライアントの入力をオーバーライドし、MYLIB/QCLSRCにFTPクライアントの出力でありますメンバーOUT。スクリプトの最初の行には、リモートロケーションのユーザーIDとパスワードが含まれていなければなりません。ここで

は同じKnowledge Centerの参照からのサンプルスクリプトです:ユーザーID、パスワードがプレーンテキストで送信されているよう

ITSO ITSO <== This is the user id and password 
CD ITSOLIB1 
SYSCMD CHGCURLIB ITSOLIB2 
GET QCLSRC.BATCHFTP QCLSRC.BATCHFTP (REPLACE 
QUIT 

これは、ネットワークの外部で使用すべきではありません。また、プロダクションユーザーIDとパスワードをソースファイルにプレーンテキストで保存する必要があるため、セキュリティ上のリスクもあります。また


、スコット・クレメントは、sshの使用方法についてのプレゼンテーションを持ってscp、およびIBM iでsftp。これはかなり長いことなので、hereについて読んでみてください。

簡単な要約は、scpが最も簡単な方法かもしれないということです。

  1. OSのOpenSSHオプションがインストールされていることを確認してください。
  2. Windowsサーバーがsshサーバーとして設定されていることを確認してください。
  3. 転送に使用するデジタルキーを設定します。秘密鍵はクライアント側にあり、公開鍵はサーバ側にあります。
  4. ファイルを転送するには、Paseでscp fromfile [email protected]:tofileを使用してください。
関連する問題