Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
SSIS Integration Runtime em Azure Data Factory
O modelo de objeto do Integration Services fornece aos desenvolvedores de tarefas personalizadas a capacidade de criar facilmente uma interface de usuário personalizada para uma tarefa que pode ser integrada e exibida no SSDT (SQL Server Data Tools). A interface do usuário pode fornecer informações úteis ao usuário no Designer SSIS e orientar os usuários a configurar corretamente as propriedades e configurações da tarefa personalizada.
O desenvolvimento de uma interface de usuário personalizada para uma tarefa envolve o uso de duas classes importantes. A tabela a seguir descreve essas classes.
| Classe | Descrição |
|---|---|
| DtsTaskAttribute | Um atributo que identifica uma tarefa gerenciada e fornece informações de tempo de design por meio de suas propriedades para controlar como o Designer SSIS exibe e interage com o objeto. |
| IDtsTaskUI | Uma interface usada pela tarefa para associá-la à sua interface de usuário personalizada. |
Esta seção descreve a função do atributo e da DtsTaskAttribute interface quando você está desenvolvendo uma interface do IDtsTaskUI usuário para uma tarefa personalizada e fornece detalhes sobre como criar, integrar, implantar e depurar a tarefa no Designer SSIS.
O Designer SSIS fornece vários pontos de entrada para a interface do usuário para a tarefa: o usuário pode selecionar Editar no menu de atalho, clicar duas vezes na tarefa ou clicar no link Mostrar Editor na parte inferior da folha de propriedades. Quando o usuário acessa um desses pontos de entrada, o Designer SSIS localiza e carrega o assembly que contém a interface do usuário para a tarefa. A interface do usuário para a tarefa é responsável por criar a caixa de diálogo de propriedades que é exibida para o usuário no SSDT (SQL Server Data Tools).
Uma tarefa e sua interface de usuário são entidades separadas. Eles devem ser implementados em assemblies separados para reduzir o trabalho de localização, implantação e manutenção. A DLL da tarefa não carrega, chama ou geralmente contém qualquer conhecimento de sua interface do usuário, exceto para as informações contidas nos valores de DtsTaskAttribute atributo codificados na tarefa. Esta é a única maneira que uma tarefa e sua interface de usuário são associados.
O atributo DtsTask
O DtsTaskAttribute atributo é incluído no código da classe de tarefa para associar uma tarefa à sua interface do usuário. O Designer SSIS usa as propriedades do atributo para determinar como exibir a tarefa no designer. Essas propriedades incluem o nome a ser exibido e o ícone, se houver.
A tabela a seguir descreve as propriedades do DtsTaskAttribute atributo.
| Propriedade | Descrição |
|---|---|
| DisplayName | Exibe o nome da tarefa na caixa de ferramentas Fluxo de Controle. |
| Description | A descrição da tarefa (herdada de DtsLocalizableAttribute). Esta propriedade é mostrada em Dicas de Ferramentas. |
| IconResource | O ícone exibido no SSIS Designer. |
| RequiredProductLevel | Se usado, defina-o como um dos valores na DTSProductLevel enumeração. Por exemplo, RequiredProductLevel = DTSProductLevel.None. |
| TaskContact | Contém informações de contato para ocasiões em que a tarefa requer suporte técnico. |
| TaskType | Atribui um tipo à tarefa. |
| Atributo.TypeId | Quando implementado em uma classe derivada, obtém um identificador exclusivo para esse atributo. Para obter mais informações, consulte a propriedade Attribute.TypeID na Biblioteca de Classes do .NET Framework. |
| UITypeName | O nome do tipo do assembly que é usado pelo SSIS Designer para carregar o assembly. Essa propriedade é usada para localizar o assembly da interface do usuário para a tarefa. |
O exemplo de código a seguir mostra a DtsTaskAttribute aparência, codificada acima da definição de classe.
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
O Designer SSIS usa a UITypeName propriedade do atributo que inclui o nome do assembly, o nome do tipo, a versão, a cultura e o token de chave pública para localizar o assembly no GAC (Global Assembly Cache) e carregá-lo para uso pelo designer.
Depois que o assembly for localizado, o Designer SSIS usará as outras propriedades no atributo para exibir informações adicionais sobre a tarefa no Designer SSIS, como o nome, o ícone e a descrição da tarefa.
As DisplayNamepropriedades , Description, e especificam IconResource como a tarefa é apresentada ao usuário. A IconResource propriedade contém a ID do recurso do ícone incorporado no assembly da interface do usuário. O designer carrega o recurso de ícone por ID do assembly e o exibe ao lado do nome da tarefa na caixa de ferramentas e na superfície do designer quando a tarefa é adicionada a um pacote. Se uma tarefa não fornecer um recurso de ícone, o designer usará um ícone padrão para a tarefa.
A interface IDTSTaskUI
A IDtsTaskUI interface define a coleção de métodos e propriedades chamados pelo SSIS Designer para inicializar e exibir a interface do usuário associada à tarefa. Quando a interface do usuário para uma tarefa é invocada, o designer chama o Initialize método, implementado pela interface do usuário da tarefa quando você a escreveu e, em seguida, fornece as TaskHost coleções e Connections da tarefa e do pacote, respectivamente, como parâmetros. Essas coleções são armazenadas localmente e usadas posteriormente no GetView método.
O designer chama o GetView método para solicitar a janela exibida no Designer SSIS. A tarefa cria uma instância da janela que contém a interface do usuário para a tarefa e retorna a interface do usuário para o designer para exibição. Normalmente, os TaskHost objetos e Connections são fornecidos à janela através de um construtor sobrecarregado para que possam ser usados para configurar a tarefa.
O Designer SSIS chama o GetView método da interface do usuário da tarefa para exibir a interface do usuário da tarefa. A interface do usuário da tarefa retorna o formulário do Windows desse método e o SSIS Designer mostra esse formulário como uma caixa de diálogo modal. Quando o formulário é fechado, o Designer SSIS examina o valor da propriedade DialogResult do formulário para determinar se a tarefa foi modificada e se essas modificações devem ser salvas. Se o valor da propriedade DialogResult for OK, o Designer SSIS chamará os métodos de persistência da tarefa para salvar as alterações; caso contrário, as alterações serão descartadas.
O exemplo de código a seguir implementa a IDtsTaskUI interface e pressupõe a existência de uma classe de formulário do Windows chamada SampleTaskForm.
using System;
using System.Windows.Forms;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Runtime.Design;
namespace Sample
{
public class HelloWorldTaskUI : IDtsTaskUI
{
TaskHost taskHost;
Connections connections;
public void Initialize(TaskHost taskHost, IServiceProvider serviceProvider)
{
this.taskHost = taskHost;
IDtsConnectionService cs = serviceProvider.GetService
( typeof( IDtsConnectionService ) ) as IDtsConnectionService;
this.connections = cs.GetConnections();
}
public ContainerControl GetView()
{
return new HelloWorldTaskForm(this.taskHost, this.connections);
}
public void Delete(IWin32Window parentWindow)
{
}
public void New(IWin32Window parentWindow)
{
}
}
}
Imports System
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Runtime.Design
Imports System.Windows.Forms
Public Class HelloWorldTaskUI
Implements IDtsTaskUI
Dim taskHost As TaskHost
Dim connections As Connections
Public Sub Initialize(ByVal taskHost As TaskHost, ByVal serviceProvider As IServiceProvider) _
Implements IDtsTaskUI.Initialize
Dim cs As IDtsConnectionService
Me.taskHost = taskHost
cs = DirectCast(serviceProvider.GetService(GetType(IDtsConnectionService)), IDtsConnectionService)
Me.connections = cs.GetConnections()
End Sub
Public Function GetView() As ContainerControl _
Implements IDtsTaskUI.GetView
Return New HelloWorldTaskForm(Me.taskHost, Me.connections)
End Function
Public Sub Delete(ByVal parentWindow As IWin32Window) _
Implements IDtsTaskUI.Delete
End Sub
Public Sub [New](ByVal parentWindow As IWin32Window) _
Implements IDtsTaskUI.[New]
End Sub
End Class
Ver também
Criando uma tarefa personalizada
Codificando uma tarefa personalizada
Desenvolvendo uma interface de usuário para uma tarefa personalizada