Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
SSIS Integration Runtime i Azure Data Factory
Innan du skriver anpassad kod i Script-komponenten måste du välja vilken typ av dataflödeskomponent du vill skapa – källa, transformation eller destination – och sedan konfigurera komponentens metadata och egenskaper i Script Transformation Editor.
Val av typ av komponent som ska skapas
När du lägger till en Script-komponent i Data Flow-panelen i SSIS Designer visas dialogrutan Select Script Component Type. Du förkonfigurerar komponenten som en källa, transformation eller destination. Efter att du gjort detta initiala val kan du fortsätta konfigurera komponenten i Script Transformation Editor.
För att ställa in standardskriptspråket för Script-komponenten, använd alternativet Skriptspråk på sidan Allmänt i dialogrutan Alternativ . Mer information finns på sidan Allmänt.
Att förstå de två Design-Time lägena
I SSIS Designer har skriptkomponenten två lägen: metadatadesignläge och koddesignläge.
När du öppnar Script Transformation Editor går komponenten in i metadatadesignläge. I detta läge kan du välja indatakolumner och lägga till eller konfigurera utdata och utdatakolumner, men du kan inte skriva kod. När du har konfigurerat komponentens metadata kan du byta till koddesignläge för att skriva skriptet.
När du byter till koddesignläge genom att klicka på Redigera skript, låser skriptkomponenten metadata för att förhindra ytterligare ändringar och genererar sedan automatiskt baskod från metadata för in- och utdata. När den automatiskt genererade koden är klar kan du ange din anpassade kod. Din kod använder de automatiskt genererade basklasserna för att bearbeta inmatningsrader, komma åt buffertar och kolumner i buffertarna och hämta anslutningshanterare och variabler från paketet, allt som starkt typade objekt.
Efter att ha matat in din anpassade kod i koddesignläge kan du byta tillbaka till metadata-designläge. Detta raderar inte någon kod du har angett; dock leder efterföljande ändringar i metadata till att basklassen genereras på nytt. Efteråt kan din komponent misslyckas med validering eftersom objekt som refereras till i din anpassade kod kanske inte längre existerar eller har modifierats. I det här fallet måste du manuellt fixa din kod så att den kan kompileras framgångsrikt mot den återgenererade basklassen.
Konfigurera komponenten i metadatadesignläge
I metadata-designläge kan du välja indatakolumner och lägga till och konfigurera utdata och utdatakolumner, men du kan inte skriva kod. När du har konfigurerat komponentens metadata, byt till koddesignläge för att skriva skriptet.
De egenskaper du måste konfigurera i den anpassade editorn beror på användningen av Script-komponenten. Skriptkomponenten kan konfigureras som en källa, en transformation eller en destination. Beroende på hur komponenten används stöder den antingen indata eller utdata eller båda. Den anpassade koden du skriver bearbetar in- och utdatarader och kolumner.
Sidan för inmatningskolumner i skripttransformationsredigeraren
Sidan Input Columns i Script Transformation Editor visas för transformationer och destinationer, men inte för källor. På denna sida väljer du de tillgängliga inmatningskolumnerna som du vill göra tillgängliga för ditt anpassade skript och anger skrivbehörighet för dem eller läs-/skrivåtkomst.
I kodprojektet som kommer att genereras baserat på denna metadata innehåller BufferWrapper-projektobjektet en klass för varje indata, och denna klass innehåller typade accessoregenskaper för varje indatakolumn som valts. Till exempel, om du väljer en heltalskolumn CustomerID och en strängkolumn CustomerName från en indata som heter CustomerInput, kommer projektobjektet BufferWrapper att innehålla en CustomerInput-klass som härleds från ScriptBuffer, och klassen CustomerInput kommer att exponera en heltalsegenskap kallad CustomerID och en strängegenskap som heter CustomerName. Denna konvention gör det möjligt att skriva kod med typkontroll som följande:
Dim currentCustomerID as Integer = CustomerInput.CustomerID
Dim currentCustomerName as String = CustomerInput.CustomerName
För mer information om hur man konfigurerar inmatningskolumner för en specifik typ av dataflödeskomponent, se det lämpliga exemplet under Utveckling av specifika typer av skriptkomponenter.
Sidan för in- och utdata i skripttransformationsredigeraren
Sidan Input and Output i Script Transformation Editor visas för källor, transformationer och destinationer. På denna sida lägger du till, tar bort och konfigurerar indata, utdata och utdatakolumner som du vill använda i ditt anpassade skript, inom följande begränsningar:
När den används som källa har Script-komponenten ingen indata och stöder flera utgångar.
När den används som en transformation stöder Script-komponenten en ingång och flera utdata.
När den används som destination stöder Skript-komponenten en indata och har inga utdata.
I kodprojektet som ska genereras baserat på denna metadata innehåller BufferWrapper-projektobjektet en klass för varje indata och utdata. Till exempel, om du skapar en utdata som heter CustomerOutput, kommer BufferWrapper-projektobjektet att innehålla en CustomerOutput-klass som härstammar från ScriptBuffer, och CustomerOutput-klassen kommer att innehålla typade accessor-egenskaper för varje utdatakolumn som skapas.
Du kan konfigurera utdatakolumner endast på sidan Input and Outputs . Du kan välja inmatningskolumner för transformationer och destinationer på sidan Inmatningskolumner . De typade accessor-egenskaperna som skapas för dig i BufferWrapper-projektobjektet kommer att vara skrivbara för utdatakolumner. Accessoregenskaperna för inmatningskolumner kommer att vara skrivskyddade eller lästa/skriva beroende på vilken användningstyp du har valt för varje kolumn på sidan Inmatningskolumner .
För mer information om att konfigurera in- och utdata för en specifik typ av dataflödeskomponent, se det lämpliga exemplet under Utveckling av specifika typer av skriptkomponenter.
Anmärkning
Även om du inte direkt kan konfigurera en utdata som en felutdata i Script-komponenten för automatisk hantering av felrader, kan du återskapa funktionaliteten hos en felutdata genom att skapa en extra utdata och använda skript för att dirigera rader till denna utdata när det är lämpligt. Mer information finns i Simulera ett felutdata för skriptkomponenten.
ExclusionGroup- och SynchronousInputID-egenskaper för utgångar
ExclusionGroup-egenskapen har ett icke-noll värde endast i transformationer med synkrona utdata, där din kod filtrerar eller förgrenar och leder varje rad till en av de utdata som delar samma icke-noll ExclusionGroup-värde. Till exempel kan transformationen styra rader antingen till standardutgången eller till ett felresultat. När du skapar ytterligare utdata för detta scenario, se till att sätta värdet på egenskapen SynchronousInputID till det heltal som matchar komponentens indatas ID .
Egenskapen SynchronousInputID har ett icke-noll värde endast i transformationer med synkrona utgångar. Om värdet av denna egenskap är noll betyder det att utgången är asynkron. För en synkron utgång, där rader skickas vidare till den valda utgången eller utgångarna utan att lägga till några nya rader, bör denna egenskap innehålla komponentens ID.
Anmärkning
När Script Transformation Editor skapar den första utdatan sätter editorn egenskapen SynchronousInputID för utdata till komponentens inmatnings-ID. Men när editorn skapar efterföljande utdata sätter editorn SynchronousInputID-egenskaperna för dessa utdata till noll.
Om du skapar en komponent med synkrona utgångar måste varje utgång ha sin egenskap SynchronousInputID satt till komponentens ingångs ID. Därför måste varje utdata som redigeraren skapar efter den första utgången få sitt SynchronousInputID-värde ändrat från noll till komponentens inmatnings-ID .
Om du skapar en komponent med asynkrona utgångar måste varje utgång ha sin egenskap SynchronousInputID satt till noll. Därför måste det första utgångsvärdet ändras från komponentens indata till noll för det första utgångsdatat.
För ett exempel på att dirigera rader till en av två synkrona utdata i Script-komponenten, se Skapa en synkron transformation med Script-komponenten.
Objektnamn i genererat skript
Skriptkomponenten tolkar namnen på indata och utdata, och parsar namnen på kolumner i indata och utdata, och baserat på dessa namn genereras klasser och egenskaper i BufferWrapper-projektobjektet. Om de funna namnen inkluderar tecken som inte tillhör Unicode-kategorierna Förbokstav,SmåbokstäverBokstav, TitelfallBokstav, ModifierBokstav, ÖvrigBokstav eller DecimalSiffraBokstav, tas de ogiltiga tecknen bort i de genererade namnen. Till exempel tas mellanslag bort, därför tolkas två indatakolumner med namnen FirstName och [First Name] båda som att de har kolumnnamnet FirstName, med oförutsägbara resultat. För att undvika denna situation bör namnen på in- och utdata samt in- och utdatakolumner som används av Script-komponenten endast innehålla tecken i Unicode-kategorierna som listas i detta avsnitt.
Manussida för skripttransformationsredigeraren
På Script-sidan i Script Task Editor tilldelar du ett unikt namn och en beskrivning till Script-uppgiften. Du kan också tilldela värden för följande egenskaper.
Anmärkning
I SQL Server 2008 Integration Services (SSIS) och senare versioner är alla skript förkompilerade. I tidigare versioner specificerade du om skript var förkompilerade genom att sätta en Prekompile-egenskap för uppgiften.
ValidateExternalMetadata-egenskapen
Det booleska värdet av egenskapen ValidateExternalMetadata specificerar om komponenten ska utföra validering mot externa datakällor vid designtillfället, eller om valideringen ska skjutas upp till körningstid. Som standard är värdet av denna egenskap Sann; det vill säga, den externa metadatan valideras både vid designtillfälle och vid körning. Du kan vilja sätta värdet på denna egenskap till False när en extern datakälla inte är tillgänglig vid designtillfället: till exempel när paketet laddar ner källkoden eller skapar destinationen endast vid körning.
ReadOnlyVariables och ReadWriteVariables egenskaper
Du kan ange kommaavgränsade listor över befintliga variabler som värden för dessa egenskaper för att göra variablerna tillgängliga för skrivskyddad åtkomst eller läs-/skrivåtkomst inom Script-komponentkoden. Variabler nås i koden via ReadOnlyVariables och ReadWriteVariables egenskaperna hos den autogenererade basklassen. För mer information, se Användning av variabler i skriptkomponenten.
Anmärkning
Variabelnamn är skiftlägeskänsliga.
ScriptLanguage
Du kan välja antingen Microsoft Visual Basic eller Microsoft Visual C# som programmeringsspråk för Script-komponenten.
Redigera skriptknapp
Knappen Redigera skript öppnar Microsoft Visual Studio Tools for Applications (VSTA) IDE där du skriver ditt anpassade skript. För mer information, se Kodning och felsökning av skriptkomponenten.
Sidan för anslutningshanterare i skripttransformationsredigeraren
På sidan Connection Managers i Script Transformation Editor lägger du till och tar bort anslutningshanterare som du vill använda i ditt anpassade skript. Normalt behöver du referera till anslutningshanterare när du skapar en käll- eller destinationskomponent.
I kodprojektet som kommer att genereras baserat på denna metadata innehåller ComponentWrapper-projektobjektet en samlingsklass Connections som har en typad accessor-egenskap för varje vald anslutningshanterare. Varje typad accessoregenskap har samma namn som anslutningshanteraren själv och returnerar en referens till anslutningshanteraren som en instans av IDTSConnectionManager100. Till exempel, om du har lagt till en anslutningshanterare som MyADONETConnection heter på sidan Anslutningshanterare i redigeraren, kan du få en referens till anslutningshanteraren i ditt skript genom att använda följande kod:
Dim myADONETConnectionManager As IDTSConnectionManager100 = _
Me.Connections.MyADONETConnection
För mer information, se Anslutning till datakällor i skriptkomponenten.