Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Środowisko SSIS Integration Runtime w usłudze Azure Data Factory
Gdy obiekty przepływu sterowania i przepływu danych zawarte w SQL Server Integration Services nie spełniają całkowicie Twoich wymagań, możesz samodzielnie tworzyć wiele typów niestandardowych obiektów, w tym:
Zadania niestandardowe.
Własne menedżery połączeń. Połącz się z zewnętrznymi źródłami danych, które obecnie nie są obsługiwane.
Niestandardowe dostawcy logów. Loguj zdarzenia pakietów w formatach, które obecnie nie są obsługiwane.
Niestandardowe enumeratory. Wspierać iterację nad zestawem obiektów lub formatów wartości, które obecnie nie są obsługiwane.
Niestandardowe komponenty przepływu danych. Można je skonfigurować jako źródła, transformacje lub miejsca docelowe.
Model obiektowy Integration Services ułatwia ten niestandardowy rozwój z klasami bazowymi, które zapewniają spójne i niezawodne ramy dla Twojej niestandardowej implementacji.
Jeśli nie musisz ponownie używać niestandardowej funkcjonalności w wielu pakietach, zadanie Script i komponent Script dają pełną moc zarządzanego języka programowania przy znacznie mniejszej ilości kodu infrastrukturalnego do napisania. Więcej informacji można znaleźć w artykule Porównanie rozwiązań skryptowych i niestandardowych obiektów.
Kroki w tworzeniu niestandardowego obiektu dla usług integracyjnych
Gdy tworzysz niestandardowy obiekt do użycia w Integration Services, tworzysz Bibliotekę Klas (DLL), która będzie ładowana w czasie projektowania i w czasie działania przez SSIS Designer oraz przez runtime Integration Services. Najważniejsze metody, które musisz zaimplementować, to nie metody wywoływane z własnego kodu, lecz te, które środowisko uruchomieniowe wywołuje w odpowiednich momentach, aby zainicjować i zweryfikować komponent oraz wywołać jego funkcjonalność.
Oto kroki, które wykonujesz, tworząc niestandardowy obiekt:
Stwórz nowy projekt typu Class Library w preferowanym przez siebie języku zarządzanego programowania.
Dziedziczenie z odpowiedniej klasy bazowej, jak pokazano w poniższej tabeli.
Przypisz odpowiedni atrybut do nowej klasy, jak pokazano w poniższej tabeli.
Nadpisuj metody klasy bazowej w razie potrzeby i pisz kod dla niestandardowej funkcjonalności obiektu.
Opcjonalnie zbuduj niestandardowy interfejs użytkownika dla swojego komponentu. Dla ułatwienia wdrożenia możesz chcieć rozwijać interfejs użytkownika jako osobny projekt w ramach tego samego rozwiązania i budować go jako osobny asemble.
Opcjonalnie wyświetl link do przykładów i zawartości pomocy dla niestandardowego obiektu w skrzynce narzędzi SSIS.
Buduj, wdrażaj i debuguj swój nowy niestandardowy obiekt zgodnie z opisem w sekcji Budowanie, wdrażanie i debugowanie niestandardowych obiektów.
Klasy bazowe, atrybuty i ważne metody
Ta tabela zapewnia łatwe odniesienie do najważniejszych elementów modelu obiektowego Integration Services dla każdego typu niestandardowego obiektu, który możesz opracować.
| Obiekt niestandardowy | Klasa bazowa | Attribute | Ważne metody |
|---|---|---|---|
| Zadanie | Task | DtsTaskAttribute | Execute |
| Menedżer połączeń | ConnectionManagerBase | DtsConnectionAttribute | AcquireConnection, ReleaseConnection |
| Dostawca usług dziennika | LogProviderBase | DtsLogProviderAttribute | OpenLog, Log, CloseLog |
| Wylicznik | ForEachEnumerator | DtsForEachEnumeratorAttribute | GetEnumerator |
| Komponent przepływu danych | PipelineComponent | DtsPipelineComponentAttribute | ProvideComponentProperties, PrimeOutput, ProcessInput |
Udostępnianie linków do przykładów i treści pomocnych
Aby wyświetlić link w skrzynce narzędzi SSIS do przykładów i zawartości pomocy dla niestandardowego obiektu napisanego w kodzie zarządzanym, użyj następujących właściwości.
Microsoft. SqlServer.Dts.Pipeline.DTSPipelineComponentAttribute.SamplesTag*
Microsoft. SqlServer.Dts.Pipeline.DTSPipelineComponentAttribute.HelpCollection*
Microsoft. SqlServer.Dts.Pipeline.DTSPipelineComponentAttribute.HelpKeyword*
Microsoft. SqlServer.Dts.Runtime.DTSTaskAttribute.SamplesTag*
Microsoft. SqlServer.Dts.Runtime.DTSTaskAttribute.HelpCollection*
Microsoft. SqlServer.Dts.Runtime.DTSTaskAttribute.HelpKeyword*
Aby wyświetlić link do przykładów i zawartości Help dla niestandardowego obiektu napisanego w natywnym kodzie, dodaj wpisy w pliku Registry Script (.rgs) dla SamplesTag, HelpKeyword i HelpCollection. Poniżej przedstawiono przykład.
val HelpKeyword = s 'sql11.dts.designer.executepackagetask.F1'
val SamplesTag = s 'ExecutePackageTask'
Udostępnianie niestandardowego interfejsu użytkownika
Aby umożliwić użytkownikom niestandardowego obiektu konfigurację jego właściwości, być może będziesz musiał opracować także własny interfejs użytkownika. W przypadkach, gdy niestandardowy interfejs użytkownika nie jest ściśle wymagany, możesz zdecydować się na stworzenie takiego, który zapewni bardziej przyjazny dla użytkownika interfejs niż domyślny edytor.
W projekcie lub asemblerze z niestandardowym interfejsem użytkownika zazwyczaj masz dwie klasy -a klasę, która implementuje interfejs Integration Services dla interfejsów użytkownika dla konkretnego typu niestandardowego obiektu, oraz Windows formę, którą wyświetla do zbierania informacji od użytkownika. Interfejsy, które implementujesz, mają tylko kilka metod, a stworzenie niestandardowego interfejsu użytkownika nie jest trudne.
Note
Wielu dostawców logów Integration Services posiada niestandardowy interfejs użytkownika, który implementuje IDtsLogProviderUI i zastępuje pole tekstowe Konfiguracja filtrowaną listą rozwijanych dostępnych menedżerów połączeń. Jednak niestandardowe interfejsy użytkownika dla niestandardowych dostawców logów nie są zaimplementowane w tej wersji Integration Services. Określenie wartości UITypeName własności nie DtsLogProviderAttribute ma żadnego efektu.
Poniższa tabela daje łatwy odnośnik do interfejsów, które musisz zaimplementować, tworząc niestandardowy interfejs użytkownika dla każdego typu niestandardowego obiektu. Wyjaśnia również, co użytkownik widzi, jeśli zdecydujesz się nie tworzyć niestandardowego interfejsu użytkownika dla swojego obiektu lub jeśli nie połączysz obiektu z jego interfejsem użytkownika, używając właściwości UITypeName w atrybucie obiektu. Chociaż potężny Edytor zaawansowany może być satysfakcjonujący dla komponentu przepływu danych, okno Właściwości jest mniej przyjaznym rozwiązaniem dla menedżerów zadań i połączeń, a niestandardowy enumerator ForEach nie może być skonfigurowany bez niestandardowego formularza.
| Obiekt niestandardowy | Klasa bazowa interfejsu użytkownika | Domyślne zachowanie edycji, jeśli nie ma niestandardowego interfejsu użytkownika |
|---|---|---|
| Zadanie | IDtsTaskUI | okno Właściwości only |
| Menedżer połączeń | IDtsConnectionManagerUI | okno Właściwości only |
| Dostawca usług dziennika | IDtsLogProviderUI (Nie zaimplementowane w Integration Services) |
Pole tekstowe w kolumnie Konfiguracja |
| Wylicznik | ForEachEnumeratorUI | okno Właściwości only. Obszar konfiguracji enumeratora w edytorze jest pusty. |
| Komponent przepływu danych | IDtsComponentUI | Edytor zaawansowany |