Utveckla anpassade objekt för Integration Services

Gäller för:SQL Server SSIS Integration Runtime i Azure Data Factory

När kontrollflödes- och dataflödesobjekten som ingår i služba SSIS inte helt uppfyller dina krav kan du utveckla många typer av anpassade objekt på egen hand, inklusive:

  • Anpassade uppgifter.

  • Anpassade anslutningshanterare. Koppla upp dig mot externa datakällor som för närvarande inte stöds.

  • Anpassade loggleverantörer. Logga pakethändelser i format som för närvarande inte stöds.

  • Anpassade uppräknare. Stöd iteration över en uppsättning objekt- eller värdeformat som för närvarande inte stöds.

  • Anpassade dataflödeskomponenter. Kan konfigureras som källor, transformationer eller destinationer.

Integration Services-objektmodellen underlättar denna anpassade utveckling med basklasser som tillhandahåller en konsekvent och pålitlig ram för din anpassade implementation.

Om du inte behöver återanvända anpassad funktionalitet över flera paket, ger Script-uppgiften och Script-komponenten dig full kraft i ett hanterat programmeringsspråk med betydligt mindre infrastrukturkod att skriva. För mer information, se Jämförelse av skriptlösningar och anpassade objekt.

Steg i att utveckla ett anpassat objekt för integrationstjänster

När du utvecklar ett eget objekt för användning i Integration Services skapar du ett klassbibliotek (en DLL) som laddas in vid design- och körtid av SSIS Designer och av Integration Services-runtime. De viktigaste metoderna du måste implementera är inte metoder som du anropar från din egen kod, utan metoder som körtiden anropar vid lämpliga tidpunkter för att initiera och validera din komponent samt för att anropa dess funktionalitet.

Här är stegen du följer när du utvecklar ett anpassat objekt:

  1. Skapa ett nytt projekt av typen Class Library i ditt föredragna hanterade programmeringsspråk.

  2. Ärva från lämplig basklass, som visas i följande tabell.

  3. Applicera rätt attribut på din nya klass, som visas i tabellen nedan.

  4. Överskriv basklassens metoder vid behov och skriv kod för objektets anpassade funktionalitet.

  5. Bygg eventuellt ett anpassat användargränssnitt för din komponent. För att underlätta distributionen kan du vilja utveckla användargränssnittet som ett separat projekt inom samma lösning och bygga det som en separat assembler.

  6. Eventuellt, visa en länk till exempel och hjälpinnehåll för det anpassade objektet i SSIS Toolbox.

  7. Bygg, distribuera och felsök ditt nya anpassade objekt enligt beskrivningen i Bygga, distribuera och felsöka anpassade objekt.

Basklasser, attribut och viktiga metoder

Denna tabell ger en enkel referens till de viktigaste elementen i Integration Services-objektmodellen för varje typ av eget objekt som du kan utveckla.

Egenutvecklat objekt Basklass Attribute Viktiga metoder
Uppgift Task DtsTaskAttribute Execute
Anslutningshanteraren ConnectionManagerBase DtsConnectionAttribute AcquireConnection, ReleaseConnection
Loggleverantör LogProviderBase DtsLogProviderAttribute OpenLog, Log, CloseLog
Uppräknare ForEachEnumerator DtsForEachEnumeratorAttribute GetEnumerator
Dataflödeskomponent PipelineComponent DtsPipelineComponentAttribute ProvideComponentProperties, PrimeOutput, ProcessInput

För att visa en länk i SSIS Toolbox till exempel och hjälpinnehåll för ett anpassat objekt skrivet i hanterad kod, använd följande egenskaper.

För att visa en länk till exempel och hjälpinnehåll för ett anpassat objekt skrivet i inhemsk kod, lägg till poster i Registry Script (.rgs)-filen för SamplesTag, HelpKeyword och HelpCollection. Följande är ett exempel.

val HelpKeyword = s 'sql11.dts.designer.executepackagetask.F1'

val SamplesTag = s 'ExecutePackageTask'

Tillhandahållande av ett anpassat användargränssnitt

För att låta användare av ditt anpassade objekt konfigurera dess egenskaper kan du behöva utveckla ett eget användargränssnitt också. I de fall där ett anpassat användargränssnitt inte är strikt nödvändigt kan du välja att skapa ett för att ge ett mer användarvänligt gränssnitt än standardredigeraren.

I ett projekt eller assembler för anpassat användargränssnitt har du vanligtvis två klasser -a klass som implementerar ett Integration Services-gränssnitt för användargränssnitt för den specifika typen av egenutvecklat objekt, och den Windows form som visas för att samla information från användaren. De gränssnitt du implementerar har bara några få metoder, och ett anpassat användargränssnitt är inte svårt att utveckla.

Note

Många loggleverantörer för Integration Services har ett anpassat användargränssnitt som implementerar IDtsLogProviderUI och ersätter textrutan Konfiguration med en filtrerad rullgardinslista med tillgängliga anslutningshanterare. Dock är anpassade användargränssnitt för anpassade loggleverantörer inte implementerade i denna version av Integration Services. Att specificera ett värde för egenskapen UITypeName har DtsLogProviderAttribute ingen effekt.

Följande tabell ger en enkel referens till de gränssnitt du måste implementera när du utvecklar ett anpassat användargränssnitt för varje typ av anpassat objekt. Den förklarar också vad användaren ser om du väljer att inte utveckla ett anpassat användargränssnitt för ditt objekt, eller om du misslyckas med att länka ditt objekt till dess användargränssnitt genom att använda egenskapen UITypeName i objektets attribut. Även om den kraftfulla Rozšírený editor kan vara tillfredsställande för en dataflödeskomponent, är Properties window en mindre användarvänlig lösning för uppgifter och anslutningshanterare, och en anpassad ForEach-enumerator kan inte konfigureras alls utan ett eget formulär.

Egenutvecklat objekt Basklass för användargränssnitt Standardredigeringsbeteende om inget anpassat användargränssnitt tillhandahålls
Uppgift IDtsTaskUI Properties window endast
Anslutningshanteraren IDtsConnectionManagerUI Properties window endast
Loggleverantör IDtsLogProviderUI

(Ej implementerat i Integration Services)
Textruta i konfigurationskolumnen
Uppräknare ForEachEnumeratorUI Properties window endast. Enumeratorns konfigurationsområde i editorn är tomt.
Dataflödeskomponent IDtsComponentUI Avancerad redigerare