3

我有一个场景是我需要移动大量数据,并且我需要使用 BizTalk 来控制流程并包含业务逻辑。问题是 BizTalk 将无法处理需要移动的数据量。

我们已决定通过 BizTalk 编排启动一个 SSIS 包,该包执行实际繁重的工作。但是,需要注意的是,我们必须能够将信息传递到 SSIS,例如文件位置和有关如何拆分某些数据的信息。

我的问题是,给定这些参数,从编排调用 SSIS 的最佳方式是什么?我应该围绕它构建一个网络服务吗?是否有我可以调用的适配器或存储过程?或者有没有办法直接从编排中调用它?

4

2 回答 2

2

您可能想简单地向您的项目添加一个带有静态方法的 C# 类,并调用标准代码来启动 SSIS 包:

http://www.codeproject.com/KB/database/CallSSISFromCSharp.aspx

http://msdn.microsoft.com/en-us/library/ms136090.aspx

只需从您的编排中调用该方法。

于 2010-03-17T21:07:57.470 回答
0

我们最终需要将变量传递给 SSIS 包,以使其与启动它的编排相关联。我们还需要使用相同的编排,但让它根据接收位置启动不同的 SSIS 包。

我们最终得到了这样的解决方案:

  1. 编排调用具有两个参数的存储过程:相关 GUID 和接收位置。
  2. 存储过程将所需的值存储在 SSIS 配置表中。
  3. 存储过程酌情调用 SQL Server 代理作业
  4. 作业运行 SSIS 作业
  5. SSIS 作业成功完成或出现错误,并将结果写入具有相关 GUID 的 XML 文件。
  6. BizTalk 拾取 XML 文件并与 GUID 相关联。
  7. BizTalk 会根据需要处理任何错误处理。

我们的同事在此处为任何感兴趣的人编写了此解决方案的更详细说明。

于 2011-05-08T14:39:52.070 回答