执行进程任务在 SQL Server Integration Services 包工作流中运行应用程序或批处理文件。 尽管可以使用执行进程任务打开任意标准应用程序(例如 Microsof Excel 或 Microsoft Word),但通常还是使用它来运行针对数据源执行的业务应用程序或批处理文件。 例如,可以使用执行进程任务来展开一个压缩的文本文件。 然后,包可将该文本文件用作包中数据流的数据源。 再举一个例子,您可以使用执行进程任务运行自定义的 Visual Basic 应用程序,该应用程序生成日销售报表。 然后,可以将该报表附加到发送邮件任务,并将其转发给通讯组列表。
Integration Services 还包含一些执行工作流操作的其他任务(如执行包)。 有关详细信息,请参阅 “执行包任务”
执行进程任务上可用的自定义日志条目
下表列出了执行进程任务的自定义日志项。 有关详细信息,请参阅 Integration Services (SSIS) 日志记录 和 用于日志记录的自定义消息。
日志项 | DESCRIPTION |
---|---|
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# 编程指南)。
执行进程任务还包括 StandardOutputVariable 和 StandardErrorVariable 属性,用来分别指定使用该应用程序的标准输出和错误输出的变量。
另外,您还可以配置执行进程任务来指定工作目录、超时期限或表示可执行文件成功运行的值。 如果可执行文件的返回代码与指示成功的值不匹配,或者未在指定位置找到可执行文件,也可以将该任务配置为失败。
执行进程任务的编程配置
有关以编程方式设置这些属性的详细信息,请单击以下主题: