2017-10-10 179 views
0

我試圖通過iSeries命令將AS400上的表的數據導出到另一臺計算機,但我在進程中間堆疊。我有一個存儲過程,我在其中創建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服務器之間的程序文件傳輸?你是否計劃將i-series box壓縮到Windows,或者Windows從i-series中拉出文件?如果您希望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 

此程序將覆蓋FTP客戶端的一個腳本在MYLIB/QCLSRC構件FTPCMDS的輸入,以及FTP客戶端的輸出,以MYLIB/QCLSRC會員OUT。腳本的第一行必須包含遠程位置的用戶標識和密碼。

下面是來自同一個知識中心參考示例腳本:

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

這應該不是你的網絡中的用戶ID的密碼以明文形式發送以外使用。由於生產用戶標識和密碼必須以純文本形式存儲在源文件中,因此也可能存在安全風險。


此外,斯科特·克萊門特對如何在IBM i使用sshscpsftp介紹。這是一件相當長的事情,所以你可能想要閱讀它here

一個簡短的總結,scp可能是最簡單的方法。但您需要:

  1. 確保安裝了操作系統的OpenSSH選項。
  2. 確保您的Windows服務器設置爲ssh服務器。
  3. 設置用於傳輸的數字密鑰。私鑰在客戶端,公鑰在服務器端。
  4. 在Pase中使用scp fromfile [email protected]:tofile來傳輸文件。
相關問題