Criando uma tarefa personalizada

As etapas envolvidas na criação de uma tarefa personalizada são semelhantes às etapas da criação de qualquer outro objeto personalizado para o Integration Services:

  • Crie uma classe nova herdada da classe base. Para uma tarefa, a classe base é Task.

  • Aplique o atributo que identifica o tipo de objeto para a classe. Para uma tarefa, o atributo é DtsTaskAttribute.

  • Substitua a implementação dos métodos e propriedades da classe base. Para uma tarefa, isso inclui os métodos Validate e Execute.

  • Opcionalmente, desenvolva uma interface de usuário personalizada. Para uma tarefa, isso requer uma classe que implementa a interface IDtsTaskUI.

Para obter um exemplo do funcionamento de uma tarefa personalizada, consulte os exemplos do Integration Services no Codeplex.

Guia de introdução com uma tarefa personalizada

Criando projetos e classes

Como todas as tarefas gerenciadas derivam da classe base Task, o primeiro passo para criar uma tarefa personalizada é criar um projeto de biblioteca de classes na linguagem de programação gerenciada de sua preferência e criar uma classe herdada da classe base. Nessa classe derivada, você substituirá os métodos e propriedades da classe base para implementar sua funcionalidade personalizada.

Na mesma solução, crie um segundo projeto de biblioteca de classe para a interface de usuário personalizada. Recomenda-se um assembly separado para a interface de usuário para facilitar a implantação pois ela permite que você atualize e reimplante o gerenciador de conexões ou sua interface de usuário de forma independente.

Configure ambos os projetos para atribuir os assemblies que serão gerados no momento de compilação usando um arquivo de chave de nome forte.

Aplicando o atributo DtsTask

Aplique o atributo DtsTaskAttribute à classe que você criou para identificar isso como uma tarefa. Esse atributo fornece informações de tempo de design como o nome, a descrição e o tipo da tarefa.

Use a propriedade UITypeName para vincular a tarefa à sua interface de usuário personalizada. Para obter o token de chave pública requerido para essa propriedade, você pode usar o sn.exe -t para exibir o token de chave pública a partir do arquivo de par de chaves (.snk) a ser usado para atribuir o assembly de interface de usuário.

using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace Microsoft.SSIS.Samples
{
  [DtsTask
  (
   DisplayName = "MyTask",
   IconResource = "MyTask.MyTaskIcon.ico",
   UITypeName = "My Custom Task," +
   "Version=1.0.0.0," +
   "Culture = Neutral," +
   "PublicKeyToken = 12345abc6789de01",
   TaskType = "PackageMaintenance",
   TaskContact = "MyTask; company name; any other information",
   RequiredProductLevel = DTSProductLevel.None
   )]
  public class MyTask : Task
  {
    // Your code here.
  }
}
Imports System
Imports Microsoft.SqlServer.Dts.Runtime

<DtsTask(DisplayName:="MyTask", _
 IconResource:="MyTask.MyTaskIcon.ico", _
 UITypeName:="My Custom Task," & _
 "Version=1.0.0.0,Culture=Neutral," & _
 "PublicKeyToken=12345abc6789de01", _
 TaskType:="PackageMaintenance", _
 TaskContact:="MyTask; company name; any other information", _
 RequiredProductLevel:=DTSProductLevel.None)> _
Public Class MyTask
  Inherits Task

  ' Your code here.

End Class 'MyTask

Compilando, implantando e depurando uma tarefa personalizada

As etapas para compilar, implantar e depurar uma tarefa personalizada no Integration Services são semelhantes às etapas necessárias para outros tipos de objetos personalizados. Para obter mais informações, consulte Compilando, implantando e depurando objetos personalizados.

Ícone do Integration Services (pequeno) Fique atualizado com o Integration Services

Para obter os mais recentes downloads, artigos, exemplos e vídeos da Microsoft, bem como soluções selecionadas da comunidade, visite a página do Integration Services no MSDN ou TechNet:

Para receber uma notificação automática das atualizações, assine os feeds RSS disponíveis na página.