Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
SSIS Integration Runtime em Azure Data Factory
Antes de escrever código personalizado no componente Script, deve selecionar o tipo de componente de fluxo de dados que pretende criar — fonte, transformação ou destino — e depois configurar os metadados e propriedades do componente no Script Transformation Editor.
Seleção do Tipo de Componente a Criar
Quando adiciona um componente Script ao painel Fluxo de Dados do SSIS Designer, aparece a caixa de diálogo Selecionar Tipo de Componente de Script. Pré-configuras o componente como fonte, transformação ou destino. Depois de fazer esta seleção inicial, pode continuar a configurar o componente no Editor de Transformação de Scripts.
Para definir a linguagem de script padrão para o componente Script, use a opção Linguagem de Scripting na página Geral da caixa de diálogo Opções . Para mais informações, consulte a Página Geral.
Compreender os Dois Modos Design-Time
No SSIS Designer, o componente Script tem dois modos: modo de design de metadados e modo de design de código.
Quando abres o Editor de Transformação de Scripts, o componente entra em modo de design de metadados. Neste modo, pode selecionar colunas de entrada, adicionar ou configurar saídas e colunas de saída, mas não pode escrever código. Depois de configurar os metadados do componente, pode mudar para o modo de design de código para escrever o script.
Quando muda para o modo de design de código clicando em Editar Script, o componente Script bloqueia metadados para evitar alterações adicionais e gera automaticamente código base a partir dos metadados das entradas e saídas. Depois de o código auto-gerado estar concluído, poderá introduzir o seu código personalizado. O teu código usa as classes base geradas automaticamente para processar linhas de entrada, aceder a buffers e colunas nos buffers, e recuperar gestores de ligação e variáveis do pacote, tudo como objetos fortemente tipados.
Depois de introduzir o seu código personalizado no modo de design de código, pode voltar ao modo de design de metadados. Isto não apaga nenhum código que tenha introduzido; no entanto, alterações subsequentes aos metadados fazem com que a classe base seja regenerada. Depois disso, o seu componente pode falhar a validação porque os objetos referenciados pelo seu código personalizado podem deixar de existir ou podem ter sido modificados. Neste caso, deve corrigir manualmente o seu código para que possa ser compilado com sucesso contra a classe base regenerada.
Configuração do Componente no Modo de Design de Metadados
No modo de design de metadados, podes selecionar colunas de entrada, adicionar e configurar saídas e colunas de saída, mas não podes escrever código. Depois de configurares os metadados do componente, muda para o modo de design de código para escrever o script.
As propriedades que deve configurar no editor personalizado dependem da utilização do componente Script. O componente Script pode ser configurado como fonte, transformação ou destino. Dependendo de como o componente é usado, ele suporta uma entrada ou saídas ou ambas. O código personalizado que vais escrever processa as linhas e colunas de entrada e saída.
Página de Colunas de Entradas do Editor de Transformação de Scripts
A página de Colunas de Entrada do Editor de Transformação de Scripts é exibida para transformações e destinos, mas não para fontes. Nesta página, seleciona as colunas de entrada disponíveis que pretende disponibilizar ao seu script personalizado e especifica acesso apenas de leitura ou leitura/escrita a elas.
No projeto de código que será gerado com base nestes metadados, o item do projeto BufferWrapper contém uma classe para cada entrada, e esta classe contém propriedades de acessório tipadas para cada coluna de entrada selecionada. Por exemplo, se selecionar uma coluna inteira CustomerID e uma cadeia CustomerName a partir de uma entrada chamada CustomerInput, o item do projeto BufferWrapper conterá uma classe CustomerInput que deriva de ScriptBuffer, e a classe CustomerInput exporá uma propriedade inteira chamada CustomerID e uma propriedade string chamada CustomerName. Esta convenção torna possível escrever código com verificação de tipos como segue:
Dim currentCustomerID as Integer = CustomerInput.CustomerID
Dim currentCustomerName as String = CustomerInput.CustomerName
Para mais informações sobre como configurar colunas de entrada para um tipo específico de componente de fluxo de dados, consulte o exemplo apropriado em Desenvolvimento de Tipos Específicos de Componentes de Script.
Página de Entradas e Saídas do Editor de Transformação de Scripts
A página de Entrada e Saída do Editor de Transformação de Scripts é exibida para fontes, transformações e destinos. Nesta página, adiciona, remove e configura entradas, saídas e colunas de saída que pretende usar no seu script personalizado, dentro das seguintes limitações:
Quando usado como fonte, o componente Script não tem entrada e suporta múltiplas saídas.
Quando usado como transformação, o componente Script suporta uma entrada e múltiplas saídas.
Quando usado como destino, o componente Script suporta uma entrada e não tem saídas.
No projeto de código que será gerado com base nestes metadados, o item do projeto BufferWrapper contém uma classe para cada entrada e saída. Por exemplo, se criar uma saída chamada CustomerOutput, o item do projeto BufferWrapper conterá uma classe CustomerOutput que deriva de ScriptBuffer, e a classe CustomerOutput conterá propriedades de acesso tipadas para cada coluna de saída criada.
Podes configurar colunas de saída apenas na página de Entrada e Saída . Pode selecionar colunas de entrada para transformações e destinos na página de Colunas de Entrada . As propriedades do acessório tipado criadas para si no item do projeto BufferWrapper serão apenas de escrita para colunas de saída. As propriedades do acessor para colunas de entrada serão apenas leitura ou leitura/escrita, dependendo do tipo de utilização que selecionou para cada coluna na página de Colunas de Entrada .
Para mais informações sobre a configuração de entradas e saídas para um tipo específico de componente de fluxo de dados, consulte o exemplo apropriado em Desenvolvimento de Tipos Específicos de Componentes de Script.
Note
Embora não possa configurar diretamente uma saída como saída de erro no componente Script para o tratamento automático das linhas de erro, pode reproduzir a funcionalidade de uma saída de erro criando uma saída adicional e usando um script para direcionar as linhas para essa saída quando apropriado. Para mais informações, veja Simulação de uma Saída de Erro para o Componente de Script.
ExclusionGroup e SynchronousInputID Propriedades das Saídas
A propriedade ExclusionGroup tem um valor diferente de zero apenas em transformações com saídas síncronas, onde o seu código realiza filtragem ou ramificação e direciona cada linha para uma das saídas que partilham o mesmo valor ExclusionGroup não nulo. Por exemplo, a transformação pode direcionar linhas para a saída padrão ou para uma saída de erro. Ao criar saídas adicionais para este cenário, certifique-se de definir o valor da propriedade SynchronousInputID para o inteiro que corresponde ao ID da entrada do componente.
A propriedade SynchronousInputID tem um valor diferente de zero apenas em transformações com saídas síncronas. Se o valor desta propriedade for zero, significa que a saída é assíncrona. Para uma saída síncrona, onde as linhas são passadas para a saída ou saídas selecionadas sem adicionar novas linhas, esta propriedade deve conter o ID da entrada do componente.
Note
Quando o Editor de Transformação de Scripts cria a primeira saída, define a propriedade SynchronousInputID da saída como o ID da entrada do componente. No entanto, quando o editor cria saídas subsequentes, define as propriedades SynchronousInputID dessas saídas a zero.
Se estiver a criar um componente com saídas síncronas, cada saída deve ter a sua propriedade SynchronousInputID definida para o ID da entrada do componente. Portanto, cada saída que o editor cria após a primeira saída deve ter o seu valor SynchronousInputID alterado de zero para o ID da entrada do componente.
Se estiver a criar um componente com saídas assíncronas, cada saída deve ter a sua propriedade SynchronousInputID definida a zero. Portanto, a primeira saída deve ter o seu valor SynchronousInputID alterado do ID da entrada do componente para zero.
Para um exemplo de direcionar linhas para uma de duas saídas síncronas no componente Script, veja Criar uma Transformação Síncrona com o Componente Script.
Nomes de Objetos em Script Gerado
O componente Script analisa os nomes das entradas e saídas, e analisa os nomes das colunas nas entradas e saídas, e com base nestes nomes gera classes e propriedades no item do projeto BufferWrapper. Se os nomes encontrados incluírem caracteres que não pertencem às categorias Unicode Letra maiúscula, letra minúscula, letraTítulo, LetraModificadora, Outra Letra ou Letra DecimalDigito, os caracteres inválidos são eliminados nos nomes gerados. Por exemplo, os espaços são eliminados, pelo que duas colunas de entrada com os nomes Primeiro Nome e [Primeiro Nome] são ambas interpretadas como tendo o nome da coluna Primeiro Nome, com resultados imprevisíveis. Para evitar esta situação, os nomes das entradas e saídas e das colunas de entrada e saída usadas pelo componente Script devem conter apenas caracteres nas categorias Unicode listadas nesta secção.
Página de Script do Editor de Transformação de Scripts
Na página de Script do Editor de Tarefas de Script, atribuis um nome único e uma descrição para a tarefa de Script. Também pode atribuir valores às seguintes propriedades.
Note
No SQL Server 2008 Integration Services (SSIS) e versões posteriores, todos os scripts são pré-compilados. Em versões anteriores, especificava se os scripts estavam pré-compilados definindo uma propriedade de pré-compilação para a tarefa.
ValidateExternalMetadata Property
O valor booleano da propriedade ValidateExternalMetadata especifica se o componente deve realizar validação contra fontes de dados externas no momento do projeto, ou se deve adiar a validação até ao tempo de execução. Por defeito, o valor desta propriedade é Verdadeiro; ou seja, os metadados externos são validados tanto no momento do design como na execução. Pode querer definir o valor desta propriedade para False quando uma fonte de dados externa não estiver disponível em tempo de design: por exemplo, quando o pacote descarrega a fonte ou cria o destino apenas em tempo de execução.
ReadOnlyVariables e propriedades ReadWriteVariables
Pode introduzir listas delimitadas por vírgulas de variáveis existentes como valores dessas propriedades para tornar as variáveis disponíveis para acesso apenas de leitura ou leitura/escrita dentro do código componente Script. As variáveis são acedidas no código através das ReadOnlyVariables propriedades e ReadWriteVariables da classe base autogerada. Para mais informações, consulte Utilização de Variáveis no Componente de Script.
Note
Os nomes das variáveis diferenciam maiúsculas de minúsculas.
ScriptLanguage
Pode selecionar Microsoft Visual Basic ou Microsoft Visual C# como linguagem de programação para o componente Script.
Botão de Editar Script
O botão Editar Script abre o IDE Microsoft Visual Studio Tools for Applications (VSTA), onde escreve o seu script personalizado. Para mais informações, consulte Codificação e Depuração do Componente de Script.
Página de Gestores de Ligação do Editor de Transformação de Scripts
Na página de Gestores de Ligação do Editor de Transformação de Scripts, adiciona e remove gestores de conexões que pretende usar no seu script personalizado. Normalmente, é necessário consultar gestores de ligação quando cria um componente de origem ou destino.
No projeto de código que será gerado com base nestes metadados, o item do projeto ComponentWrapper contém uma classe de coleção Connections que tem uma propriedade de acesso tipada para cada gestor de conexões selecionado. Cada propriedade de acessório tipada tem o mesmo nome do próprio gestor de conexões e retorna uma referência ao gestor de ligação como uma instância de IDTSConnectionManager100. Por exemplo, se adicionou um gestor de conexões nomeado MyADONETConnection na página de Gerentes de Ligação do editor, pode obter uma referência ao gestor de conexões no seu script usando o seguinte código:
Dim myADONETConnectionManager As IDTSConnectionManager100 = _
Me.Connections.MyADONETConnection
Para mais informações, consulte Ligação a Fontes de Dados no Componente de Script.