Ssis 如何向Foreach容器添加多个数据流任务

Ssis 如何向Foreach容器添加多个数据流任务,ssis,sql-server-2008-r2,ezapi,Ssis,Sql Server 2008 R2,Ezapi,如何使用EzAPI将多个数据流任务添加到单个foreach容器中。基本上我需要做以下事情 我是EzAPI的新手。有人能给我一个这种场景的代码示例吗。提前感谢。您的问题可以归结为两个问题:如何创建各种容器和任务?如何定义它们之间的优先级约束 正如您在下面的代码中所看到的,我创建了EzPackage、EzForEachLoop、EzExecSqlTask和EzDataFlowTask的实例。EzAPI任务和容器都在其构造函数中接受父对象。这就是指定对象应该存在于哪个范围的方式。因此,For-Eac

如何使用
EzAPI
将多个数据流任务添加到单个
foreach
容器中。基本上我需要做以下事情


我是EzAPI的新手。有人能给我一个这种场景的代码示例吗。提前感谢。

您的问题可以归结为两个问题:如何创建各种容器和任务?如何定义它们之间的优先级约束

正如您在下面的代码中所看到的,我创建了
EzPackage
EzForEachLoop
EzExecSqlTask
EzDataFlowTask
的实例。EzAPI任务和容器都在其构造函数中接受父对象。这就是指定对象应该存在于哪个范围的方式。因此,For-Each循环将基本包作为其参数,但数据流和Execute-SQL任务使用For-Each循环,以便在该容器中创建它们

定义对象之间的优先约束有不同的机制,取决于您使用的版本:object.AttachTo vs package.precenceconstraints.Add

    public static void GimmieDaCodez()
    {
        EzPackage ezPackage = null;
        EzForEachLoop ezLoop = null;
        string packageName = @"so_22533130";
        string outputFile = string.Format("{0}.dtsx",System.IO.Path.Combine(@"C:\Dropbox\Sandbox\UtumnoSandbox\EzAPIDemo\EzAPIDemo", packageName));

        EzDataFlow df1 = null;
        EzDataFlow df2 = null;
        EzDataFlow df3 = null;
        EzExecSqlTask t4 = null;


        // Instantiate and configure our package
        ezPackage = new EzPackage();
        ezPackage.Name = packageName;
        ezPackage.Description = "A package with a foreach enumerator and muliple data flows";

        // Lazy initialization of FELC
        ezLoop = new EzForEachLoop(ezPackage);
        ezLoop.Name = "FELC Enumerate stuff";
        ezLoop.Description = "EzAPI still does not allow configuration of FELC beyond file enumerator";

        // Instantiate our tasks. Details left to the implementer
        df1 = new EzDataFlow(ezLoop);
        df1.Name = "DFT 1";
        df2 = new EzDataFlow(ezLoop);
        df2.Name = "DFT 2";
        df3 = new EzDataFlow(ezLoop);
        df3.Name = "DFT 3";
        t4 = new EzExecSqlTask(ezLoop);
        t4.Name = "SQL Do all the things";

        df2.AttachTo(df1);
        df3.AttachTo(df1);
        t4.AttachTo(df2);
        t4.AttachTo(df3);

        ezPackage.SaveToFile(outputFile);
    }
使用该代码,我生成了一个如下所示的包

工具书类
  • 我的

看来您已经为for each添加了多个数据流,那么实际问题是什么呢?@ElectricLlama该图像只是为了显示我想做什么。我只需要一个关于如何将多个项目添加到一个容器中的代码示例。@billinkc这是2008 r2抱歉。。。我错过了EzAPI!谢谢你的回答。我只是想知道,在一个Foreach循环容器中是否可以有多个数据流任务。我的源文件是一个excel文件,有8张工作表。每个数据流任务都连接到每个excel文件及其对应的工作表。