Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
SSIS Integration Runtime in Azure Data Factory
Het objectmodel Integration Services biedt ontwikkelaars van aangepaste taken de mogelijkheid om eenvoudig een aangepaste gebruikersinterface te maken voor een taak die vervolgens kan worden geïntegreerd en weergegeven in SQL Server Data Tools (SSDT). De gebruikersinterface kan nuttige informatie bieden aan de gebruiker in SSIS Designer en gebruikers begeleiden bij het correct configureren van de eigenschappen en instellingen van de aangepaste taak.
Het ontwikkelen van een aangepaste gebruikersinterface voor een taak omvat het gebruik van twee belangrijke klassen. In de volgende tabel worden deze klassen beschreven.
| Klasse | Beschrijving |
|---|---|
| DtsTaskAttribute | Een kenmerk dat een beheerde taak identificeert en ontwerptijdgegevens levert via de eigenschappen om te bepalen hoe SSIS Designer het object weergeeft en ermee communiceert. |
| IDtsTaskUI | Een interface die door de taak wordt gebruikt om de taak te koppelen aan de aangepaste gebruikersinterface. |
In deze sectie wordt de rol van het DtsTaskAttribute kenmerk en de IDtsTaskUI interface beschreven wanneer u een gebruikersinterface voor een aangepaste taak ontwikkelt en vindt u informatie over het maken, integreren, implementeren en opsporen van fouten in de taak in SSIS Designer.
SSIS Designer biedt meerdere toegangspunten voor de gebruikersinterface voor de taak: de gebruiker kan Bewerken selecteren in het snelmenu, dubbelklik op de taak of klik op de koppeling Editor weergeven onder aan het eigenschappenvenster. Wanneer de gebruiker een van deze toegangspunten opent, zoekt en laadt SSIS Designer de assembly die de gebruikersinterface voor de taak bevat. De gebruikersinterface voor de taak is verantwoordelijk voor het maken van het dialoogvenster Eigenschappen dat wordt weergegeven aan de gebruiker in SQL Server Data Tools (SSDT).
Een taak en de bijbehorende gebruikersinterface zijn afzonderlijke entiteiten. Ze moeten worden geïmplementeerd in afzonderlijke assembly's om lokalisatie, implementatie en onderhoudswerkzaamheden te verminderen. De taak-DLL laadt, roept of bevat over het algemeen geen kennis van de gebruikersinterface, met uitzondering van de informatie die is opgenomen in de DtsTaskAttribute kenmerkwaarden die in de taak zijn gecodeerd. Dit is de enige manier waarop een taak en de bijbehorende gebruikersinterface zijn gekoppeld.
Het kenmerk DtsTask
Het DtsTaskAttribute kenmerk wordt opgenomen in de taakklassecode om een taak te koppelen aan de gebruikersinterface. SSIS Designer gebruikt de eigenschappen van het kenmerk om te bepalen hoe de taak in de ontwerpfunctie moet worden weergegeven. Deze eigenschappen bevatten de naam die moet worden weergegeven en het pictogram, indien van toepassing.
In de volgende tabel worden de eigenschappen van het DtsTaskAttribute kenmerk beschreven.
| Vastgoed | Beschrijving |
|---|---|
| DisplayName | Geeft de naam van de taak weer in de werkset Control Flow. |
| Description | De taakbeschrijving (overgenomen van DtsLocalizableAttribute). Deze eigenschap wordt weergegeven in Knopinfo. |
| IconResource | Het pictogram dat wordt weergegeven in SSIS Designer. |
| RequiredProductLevel | Als dit wordt gebruikt, stelt u deze in op een van de waarden in de DTSProductLevel opsomming. Bijvoorbeeld: RequiredProductLevel = DTSProductLevel.None. |
| TaskContact | Bevat contactgegevens voor situaties waarin de taak technische ondersteuning vereist. |
| TaskType | Hiermee wordt een type aan de taak toegewezen. |
| Attribute.TypeId | Wanneer deze is geïmplementeerd in een afgeleide klasse, krijgt u een unieke id voor dit kenmerk. Zie de eigenschap Attribute.TypeID in de .NET Framework-klassebibliotheek voor meer informatie. |
| UITypeName | De typenaam van de assembly die door SSIS Designer wordt gebruikt om de assembly te laden. Deze eigenschap wordt gebruikt om de assembly van de gebruikersinterface voor de taak te vinden. |
In het volgende codevoorbeeld ziet u hoe DtsTaskAttribute het eruitziet, gecodeerd boven de klassedefinitie.
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
De SSIS Designer maakt gebruik van de UITypeName eigenschap van het kenmerk dat de assemblynaam, typenaam, versie, cultuur en token voor openbare sleutels bevat, om de assembly te zoeken in de Global Assembly Cache (GAC) en deze te laden voor gebruik door de ontwerper.
Nadat de assembly is gevonden, gebruikt SSIS Designer de andere eigenschappen in het kenmerk om aanvullende informatie weer te geven over de taak in SSIS Designer, zoals de naam, het pictogram en de beschrijving van de taak.
De DisplayName, Descriptionen IconResource eigenschappen geven aan hoe de taak aan de gebruiker wordt gepresenteerd. De IconResource eigenschap bevat de resource-id van het pictogram dat is ingesloten in de assembly van de gebruikersinterface. De ontwerpfunctie laadt de pictogramresource op id van de assembly en geeft deze weer naast de taaknaam in de werkset en op het ontwerpoppervlak wanneer de taak wordt toegevoegd aan een pakket. Als een taak geen pictogramresource bevat, gebruikt de ontwerper een standaardpictogram voor de taak.
De INTERFACE IDTSTaskUI
De IDtsTaskUI interface definieert de verzameling methoden en eigenschappen die door SSIS Designer worden aangeroepen om de gebruikersinterface te initialiseren en weer te geven die aan de taak is gekoppeld. Wanneer de gebruikersinterface voor een taak wordt aangeroepen, roept de ontwerper de Initialize methode aan, geïmplementeerd door de gebruikersinterface van de taak wanneer u deze hebt geschreven, en levert deze vervolgens respectievelijk de TaskHost verzamelingen Connections van de taak en het pakket als parameters. Deze verzamelingen worden lokaal opgeslagen en vervolgens gebruikt in de GetView methode.
De ontwerpfunctie roept de GetView methode aan om het venster aan te vragen dat wordt weergegeven in SSIS Designer. De taak maakt een exemplaar van het venster dat de gebruikersinterface voor de taak bevat en retourneert de gebruikersinterface naar de ontwerpfunctie voor weergave. Normaal gesproken worden de TaskHost en Connections objecten aan het venster geleverd via een overbelaste constructor, zodat ze kunnen worden gebruikt om de taak te configureren.
De SSIS Designer roept de GetView methode van de taakgebruikersinterface aan om de gebruikersinterface voor de taak weer te geven. De gebruikersinterface van de taak retourneert het Windows-formulier van deze methode en SSIS Designer geeft dit formulier weer als een modaal dialoogvenster. Wanneer het formulier is gesloten, onderzoekt SSIS Designer de waarde van de eigenschap DialogResult van het formulier om te bepalen of de taak is gewijzigd en of deze wijzigingen moeten worden opgeslagen. Als de waarde van de eigenschap DialogResultOK is, roept de SSIS Designer de persistentiemethoden van de taak aan om de wijzigingen op te slaan; anders worden de wijzigingen verwijderd.
In het volgende codevoorbeeld wordt de interface geïmplementeerd en wordt ervan uitgegaan dat er een Windows-formulierklasse met de IDtsTaskUI naam SampleTaskForm bestaat.
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
Zie ook
Een aangepaste taak maken
Een aangepaste taak coderen
Een gebruikersinterface ontwikkelen voor een aangepaste taak