共用方式為


執行程序任務

執行進程工作會在 SQL Server Integration Services 套件工作流程中執行應用程式或批處理檔。 雖然您可以使用 「執行進程」工作來開啟任何標準應用程式,例如 Microsoft Excel 或 Microsoft Word,但您通常會使用它來執行針對數據源運作的商務應用程式或批處理檔。 例如,您可以使用「執行進程」工作來展開壓縮的文字檔。 然後封裝可以使用文本檔做為封裝中數據流的數據源。 另一個範例是,您可以使用「執行進程」工作來執行產生每日銷售報表的自定義 Visual Basic 應用程式。 然後,您可以將報表附加至傳送郵件工作,並將報表轉寄至通訊組清單。

Integration Services 包含執行工作流程作業的其他工作,例如執行封裝。 如需詳細資訊,請參閱 執行封裝工作

執行程序任務上可用的自訂日誌條目

下表列出執行程序任務的自定義日誌條目。 如需詳細資訊,請參閱 Integration Services (SSIS) 記錄自訂記錄訊息

記錄項目 說明
ExecuteProcessExecutingProcess 提供工作設定執行的進程相關資訊。

會寫入兩個日誌條目。 其中一個包含工作執行的可執行檔之名稱和位置的相關信息;另一個條目則記錄從可執行檔退出的情況。
ExecuteProcessVariableRouting 提供哪些變數會路由傳送至可執行檔的輸入和輸出的相關信息。 記錄項目會針對 stdin (輸入)、stdout (輸出) 和 stderr (錯誤輸出) 寫入。

執行進程工作的設定

您可以透過 SSIS 設計師或以程式設計方式設定屬性。

如需您可以在 SSIS 設計工具中設定之屬性的詳細資訊,請按下列其中一個主題:

如需如何在 SSIS 設計工具中設定這些屬性的詳細資訊,請按下列主題:

屬性設定

當執行進程工作執行自定義應用程式時,工作會透過下列其中一個或兩種方法提供應用程式輸入:

  • 您在 StandardInputVariable 屬性設定中指定的變數。 如需變數的詳細資訊,請參閱 Integration Services (SSIS) 變數 和使用 封裝中的變數

  • 您在 Arguments 屬性設定中指定的自變數。 (例如,如果工作在 Word 中開啟檔,自變數可以命名.doc檔案。)

若要在一個「執行進程」工作中將多個自變數傳遞至自定義應用程式,請使用空格來分隔自變數。 自變數不能包含空格;否則,工作將不會執行。 您可以使用表示式來傳遞變數值做為自變數。 在下列範例中,表達式會將兩個變數值當做自變數傳遞,並使用空格來分隔自變數:

@variable1 + " " + @variable2

您可以使用表示式來設定各種執行進程工作屬性。

當您使用 StandardInputVariable 屬性來設定執行進程工作以提供輸入時,請從應用程式呼叫 Console.ReadLine 方法以讀取輸入。 如需詳細資訊,請參閱 Microsoft .NET Framework 類別庫中的主題 :Console.ReadLine 方法

當您使用 Arguments 屬性來設定執行進程工作以提供輸入時,請執行下列其中一個步驟來取得自變數:

  • 如果您使用 Microsoft Visual Basic 來撰寫應用程式,請設定 My.Application.CommandLineArgs 屬性。 下列範例中,My.Application.CommandLineArgs 屬性用來擷取兩個參數:

    Dim variable1 As String = My.Application.CommandLineArgs.Item(0)  
    Dim variable2 As String = My.Application.CommandLineArgs.Item(1)   
    

    如需詳細資訊,請參閱Visual Basic參考中的 My.Application.CommandLineArgs 屬性主題。

  • 如果您使用 Microsoft Visual C# 來撰寫應用程式,請使用 Main 方法。

    如需詳細資訊,請參閱 C# 程式設計手冊中的主題Command-Line 自變數(C# 程式設計手冊)。

執行進程工作也包含 StandardOutputVariableStandardErrorVariable 屬性,分別指定取用應用程式之標準輸出和錯誤輸出的變數。

此外,您可以設定執行進程工作來指定工作目錄、逾時期間或值,以指出可執行檔已成功執行。 如果可執行檔的傳回碼不符合指出成功的值,或找不到指定位置的可執行檔,工作也可以設定為失敗。

執行進程工作的程式設計設定

如需有關以程式設計方式設定這些屬性的詳細資訊,請按下列主題:

另請參閱

Integration Services 工作
控制流程