0

我必须使用 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 完成此任务的最佳方法有建议吗?谢谢。

4

2 回答 2

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 可能是您最简单的选择,这篇简短的文章应该可以帮助您。

于 2012-07-06T14:28:20.227 回答
0

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

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

SYSCMD 调用 PGM(MYCLPGM) PARM('MYCLPARM')

而不是上面列出的 QUOTE 命令

于 2012-07-06T18:27:50.947 回答