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 v rámci Azure Data Factory
V SSIS Designer má složka Script dva režimy: režim návrhu metadat a režim návrhu kódu. Když otevřete Editor transformací skriptu, komponenta přejde do režimu návrhu metadat, ve kterém konfigurujete metadata a nastavujete vlastnosti komponenty. Poté, co nastavíte vlastnosti komponenty Script a nakonfigurujete vstupy a výstupy v režimu návrhu metadat, můžete přepnout do režimu návrhu kódu a napsat vlastní skript. Pro více informací o režimu návrhu metadat a návrhu kódu viz Konfigurace skriptové komponenty v editoru skriptové komponenty.
Psaní skriptu v režimu návrhu kódu
Prostředí pro vývoj skriptových komponent
Pro napsání skriptu klikněte na Edit Script na stránce Script v Script Transformation Editoru a otevřete IDE Microsoft Visual Studio Tools for Applications (VSTA). VSTA IDE zahrnuje všechny standardní funkce prostředí Visual Studio .NET, jako je barevně kódovaný editor Visual Studio, IntelliSense a Object Browser.
Skriptový kód je psán v Microsoft Visual Basic nebo Microsoft Visual C#. Skriptovací jazyk určujete nastavením vlastnosti ScriptLanguage v Editoru transformace skriptů. Pokud preferujete jiný programovací jazyk, můžete vyvinout vlastní assembler ve svém zvoleném jazyce a volat jeho funkčnost z kódu v komponentě Script.
Skript, který vytvoříte v komponentě Script, je uložen v definici balíčku. Neexistuje samostatný skriptový soubor. Proto použití skriptní komponenty neovlivňuje nasazení balíčku.
Note
Během návrhu balíčku je skriptní kód dočasně zapsán do projektového souboru. Protože ukládání citlivých informací do souboru představuje potenciální bezpečnostní riziko, doporučujeme nezařazovat citlivé informace, jako jsou hesla, do skriptového kódu.
Ve výchozím nastavení je v IDE zakázáno Option Strict .
Struktura Project Component Script
Síla komponenty Script spočívá v tom, že dokáže generovat infrastrukturní kód, který snižuje množství kódu, který musíte napsat. Tato vlastnost závisí na tom, že vstupy a výstupy a jejich sloupce a vlastnosti jsou předem pevné a známé. Proto jakékoli následné změny metadat komponenty mohou zneplatnit kód, který jste napsali. To způsobuje chyby při kompilaci během spuštění balíčku.
Project Items and Classes v Script Component Project
Když přepnete do režimu návrhu kódu, VSTA IDE se otevře a zobrazí položku projektu ScriptMain . Položka projektu ScriptMain obsahuje editovatelnou třídu ScriptMain , která slouží jako vstupní bod pro skript a kde píšete svůj kód. Kódové prvky ve třídě se liší podle toho, jaký programovací jazyk jste pro skriptový úkol zvolil.
Projekt skriptů obsahuje dva další automaticky generované položky pouze pro čtení:
Položka projektu ComponentWrapper obsahuje tři třídy:
Třída UserComponent , která dědí ScriptComponent metody a vlastnosti a obsahuje metody, které budete používat k zpracování dat a interakci s balíčkem. Třída ScriptMain dědí třídu UserComponent .
Třída kolekce Connections, která obsahuje odkazy na spojení vybraná na stránce Správce připojení editoru Script Transformation Editor.
Třída kolekce proměnných , která obsahuje odkazy na proměnné zadané ve vlastnostech ReadOnlyVariable a ReadWriteVariables na stránce Script editoru transformace skriptů.
Položka projektu BufferWrapper obsahuje třídu, která dědí z pro ScriptBuffer každý vstup a výstup nakonfigurovaný na stránce Vstupy a Výstupy v editoru transformací skriptů. Každá z těchto tříd obsahuje typované vlastnosti přístupových modulů, které odpovídají konfigurovaným vstupním a výstupním sloupcům, a datovým tokovým bufferům, které tyto sloupce obsahují.
Pro informace o tom, jak tyto objekty, metody a vlastnosti používat, viz Porozumění modelu objektů Script Component. Pro informace o tom, jak používat metody a vlastnosti těchto tříd v konkrétním typu komponent Script, viz sekce Další příklady komponent skriptů. Ukázková témata také obsahují kompletní ukázky kódu.
Když konfigurujete komponentu Script jako transformaci, položka projektu ScriptMain obsahuje následující automaticky generovaný kód. Šablona kódu také poskytuje přehled o komponentě Script a další informace o tom, jak načíst a manipulovat s objekty SSIS, jako jsou proměnné, události a spojení.
' Microsoft SQL Server Integration Services Script Component
' Write scripts using Microsoft Visual Basic 2008.
' ScriptMain is the entry point class of the script.
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
Inherits UserComponent
Public Overrides Sub PreExecute()
MyBase.PreExecute()
'
' Add your code here for preprocessing or remove if not needed
'
End Sub
Public Overrides Sub PostExecute()
MyBase.PostExecute()
'
' Add your code here for postprocessing or remove if not needed
' You can set read/write variables here, for example:
' Me.Variables.MyIntVar = 100
'
End Sub
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
'
' Add your code here
'
End Sub
End Class
/* Microsoft SQL Server Integration Services user script component
* Write scripts using Microsoft Visual C# 2008.
* ScriptMain is the entry point class of the script.*/
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{
public override void PreExecute()
{
base.PreExecute();
/*
Add your code here for preprocessing or remove if not needed
*/
}
public override void PostExecute()
{
base.PostExecute();
/*
Add your code here for postprocessing or remove if not needed
You can set read/write variables here, for example:
Variables.MyIntVar = 100
*/
}
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
/*
Add your code here
*/
}
}
Další položky Project v Script Component Project
Projekt komponenty Script může obsahovat i jiné položky než výchozí položku ScriptMain . Můžete do projektu přidávat třídy, moduly, kódové soubory a složky a složky můžete použít k organizaci skupin položek.
Všechny položky, které přidáte, zůstávají uloženy uvnitř balíčku.
Odkazy v Script Component Project
Odkazy na spravované assemble můžete přidat kliknutím pravým tlačítkem na Script task project v Project Exploreru a poté kliknutím na Přidat referenci. Pro více informací viz Odkazování na jiné sestavy ve skriptovacích řešeních.
Note
Odkazy na projekty můžete zobrazit v IDE VSTA v Class View nebo v Project Exploreru. Jedno z těchto oken otevřete v nabídce Zobrazit . Novou referenci můžete přidat z menu Project, z Project Explorer nebo z Class View.
Interakce s balíčkem v skriptové části
Vlastní skript, který napíšete v komponentě Script, může přistupovat k proměnným a správcům spojení z balíčku obsahujícího přes silně typované accessory v automaticky generovaných základních třídách. Pokud je chcete zpřístupnit svému skriptu, musíte však před vstupem do režimu návrhu kódu nakonfigurovat jak proměnné, tak správce spojení. Můžete také vyvolávat události a provádět logování ze svého kódu komponenty Script.
Automaticky generované položky projektu v rámci Script component poskytují následující objekty, metody a vlastnosti pro interakci s balíčkem.
| Funkce balení | Přístupová metoda |
|---|---|
| Variables | Použijte pojmenované a typované vlastnosti accessoru ve třídě Variables collection v položce projektu ComponentWrapper , které jsou vystaveny vlastností Variables třídy ScriptMain . Metoda PreExecute umožňuje přístup pouze k proměnným pouze pro čtení. Metoda PostExecute umožňuje přístup jak k proměnným pouze pro čtení, tak k čtení/zápisu. |
| Connections | Použijte pojmenované a typované vlastnosti accessoru ve třídě kolekce Connections v položce projektu ComponentWrapper , které jsou vystaveny vlastností Connections třídy ScriptMain . |
| Events | Zvyšujte události ComponentMetaData pomocí vlastností třídy ScriptMain a metod IDTSComponentMetaData100Fire<X> rozhraní. |
| Logging | Provádějte logování Log pomocí metody třídy ScriptMain . |
Debugování skriptové složky
Pro ladění kódu ve vaší Script komponentě nastavte alespoň jeden breakpoint v kódu a pak zavřete VSTA IDE, abyste spustili balíček v SQL Server Data Tools (SSDT). Když se spuštění balíčku dostane do komponenty Script, VSTA IDE se znovu otevře a zobrazí váš kód pouze pro čtení. Po dosažení bodu přerušení můžete prozkoumat hodnoty proměnných a postupně procházet zbývající kód.
Note
Nelze ladit komponentu Script, pokud spustíte komponentu Script jako součást podbalíčku, který je spuštěn z úlohy Execute Package. Breakpointy, které nastavíte v Script komponentě v podbalení, jsou v těchto případech ignorovány. Dětský balíček můžete normálně ladit tím, že ho spustíte zvlášť.
Note
Když ladíte balíček obsahující více komponent skriptů, ladí jeden komponent skriptu. Systém může ladit další komponentu skriptu, pokud ladění dokončí, například u kontejneru Foreach Loop nebo For Loop.
Provádění komponenty Script můžete také monitorovat pomocí následujících metod:
Vykonejte přerušení a zobrazte modální zprávu pomocí metody MessageBox.Show v System.Windows. Jmenný prostor Forms. (Tento kód odstraňte po dokončení ladění.)
Vyvolávejte události pro informační zprávy, varování a chyby. Metody FireInformation, FireWarning a FireError zobrazují popis události v okně Visual Studio Output. Nicméně metody FireProgress, Console.Write a Console.WriteLine nezobrazují žádné informace v okně Output . Zprávy z události FireProgress se zobrazují na záložce Progress v SSIS Designer. Pro více informací viz Raising Events v části Script.
Logujte události nebo uživatelem definované zprávy pro povolené poskytovatele logování. Pro více informací viz Přihlášení v komponentě Script.
Pokud chcete pouze prozkoumat výstup komponenty Script nakonfigurované jako zdroj nebo jako transformaci, aniž byste data ukládali do cíle, můžete zastavit tok dat pomocí Row Count Transformation a připojit prohlížeč dat k výstupu komponenty Script. Pro informace o prohlížečích dat viz Debugging Tok dat.
V této sekci
Pro více informací o kódování komponenty Script viz následující témata v této sekci.
Pochopení objektového modelu komponent skriptů
Vysvětluje, jak používat objekty, metody a vlastnosti dostupné v komponentě Script.
Odkazování na jiné assemblie ve skriptovacích řešeních
Vysvětluje, jak odkazovat na objekty z knihovny tříd .NET Framework v komponentě Script.
Simulace chybového výstupu pro skriptovou složku
Vysvětluje, jak simulovat výstup chyby pro řádky, které během zpracování zvyšují chyby komponentou Script.