Tarefa ScriptScript Task

A tarefa Script fornece código para execução de funções que não estão disponíveis nas tarefas internas e transformações fornecidas pelo SQL ServerSQL Server Integration ServicesIntegration Services .The Script task provides code to perform functions that are not available in the built-in tasks and transformations that SQL ServerSQL Server Integration ServicesIntegration Services provides. A tarefa Script também pode combinar funções em um script em vez de usar tarefas e transformações múltiplas.The Script task can also combine functions in one script instead of using multiple tasks and transformations. A tarefa Script é usada para trabalho que deve ser feito uma vez em um pacote (ou uma vez por objeto enumerado), e não para trabalho a ser feito uma vez por linha de dados.You use the Script task for work that must be done once in a package (or once per enumerated object), instead than once per data row.

A tarefa Script pode ser usada para os seguintes propósitos:You can use the Script task for the following purposes:

  • Acessar dados usando outras tecnologias para as quais os tipos de conexão interna não dão suporte.Access data by using other technologies that are not supported by built-in connection types. Por exemplo, um script pode usar o ADSI (Active Directory Service Interfaces) para acessar e extrair os nomes de usuário do Active Directory.For example, a script can use Active Directory Service Interfaces (ADSI) to access and extract user names from Active Directory.

  • Criar um contador de desempenho específico de pacote.Create a package-specific performance counter. Por exemplo, um script pode criar um contador de desempenho que é atualizado enquanto uma tarefa de desempenho complexo ou insatisfatório é executada.For example, a script can create a performance counter that is updated while a complex or poorly performing task runs.

  • Identificar se os arquivos especificados estão vazios ou quantas filas eles contêm e com base nessa informação afetar o fluxo de controle em um pacote.Identify whether specified files are empty or how many rows they contain, and then based on that information affect the control flow in a package. Por exemplo, se um arquivo não contiver nenhuma linha, o valor de uma variável definido como 0, e uma restrição de precedência que avalia o valor impedir que uma tarefa Sistema de Arquivos copie o arquivo.For example, if a file contains zero rows, the value of a variable set to 0, and a precedence constraint that evaluates the value prevents a File System task from copying the file.

    Se você tiver que usar o script para fazer o mesmo trabalho para cada linha de dados em um conjunto, use o componente Script no lugar da tarefa Script.If you have to use the script to do the same work for each row of data in a set, you should use the Script component instead of the Script task. Por exemplo, para avaliar a racionalidade de um valor de postagem e ignorar linhas de dados com valores muito altos ou baixos, use um componente Script.For example, if you want to assess the reasonableness of a postage amount and skip data rows that have very high or low amounts, you would use a Script component. Para obter mais informações, consulte Script Component.For more information, see Script Component.

    Se mais de um pacote usar um script, considere gravar uma tarefa personalizada em vez de usar a tarefa Script.If more than one package uses a script, consider writing a custom task instead of using the Script task. Para obter mais informações, consulte Desenvolvendo uma tarefa personalizada.For more information, see Developing a Custom Task.

    Depois de decidir que a tarefa Script é a escolha apropriada para seu pacote, você precisa desenvolver o script usado pela tarefa e configurar a própria tarefa.After you decide that the Script task is the appropriate choice for your package, you have to both develop the script that the task uses and configure the task itself.

Gravando e executando o Script usado pela tarefaWriting and Running the Script that the Task Uses

A tarefa Script usa o MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) como o ambiente no qual você grava os scripts e o mecanismo que executa esses scripts.The Script task uses MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) as the environment in which you write the scripts and the engine that runs those scripts.

O VSTA fornece todos os recursos padrão do ambiente Visual StudioVisual Studio , como o editor Visual StudioVisual Studio codificado por cor, o IntelliSense e o Pesquisador de Objetos.VSTA provides all the standard features of the Visual StudioVisual Studio environment, such as the color-coded Visual StudioVisual Studio editor, IntelliSense, and Object Explorer. O VSTA também usa o mesmo depurador usado por outras ferramentas de desenvolvimento MicrosoftMicrosoft .VSTA also uses the same debugger that other MicrosoftMicrosoft development tools use. Os pontos de interrupção no script funcionam de forma consistente com os pontos de interrupção em tarefas e contêineres do Integration ServicesIntegration Services .Breakpoints in the script work seamlessly with breakpoints on Integration ServicesIntegration Services tasks and containers. O VSTA dá suporte às linguagens de programação MicrosoftMicrosoft Visual Basic e MicrosoftMicrosoft Visual C#.VSTA supports both the MicrosoftMicrosoft Visual Basic and MicrosoftMicrosoft Visual C# programming languages.

