从BizTalk Orchestration调用SSIS

时间:2010-03-17 20:50:27

标签: biztalk biztalk-2009

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

我们已决定使用BizTalk Orchestration来启动SSIS包,以实现繁重的工作。但是,有一点需要注意,我们必须能够将信息传递到SSIS,例如文件位置和有关如何拆分某些数据的信息。

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

2 个答案:

答案 0 :(得分:2)

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

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

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

只需从业务流程中调用该方法即可。

答案 1 :(得分:0)

我们最终需要将变量传递给SSIS包,以使其与已启动变量的业务流程相关联。此外,我们需要使用相同的业务流程,但要根据接收位置启动不同的SSIS包。

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

  1. Orchestration使用两个参数调用存储过程:关联GUID和接收位置。
  2. 存储过程在SSIS配置表中存储所需的值。
  3. 存储过程会根据需要调用SQL Server代理作业
  4. 作业运行SSIS作业
  5. SSIS作业成功完成或出现错误,并将结果写入具有相关GUID的XML文件。
  6. BizTalk选择XML文件并关联GUID。
  7. BizTalk根据需要处理任何错误处理。
  8. 我们的同事已为所有感兴趣的人撰写了更详细的解决方案here