Desenvolvendo objetos personalizados para o Integration Services
Quando os objetos fluxo de controle e fluxo de dados incluídos no SQL Server Integration Services não satisfazem totalmente seus requisitos, você pode desenvolver muitos tipos de objetos personalizados, entre eles:
Tarefas personalizadas.
Gerenciadores de conexões personalizados. Conectam-se a fontes de dados externas sem suporte no momento.
Provedores de log personalizados. Registram eventos de pacotes em formatos sem suporte no momento.
Enumeradores personalizados. Oferecem suporte à iteração sobre um conjunto de formatos de objetos ou valores sem suporte no momento.
Componentes de fluxo de dados personalizados. Podem ser configurados como origens, transformações ou destinos.
O modelo de objeto do Integration Services facilita esse desenvolvimento personalizado com classes base que fornecem uma estrutura consistente e confiável para sua implementação personalizada.
Se você não tiver que reutilizar a funcionalidade personalizada em múltiplos pacotes, a tarefa Script e o componente Script proporcionam o total poder de uma linguagem de programação gerenciada, com significativamente menos códigos de infra-estrutura para gravar. Para obter mais informações, consulte Comparando soluções de script e objetos personalizados.
Para obter exemplos funcionais de cada tipo de objeto, consulte os exemplos do Integration Services no Codeplex.
Etapas de desenvolvimento de um objeto personalizado para o Integration Services
Quando você desenvolve um objeto personalizado para usar no Integration Services, você desenvolve uma Biblioteca de Classes (DLL) que será carregada em tempo de design e em tempo de execução pelo SSIS Designer e pelo tempo de execução do Integration Services. Os métodos mais importantes que você deve implementar não são métodos que você chama do seu próprio código, mas métodos que o tempo de execução chama em momentos apropriados para inicializar e validar seu componente e invocar sua funcionalidade.
Eis as etapas que você deve seguir para desenvolver um objeto personalizado:
Crie um projeto novo do tipo Biblioteca de Classes na linguagem de programação gerenciada de sua preferência.
Herde da classe base apropriada, como mostrado na tabela seguinte.
Aplique o atributo apropriado em sua classe nova, como mostrado na tabela seguinte.
Substitua os métodos da classe base, conforme requerido, e grave o código para a funcionalidade personalizada de seu objeto.
Opcionalmente, compile uma interface do usuário personalizada para seu componente. Para facilitar a implantação, talvez você queira desenvolver a interface do usuário como um projeto separado na mesma solução, e compilá-lo como um assembly separado.
Compile, implante e depure seu novo objeto personalizado conforme descrito em Compilando, implantando e depurando objetos personalizados.
Classes base, atributos e métodos importantes
Esta tabela fornece uma referência fácil aos elementos mais importantes no modelo de objeto do Integration Services para cada tipo de objeto personalizado que você pode desenvolver.
Objeto personalizado |
Classe base |
Atributo |
Métodos importantes |
---|---|---|---|
Tarefa |
|||
Gerenciador de conexões |
|||
Provedor de log |
|||
Enumerador |
|||
Componente de fluxo de dados |
Fornecendo uma interface do usuário personalizada
Para permitir que os usuários de seu objeto personalizado configurem suas propriedades, você também pode ter que desenvolver uma interface do usuário personalizada. Nos casos em que uma interface do usuário personalizada não for estritamente necessária, você pode escolher criar uma para fornecer uma interface mais amigável do que o editor padrão.
Em um projeto ou assembly de interface do usuário personalizada, normalmente você tem duas classes – uma classe que implementa uma interface do Integration Services para interfaces do usuário para o tipo específico de objeto personalizado, e o formulário do Windows exibido para reunir informações do usuário. As interfaces que você implementa têm somente alguns métodos e uma interface do usuário personalizada não é difícil desenvolver.
Observação |
---|
Muitos provedores de log do Integration Services têm uma interface do usuário personalizada que implementa o IDtsLogProviderUI e substitui a caixa de texto Configuração por uma lista suspensa filtrada com gerenciadores de conexões disponíveis. Porém, interfaces do usuário personalizadas não são implementadas para provedores de log personalizados nesta versão do Integration Services. Especificar um valor para a propriedade UITypeName do DtsLogProviderAttribute não tem efeito. |
A tabela a seguir fornece uma referência fácil às interfaces que você deve implementar quando desenvolve uma interface do usuário personalizada para cada tipo de objeto personalizado. Ela também explica o que o usuário vê se você decide não desenvolver uma interface do usuário personalizada para seu objeto, ou se você deixa de vincular seu objeto à sua interface do usuário usando a propriedade UITypeName no atributo do objeto. Embora o potente Editor Avançado possa ser satisfatório para um componente de fluxo de dados, a janela Propriedades é uma solução menos amigável para tarefas e gerenciadores de conexões, e um enumerador de Foreach personalizado não pode ser configurado sem um formulário personalizado.
Objeto personalizado |
Classe base para interface do usuário |
Comportamento de edição padrão se nenhuma interface do usuário personalizada é fornecida |
---|---|---|
Tarefa |
Somente a janela Propriedades |
|
Gerenciador de conexões |
Somente a janela Propriedades |
|
Provedor de log |
(Não implementado no Integration Services) |
Caixa de texto na coluna Configuração |
Enumerador |
Somente a janela Propriedades. A área Configuração do Enumerador do editor está vazia. |
|
Componente de fluxo de dados |
Editor Avançado |
|
Consulte também