【问题标题】:Communicate with IBM AS400 using FTP/C#/BizTalk使用 FTP/C#/BizTalk 与 IBM AS400 通信
【发布时间】:2012-07-07 02:27:50
【问题描述】:

我必须使用 FTP 与 IBM AS400 系统通信。需要发出的不仅仅是 get 和 put 命令。基本上需要使用 QUOTE RCMD SBMJOB 命令向 AS400 提交作业,该命令将要求 AS400 运行它的一些程序。

对于通信平台,我有两种选择 (a) 使用 C# 和 (b) 使用 BizTalk 的 FTP 适配器。

对于 C#,我查看了 MSDN (http://msdn.microsoft.com/en-us/library/ms229718),但看不到如何提交作业,因为暴露了有限的 FTP 命令。

对于 BizTalk 适配器,我不确定如何实现。

有人对使用 C# 或 BizTalk 完成此任务的最佳方法有建议吗?谢谢。

【问题讨论】:

    标签: c#-4.0 biztalk ibm-midrange


    【解决方案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 应该可以帮助您。

    【讨论】:

    • 感谢迈克的回复。让我澄清一下,我与 DB2 没有任何关系。我只需要调用驻留在 iSeries/OS400 机器上的 CL 程序。有没有办法做到这一点?想到的另一种方法是使用带有 FTP 命令的批处理文件并使用 FTP 调用 CL 作业。然后可以从 C# 调用批处理文件。你说什么?
    • 你可以call a program via FTP,但老实说,通过 SQL 调用很容易。为什么不能连接到 IBM i?我只是好奇。
    • 我没有 DB2 连接规范(有没有简单的方法来获得它们?)除了提交作业之外,我还需要通过 FTP 文件与 AS400 往来。
    • 您使用 iSeries 客户端访问驱动程序。它需要安装在要使用该程序的每个服务器/工作站上。版本也必须匹配。从那里连接字符串看起来像this。如果您无论如何都必须 FTP 文件,那么您还不如通过 FTP 执行。在我之前的评论中,我放了一个关于如何做到这一点的链接。我也会将其添加到答案中。
    • 我已准备好提交作业的 FTP 命令。问题更像是如何通过 C# 或 BizTalk 执行这些命令。我在 C# 中没有看到通过 FTP 促进远程命令的库。再次感谢您的帮助。
    【解决方案2】:

    我假设您没有 HIS 服务器 DB2 适配器的必要许可,因为这是可行的方法。授权信息可以在here

    找到

    如果您必须使用 FTP 适配器,您可以使用:

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

    而不是上面列出的 QUOTE 命令

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-17
      • 2022-09-24
      • 2018-08-03
      相关资源
      最近更新 更多