Para executar um script é necessário ter VSTA instalado no computador onde o pacote é executado.To run a script, you must have VSTA installed on the computer where the package runs. Quando o pacote é executado, a tarefa carrega o mecanismo de script e executa o script.When the package runs, the task loads the script engine and runs the script. Você pode acessar assemblies .NET externos em scripts adicionando referências aos assemblies no projeto.You can access external .NET assemblies in scripts by adding references to the assemblies in the project.

Observação

Ao contrário das versões anteriores em que você podia indicar se os scripts eram pré-compilados, todos os scripts são pré-compilados no SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS) e em versões posteriores.Unlike earlier versions where you could indicate whether the scripts were precompiled, all scripts are precompiled in SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS) and later versions. Quando um script é pré-compilado, o mecanismo de linguagem não é carregado no tempo de execução e o pacote é executado mais rapidamente.When a script is precompiled, the language engine is not loaded at run time and the package runs more quickly. No entanto, arquivos binários pré-compilados consomem espaço significativo em disco.However, precompiled binary files consume significant disk space.

Configurando a tarefa ScriptConfiguring the Script Task

Você pode configurar a tarefa Script das seguintes formas:You can configure the Script task in the following ways:

  • Forneça o script personalizado executado pela tarefa.Provide the custom script that the task runs.

  • Especifique o método no projeto VSTA que o tempo de execução Integration ServicesIntegration Services chama como o ponto de entrada no código da tarefa Script.Specify the method in the VSTA project that the Integration ServicesIntegration Services runtime calls as the entry point into the Script task code.

  • Especifique a linguagem do script.Specify the script language.

  • Opcionalmente, forneça listas somente leitura e variáveis de leitura/gravação para uso no script.Optionally, provide lists of read-only and read/write variables for use in the script.

    Você pode definir essas propriedades com o Designer SSISSSIS ou programaticamente.You can set these properties through SSISSSIS Designer or programmatically.

Configurando a tarefa Script no DesignerConfiguring the Script Task in the Designer

A tabela a seguir descreve o evento ScriptTaskLogEntry que pode ser registrado para a tarefa Script.The following table describes the ScriptTaskLogEntry event that can be logged for Script task. O evento ScriptTaskLogEntry é selecionado para registro em log na guia Detalhes da caixa de diálogo Configurar Logs de SSIS .The ScriptTaskLogEntry event is selected for logging on the Details tab of the Configure SSIS Logs dialog box. Para obter mais informações, consulte Log do SSIS (Integration Services).For more information, see Integration Services (SSIS) Logging.

Entrada de logLog entry DescriptionDescription
ScriptTaskLogEntryScriptTaskLogEntry Informa os resultados da implementação do registro em log no script.Reports the results of implementing logging in the script. A tarefa grava uma entrada de log para cada chamada ao método Log do objeto Dts .The task writes a log entry for each call to the Log method of the Dts object. A tarefa grava essas entradas quando o código é executado.The task writes these entries when the code is run. Para obter mais informações, consulte Registro em log na Tarefa Script.For more information, see Logging in the Script Task.

Para obter mais informações sobre as propriedades que podem ser definidas no SSISSSIS Designer, consulte os tópicos a seguir:For more information about the properties that you can set in SSISSSIS Designer, see the following topics:

Configurando a tarefa Script programaticamenteConfiguring the Script Task Programmatically

Para obter mais informações sobre como definir essas propriedades programaticamente, veja o tópico a seguir:For more information about programmatically setting these properties, see the following topic:

Editor da Tarefa Script (página Geral)Script Task Editor (General Page)

Use a página Geral da caixa de diálogo Editor da Tarefa Script para nomear e descrever a tarefa Script.Use the General page of the Script Task Editor dialog box to name and describe the Script task.

