[英]Executing SSIS package programmatically
下面是我將要參考的代碼。 幾個問題:
我可以在一個“ String pkgLocation =”語句中引用兩個不同的.DTSX文件嗎? (我在下面做了),如果我做不到,並且有十多個不同的程序包要以編程方式執行,那么有沒有一種快速而輕松的方法來解決這個問題?
以下代碼完全代表實體框架嗎?
自從我玩SSIS以來已經有一段時間了,我想知道如何具體執行它? 只需按“運行”就不會在測試資源管理器中顯示任何內容(可能是因為它不是測試),而當我嘗試執行它時,會收到一條消息,指出“無法直接啟動具有類庫輸出類型的項目”意思?
我在正確的軌道上嗎? (關於以編程方式執行這些程序包)
public class UnitTest1
{
private void Execute_Package()
{
string pkgLocation = @"C:\tfs\z Reports\BI Projects\Customer Service Data Warehouse\Customer Service Data Warehouse" +
@"C:\tfs\z Reports\BI Projects\Customer Service Data Warehouse\SRS DataMart SSIS\SRSDimCategorizationLoad.dtsx";
Package pkg;
Application app;
DTSExecResult pkgResults;
Variables vars;
app = new Application();
pkg = app.LoadPackage(pkgLocation, null);
vars = pkg.Variables;
vars["A_Variable"].Value = "Some value";
pkgResults = pkg.Execute();
}
}
這是我在上面的代碼中編寫的舊代碼 :
private static void LoadTicketLifeCycleSnapShotFact()
{
ExceutePackage(@"C:\tfs\z Reports\BI Projects\Customer Service Data Warehouse\Customer Service Data Warehouse\SAPBPDataToStage.dtsx");
ExceutePackage(@"C:\tfs\z Reports\BI Projects\Customer Service Data Warehouse\SRS DataMart SSIS\SRSDimCategorizationLoad.dtsx");
我將創建一個包含程序包位置的數組,然后通過它們枚舉為它們中的每個調用Execute方法。
private void Execute_Package()
{
string [] pkgLocations = new string[]{
@"C:\tfs\z Reports\BI Projects\Customer Service Data Warehouse\Customer Service Data Warehouse",
@"C:\tfs\z Reports\BI Projects\Customer Service Data Warehouse\SRS DataMart SSIS\SRSDimCategorizationLoad.dtsx"};
Package pkg;
Application app;
DTSExecResult pkgResults;
Variables vars;
app = new Application();
foreach(string currentFile in pkgLocations)
{
pkg = app.LoadPackage(currentFile, null);
// Assumes this variable exists in all of the packages
vars = pkg.Variables;
vars["A_Variable"].Value = "Some value";
pkgResults = pkg.Execute();
}
}
要回答您提出的特定問題:
library
。 庫不是可運行的東西。 需要做一些其他事情(使用Main方法)。 對於測試,這將是您的測試工具(nUnit)。 或者,我將創建一個使用測試項目的控制台應用程序,以確保您正確構建了測試用例(然后您創建了一個測試項目來測試您的測試...)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.