Um cenário que podemos encarar durante a criação de pacotes do SQL Server Integration Services (SSIS) é a necessidade de executar código contido em assemblies .Net em algum passo do pacote do SSIS. Neste post vou demonstrar como incluir e executar assemblies em pacotes do Integration.
Primeiro, vamos criar um projeto Class Library no Visual Studio. Este projeto Class Library será o projeto gerador do assembly que será anexado ao pacote do Integration.
Depois de criado o projeto, vamos adicionar uma classe que irá conter o comportamento que queremos executar no pacote do Integration. Neste exemplo criei uma classe chamada MyRules que possui um único método chamado ExecuteConcat, que irá concatenar duas strings.
Para que o pacote do Integration consiga executar o assembly é preciso que o mesmo esteja registrado no GAC da máquina. Para isso, é preciso associar um Strong Name ao assembly. Para fazer isso clique com o botão direito sobre o projeto, navegue até a aba Signing, marque a opção “Sign the assembly” e crie um novo arquivo “Strong Name Key”, conforme a imagem abaixo.
Depois disso é preciso registrar o assembly no GAC. Abra o “Visual Studio Command Prompt (2010)” e utilize o comando “gacutil” para registrar o assembly, será preciso passar dois parâmetros, sendo eles: em primeiro lugar, “-i” para indicar que se deseja fazer uma instalação; e em segundo lugar, o caminho do arquivo que será registrado no GAC.
Se olharmos o GAC veremos o assembly registrado. No caso deste exemplo o assembly se chama “SSIS_MyRules”, e ficará registrado conforme a figura abaixo:
Agora, criaremos nosso pacote do Integration. Abra o Microsoft Visual Studio Business Intelligence e crie um novo projeto utilizando o template “Integration Services Connections Project”.
Adicione uma nova Script Task no Control Flow do pacote do Integration. Dê um duplo-clique sobre a task e abrirá uma janela para edição do Script Task, clique em Edit Script. Uma janela do Integration Services Script Task será aberta, conforme a imagem abaixo.
Adicione uma referência ao assembly do projeto Class Library criado anteriormente e preencha o método Main com o código abaixo.
Após isso basta executar o pacote do Integration e observar a execução de todo o processo. Veremos que a execução irá apresentar um MessageBox com as palavras “Entity” e “Framework” concatenadas. E quando atingido o fim do processamento com sucesso, o ícone da Script Task ficará na cor verde.
Esta foi uma demonstração de como executar pacotes do SSIS fazendo referência a assemblies escritos em .Net.
[]s e até o próximo!
Por
Fernando Henrique Inocêncio Borba Ferreira
Microsoft Most Valuable Professional – Data Plaftorm Development