Para obter mais informações sobre a tarefa Script, consulte Script Task e Configurando a tarefa Script no Editor da Tarefa Script.To learn more about the Script task, see Script Task and Configuring the Script Task in the Script Task Editor. Para obter informações sobre a programação da tarefa Script, consulte Extending the Package with the Script Task.To learn about programming the Script task, see Extending the Package with the Script Task.

OpçõesOptions

NomeName
Forneça um nome exclusivo para a tarefa Script.Provide a unique name for the Script task. Esse nome é usado como rótulo no ícone de tarefa.This name is used as the label in the task icon.

Observação

Os nomes das tarefas devem ser exclusivos em um pacote.Task names must be unique within a package.

DescriçãoDescription
Digite uma descrição para a tarefa Script.Type a description of the Script task.

Editor da Tarefa Script (página Script)Script Task Editor (Script Page)

Use a página Script da caixa de diálogo Editor da Tarefa Script para definir propriedades de script e especificar variáveis que podem ser acessados pelo script.Use the Script page of the Script Task Editor dialog box to set script properties and specify variables that can be accessed by the script.

Observação

No SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS) e versões posteriores, todos os scripts são pré-compilados.In SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS) and later versions, all scripts are precompiled. Em versões anteriores, devia ser definida uma propriedade PrecompileScriptIntoBinaryCode para especificar que o script estava pré-compilado.In earlier versions, you set a PrecompileScriptIntoBinaryCode property to specify that the script was precompiled.

Para obter mais informações sobre a tarefa Script, consulte Script Task e Configurando a tarefa Script no Editor da Tarefa Script.To learn more about the Script task, see Script Task and Configuring the Script Task in the Script Task Editor. Para obter informações sobre a programação da tarefa Script, consulte Extending the Package with the Script Task.To learn about programming the Script task, see Extending the Package with the Script Task.

OpçõesOptions

ScriptLanguageScriptLanguage
Selecione a linguagem de criação de scripts para a tarefa, o MicrosoftMicrosoft Visual Basic ou o MicrosoftMicrosoft Visual C#.Select the scripting language for the task, either MicrosoftMicrosoft Visual Basic or MicrosoftMicrosoft Visual C#.

Depois de criar um script para a tarefa, você não poderá alterar o valor da propriedade ScriptLanguage .After you have created a script for the task, you cannot change the value of the ScriptLanguage property.

Para definir a linguagem de criação de scripts padrão para a tarefa Script, use a opção Idiomas de script na página Geral da caixa de diálogo Opções .To set the default scripting language for the Script task, use the Scripting language option on General page of the Options dialog box. Para obter mais informações, consulte General Page.For more information, see General Page.

EntryPointEntryPoint
Especifique o método a ser chamado pelo tempo de execução do Integration ServicesIntegration Services como ponto de entrada no código da tarefa Script.Specify the method that the Integration ServicesIntegration Services runtime calls as the entry point into the code of the Script task. O método especificado deve estar na classe ScriptMain do projeto do MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA). ScriptMain é a classe padrão gerada pelos modelos de script.The specified method must be in the ScriptMain class of the MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) project The ScriptMain class is the default class generated by the script templates.

Caso altere o nome do método no projeto do VSTA, será preciso alterar o valor da propriedade EntryPoint .If you change the name of the method in the VSTA project, you must change the value of the EntryPoint property.

ReadOnlyVariablesReadOnlyVariables
Digite uma lista, separada por vírgulas, de variáveis somente leitura disponíveis para o script ou clique no botão de reticências (...) e selecione as variáveis na caixa de diálogo Selecionar variáveis .Type a comma-separated list of read-only variables that are available to the script, or click the ellipsis () button and select the variables in the Select variables dialog box.

Observação

Nomes de variáveis fazem diferenciação de maiúsculas e minúsculas.Variable names are case sensitive.

ReadWriteVariablesReadWriteVariables
Digite uma lista, separada por vírgulas, de variáveis de leitura/gravação disponíveis para o script ou clique no botão de reticências () e selecione as variáveis na caixa de diálogo Selecionar variáveis .Type a comma-separated list of read/write variables that are available to the script, or click the ellipsis () button and select the variables in the Select variables dialog box.

Observação

Nomes de variáveis fazem diferenciação de maiúsculas e minúsculas.Variable names are case sensitive.

Editar ScriptEdit Script
Abre o VSTA IDE, onde você pode criar ou modificar o script.Opens the VSTA IDE where you can create or modify the script.