Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
SSIS Integration Runtime ve službě Azure Data Factory
Objektový model Integrační služby poskytuje vývojářům vlastních úloh možnost snadno vytvořit vlastní uživatelské rozhraní pro úlohu, která se pak dá integrovat a zobrazit v NÁSTROJích SQL Server Data Tools (SSDT). Uživatelské rozhraní může uživateli poskytnout užitečné informace v nástroji SSIS Designer a vést uživatele k správné konfiguraci vlastností a nastavení vlastní úlohy.
Vývoj vlastního uživatelského rozhraní pro úlohu zahrnuje použití dvou důležitých tříd. Následující tabulka popisuje tyto třídy.
| Třída | Popis |
|---|---|
| DtsTaskAttribute | Atribut, který identifikuje spravovanou úlohu a poskytuje informace o době návrhu prostřednictvím svých vlastností k řízení způsobu zobrazení a interakce návrháře SSIS s objektem. |
| IDtsTaskUI | Rozhraní, které úloha používá k přidružení úkolu k vlastnímu uživatelskému rozhraní. |
Tato část popisuje roli atributu DtsTaskAttributeIDtsTaskUI a rozhraní při vývoji uživatelského rozhraní pro vlastní úlohu a poskytuje podrobnosti o tom, jak vytvořit, integrovat, nasadit a ladit úlohu v nástroji SSIS Designer.
Návrhář SSIS poskytuje více vstupních bodů k uživatelskému rozhraní úkolu: uživatel může v místní nabídce vybrat možnost Upravit , poklikejte na úkol nebo klikněte na odkaz Zobrazit editor v dolní části seznamu vlastností. Když uživatel přistupuje k jednomu z těchto vstupních bodů, aplikace SSIS Designer vyhledá a načte sestavení, které obsahuje uživatelské rozhraní pro úlohu. Uživatelské rozhraní úlohy zodpovídá za vytvoření dialogového okna vlastností, které se uživateli zobrazí v NÁSTROJích SQL Server Data Tools (SSDT).
Úkol a jeho uživatelské rozhraní jsou samostatné entity. Měly by být implementovány v samostatných sestaveních, aby se snížila lokalizace, nasazení a údržba. Knihovna DLL úloh nenačítá, volá nebo obecně neobsahuje žádné znalosti uživatelského rozhraní s výjimkou informací obsažených v DtsTaskAttribute hodnotách atributů kódovaných v úkolu. Toto je jediný způsob, jak je přidružen úkol a jeho uživatelské rozhraní.
Atribut DtsTask
Atribut DtsTaskAttribute je součástí kódu třídy úkolu pro přidružení úkolu k jeho uživatelskému rozhraní. Návrhář SSIS používá vlastnosti atributu k určení, jak zobrazit úkol v návrháři. Mezi tyto vlastnosti patří název, který se má zobrazit, a ikonu( pokud existuje).
Následující tabulka popisuje vlastnosti atributu DtsTaskAttribute .
| Vlastnictví | Popis |
|---|---|
| DisplayName | Zobrazí název úlohy v sadě nástrojů Tok řízení. |
| Description | Popis úkolu (zděděný z DtsLocalizableAttribute). Tato vlastnost se zobrazuje v popisech. |
| IconResource | Ikona zobrazená v návrháři SSIS. |
| RequiredProductLevel | Pokud se používá, nastavte ji na jednu z hodnot v výčtu DTSProductLevel . Například: RequiredProductLevel = DTSProductLevel.None. |
| TaskContact | Uchovává kontaktní informace pro příležitosti, kdy úkol vyžaduje technickou podporu. |
| TaskType | Přiřadí k úkolu typ. |
| Attribute.TypeId | Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento atribut. Další informace naleznete v atribut.TypeID vlastnost v knihovně tříd rozhraní .NET Framework. |
| UITypeName | Název typu sestavení, které používá návrhář SSIS k načtení sestavení. Tato vlastnost slouží k vyhledání sestavení uživatelského rozhraní pro úlohu. |
Následující příklad kódu ukazuje, DtsTaskAttribute jak by vypadal, kódovaný nad definicí třídy.
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
Návrhář SSIS používá UITypeName vlastnost atributu, který obsahuje název sestavení, název typu, verzi, jazykovou verzi a token veřejného klíče, k vyhledání sestavení v globální mezipaměti sestavení (GAC) a načtení pro použití návrhářem.
Po umístění sestavení použije aplikace SSIS Designer další vlastnosti v atributu k zobrazení dalších informací o úkolu v nástroji SSIS Designer, jako je název, ikona a popis úlohy.
Parametr DisplayName, Descriptiona IconResource vlastnosti určují, jak je úkol prezentován uživateli. Vlastnost IconResource obsahuje ID prostředku ikony vložené do sestavení uživatelského rozhraní. Návrhář načte prostředek ikony podle ID ze sestavení a zobrazí ho vedle názvu úkolu v sadě nástrojů a na ploše návrháře, když je úkol přidán do balíčku. Pokud úkol neobsahuje zdroj ikony, návrhář pro úkol použije výchozí ikonu.
Rozhraní IDTSTaskUI
Rozhraní IDtsTaskUI definuje kolekci metod a vlastností volaných návrhářem SSIS k inicializaci a zobrazení uživatelského rozhraní přidruženého k úloze. Při vyvolání uživatelského rozhraní pro úlohu návrhář volá Initialize metodu, implementované uživatelským rozhraním úkolu při jeho psaní, a pak poskytuje TaskHost a Connections kolekce úlohy a balíčku, v uvedeném pořadí, jako parametry. Tyto kolekce se ukládají místně a následně se používají v GetView metodě.
Návrhář volá metodu GetView k vyžádání okna, které se zobrazí v nástroji SSIS Designer. Úloha vytvoří instanci okna, které obsahuje uživatelské rozhraní úkolu, a vrátí uživatelské rozhraní návrháři pro zobrazení. Obvykle se objekty TaskHostConnections a objekty zadají do okna prostřednictvím přetížené konstruktoru, aby je bylo možné použít ke konfiguraci úlohy.
Návrhář SSIS volá GetView metodu uživatelského rozhraní úlohy k zobrazení uživatelského rozhraní úkolu. Uživatelské rozhraní úkolu vrátí formulář systému Windows z této metody a aplikace SSIS Designer zobrazí tento formulář jako modální dialogové okno. Když je formulář zavřený, SSIS Designer zkontroluje hodnotu DialogResult vlastnost formuláře určit, zda byl úkol změněn a zda by tyto úpravy měly být uloženy. Pokud je hodnota DialogResult vlastnost OK, SSIS Designer volá metody trvalosti úlohy k uložení změn; jinak se změny zahodí.
Následující ukázka kódu implementuje IDtsTaskUI rozhraní a předpokládá existenci třídy formuláře Windows s názvem 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
Viz také
Vytvoření vlastní úlohy
Kódování vlastní úlohy
Vývoj uživatelského rozhraní pro vlastní úlohu