2012-07-06 78 views
0

我必須使用FTP與IBM AS400系統進行通信。需要發佈的不僅僅是獲取和放置命令。本質上需要使用QUOTE RCMD SBMJOB命令向AS400提交作業,該命令將要求AS400運行其某些程序。我有兩種通信平臺的選擇(a)使用C#和(b)使用BizTalk的FTP適配器。使用FTP/C#/ BizTalk與IBM AS400通信

對於C#我看了MSDN(http://msdn.microsoft.com/en-us/library/ms229718),但沒有看到如何提交作業,因爲有限的FTP命令暴露出來。

對於BizTalk適配器我不知道如何實現這一點。

任何人都有使用C#或BizTalk完成此任務的最佳方法的建議?謝謝。

回答

1

在C#中,您可以運行可調用CL或RPG程序的存儲過程。

另一種選擇是你可以直接在SQL中調用CL命令。這是一個通用的方法,我用這樣做,如果我不期待任何數據傳回:

public static bool RunCmd(string cmdText, iDB2Connection cn) 
{ 
    bool rc = true; 

    // Construct a string which contains the call to QCMDEXC. 
    string pgmParm = String.Format("CALL QSYS/QCMDEXC('{0}', {1})", 
        cmdText.Replace("'", "''").Trim(), 
        cmdText.Trim().Length.ToString("0000000000.00000")); 

    using (cn) 
    { 
     using (iDB2Command cmd = new iDB2Command(pgmParm, cn)) 
     { 
      try { cmd.ExecuteNonQuery(); } 
      catch { rc = false; } 
     } 
    } 

    // Return success or failure 
    return rc; 
} 

由於FTP可能是你最容易的選擇,this short article應該幫助你。

+0

感謝您的答覆邁克。讓我澄清一下,我與DB2沒有任何關係。我只需要調用駐留在iSeries/OS400機器上的CL程序。有沒有辦法做到這一點?想到的另一種方法是使用FTP命令創建批處理文件,並使用FTP調用CL作業。然後可以從C#調用批處理文件。你說什麼? – user556373 2012-07-06 16:13:15

+0

您可以[通過FTP調用程序](http://search400.techtarget.com/tip/Execute-remote-commands-using-FTP),但老實說,通過SQL調用很容易。爲什麼不能連接到IBM i?我只是好奇。 – 2012-07-06 16:18:12

+0

我沒有DB2連接規範(是否有簡單的方法來獲取它們?),並且除了提交作業之外,還需要FTP和AS400之間的文件。 – user556373 2012-07-06 17:11:53

0

我假設您沒有HIS服務器DB2適配器的必需許可證,因爲這將是一條可行的路線。許可信息可以發現here

如果必須使用adpater您可以使用FTP:

SYSCMD CALL PGM(MYCLPGM)PARM( 'MYCLPARM')

代替QUOTE命令你上面列出的