Componente scriptScript Component

Il componente Script ospita lo script e consente a un pacchetto di includere ed eseguire codice script personalizzato.The Script component hosts script and enables a package to include and run custom script code. È possibile utilizzare il componente script nei pacchetti per gli scopi seguenti:You can use the Script component in packages for the following purposes:

  • Applicare più trasformazioni ai dati anziché utilizzare più trasformazioni nel flusso di dati.Apply multiple transformations to data instead of using multiple transformations in the data flow. Uno script può ad esempio sommare i valori in due colonne e quindi calcolare la media della somma.For example, a script can add the values in two columns and then calculate the average of the sum.

  • Accedere a regole business in un assembly .NET esistente.Access business rules in an existing .NET assembly. Uno script può ad esempio applicare una regola business che specifica l'intervallo dei valori validi in una colonna di nome Income .For example, a script can apply a business rule that specifies the range of values that are valid in an Income column.

  • Utilizzare formule e funzioni personalizzate, in aggiunta alle funzioni e agli operatori forniti dalla grammatica delle espressioni di Integration ServicesIntegration Services .Use custom formulas and functions in addition to the functions and operators that the Integration ServicesIntegration Services expression grammar provides. È ad esempio possibile convalidare i numeri delle carte di credito che usano la formula LUHN.For example, validate credit card numbers that use the LUHN formula.

  • Convalidare i dati delle colonne e ignorare i record che contengono dati non validi.Validate column data and skip records that contain invalid data. Uno script può ad esempio stabilire se l'importo delle spese postali è ragionevole e ignorare i record che includono importi troppo alti o troppo bassi.For example, a script can assess the reasonableness of a postage amount and skip records with extremely high or low amounts.

    Il componente script consente di includere in modo facile e veloce funzioni personalizzate in un flusso di dati.The Script component provides an easy and quick way to include custom functions in a data flow. Se tuttavia si prevede di riutilizzare il codice di script in più pacchetti, è preferibile creare un componente personalizzato anziché utilizzare il componente script.However, if you plan to reuse the script code in multiple packages, you should consider programming a custom component instead of using the Script component. Per altre informazioni, vedere Sviluppo di un componente del flusso di dati personalizzato.For more information, see Developing a Custom Data Flow Component.

Nota

Se il componente script contiene uno script che tenta di leggere il valore di una colonna NULL, quando si esegue il pacchetto si verifica un errore.If the Script component contains a script that tries to read the value of a column that is NULL, the Script component fails when you run the package. È consigliabile che lo script usi il metodo IsNull per determinare se la colonna è NULL prima di tentare di leggere il valore della colonna.We recommend that your script use the IsNull method to determine whether the column is NULL before trying to read the column value.

Il componente script può essere utilizzato come origine, trasformazione o destinazione.The Script component can be used as a source, a transformation, or a destination. Questo componente supporta un input e più output.This component supports one input and multiple outputs. A seconda di come viene utilizzato, il componente supporta un input o più output oppure entrambi.Depending on how the component is used, it supports either an input or outputs or both. Lo script viene richiamato da ogni riga nell'input o nell'output.The script is invoked by every row in the input or output.

  • Se utilizzato come origine, il componente script supporta più output.If used as a source, the Script component supports multiple outputs.

  • Se utilizzato come trasformazione, il componente script supporta un input e più output.If used as a transformation, the Script component supports one input and multiple outputs.

  • Se utilizzato come destinazione, il componente script supporta un input.If used as a destination, the Script component supports one input.

    Il componente script non supporta output degli errori.The Script component does not support error outputs.

    Una volta stabilito che il componente Script è la scelta più appropriata per il pacchetto, è necessario configurare gli input e gli output, sviluppare lo script utilizzato dal componente e configurare il componente stesso.After you decide that the Script component is the appropriate choice for your package, you have to configure the inputs and outputs, develop the script that the component uses, and configure the component itself.

Informazioni sulle modalità del componente scriptUnderstanding the Script Component Modes

In Progettazione SSISSSIS sono disponibili due modalità per il componente script: progettazione metadati e progettazione codice.In the SSISSSIS Designer, the Script component has two modes: metadata-design mode and code-design mode. In modalità progettazione metadati è possibile aggiungere e modificare gli input e gli output del componente script, ma non scrivere codice.In metadata-design mode, you can add and modify the Script component inputs and outputs, but you cannot write code. Dopo avere configurato tutti gli input e gli output è possibile passare alla modalità progettazione codice per creare lo script.After all the inputs and outputs are configured, you switch to code-design mode to write the script. Il componente script genera automaticamente il codice di base dai metadati degli input e degli output.The Script component automatically generates base code from the metadata of the inputs and outputs. Se si modificano i metadati dopo la generazione del codice di base, non sarà più possibile compilare il codice perché il codice di base aggiornato potrebbe essere incompatibile con quello inserito dall'utente.If you change the metadata after the Script component generates the base code, your code may no longer compile because the updated base code may be incompatible with your code.

Scrittura dello script utilizzato dal componenteWriting the Script that the Component Uses

Il componente script usa MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) come ambiente di scrittura degli script.The Script component uses MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) as the environment in which you write the scripts. Si accede a VSTA dall' Editor trasformazione Script.You access VSTA from the Script Transformation Editor. Per altre informazioni, vedere Editor trasformazione Script (pagina Script).For more information, see Script Transformation Editor (Script Page).

Il componente script fornisce un progetto VSTA che include una classe generata automaticamente, ScriptMain, che rappresenta i metadati del componente.The Script component provides a VSTA project that includes an auto-generated class, named ScriptMain, that represents the component metadata. Se ad esempio il componente script viene utilizzato come trasformazione con tre output, la classe ScriptMain includerà un metodo per ogni output.For example, if the Script component is used as a transformation that has three outputs, ScriptMain includes a method for each output. La classe ScriptMain costituisce il punto di ingresso dello script.ScriptMain is the entry point to the script.

In VSTA sono disponibili tutte le caratteristiche standard dell'ambiente Visual StudioVisual Studio , come l'editor di Visual StudioVisual Studio con codifica a colori, la tecnologia IntelliSense e il Visualizzatore oggetti.VSTA includes all the standard features of the Visual StudioVisual Studio environment, such as the color-coded Visual StudioVisual Studio editor, IntelliSense, and Object Browser. Lo script utilizzato dal componente script è archiviato nella definizione del pacchetto.The script that the Script component uses is stored in the package definition. Durante la progettazione del pacchetto, il codice di script viene scritto temporaneamente in un file di progetto.When you are designing the package, the script code is temporarily written to a project file.

VSTA supporta il linguaggio di programmazione MicrosoftMicrosoft Visual C# e MicrosoftMicrosoft Visual Basic.VSTA supports the MicrosoftMicrosoft Visual C# and MicrosoftMicrosoft Visual Basic programming languages.

Per altre informazioni sulla programmazione del componente Script, vedere Estensione del flusso di dati con il componente script.For information about how to program the Script component, see Extending the Data Flow with the Script Component. Per altre informazioni sulla configurazione del componente script come origine, trasformazione o destinazione, vedere Sviluppo di tipi specifici di componenti script.For more specific information about how to configure the Script component as a source, transformation, or destination, see Developing Specific Types of Script Components. Per altri esempi, come una destinazione ODBC che dimostri l'uso del componente script, vedere Ulteriori esempi di componente script.For additional examples such as an ODBC destination that demonstrate the use of the Script component, see Additional Script Component Examples.

Nota

A differenza delle versioni precedenti in cui era possibile indicare se gli script erano precompilati o meno, in SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS) e versioni successive tutti gli script sono precompilati.Unlike earlier versions where you could indicate whether the scripts were precompiled, all scripts are precompiled in SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS) and later versions. Se uno script è precompilato, il motore del linguaggio non verrà caricato in fase di esecuzione e il pacchetto verrà eseguito molto più rapidamente.When a script is precompiled, the language engine is not loaded at run time and the package runs more quickly. I file binari precompilati occupano tuttavia una notevole quantità di spazio su disco.However, precompiled binary files consume significant disk space.

Configurazione del componente scriptConfiguring the Script Component

Per configurare il componente script, procedere nel modo seguente:You can configure the Script component in the following ways:

  • Selezionare le colonne di input a cui fare riferimento.Select the input columns to reference.

    Nota

    È possibile configurare un solo input quando si usa Progettazione SSISSSIS .You can configure only one input when you use the SSISSSIS Designer.

  • Specificare lo script che deve essere eseguito dal componente.Provide the script that the component runs.

  • Specificare il linguaggio di scripting.Specify the script language.

  • Specificare le variabili in sola lettura e in lettura e scrittura in elenchi delimitati da virgole.Provide comma-separated lists of read-only and read/write variables.

  • Aggiungere altri output e le colonne di output a cui lo script assegna valori.Add more outputs, and add output columns to which the script assigns.

    È possibile impostare le proprietà tramite Progettazione SSISSSIS o a livello di codice.You can set properties through SSISSSIS Designer or programmatically.

Configurazione del componente script in ProgettazioneConfiguring the Script Component in the Designer

Per altre informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor trasformazione Script , fare clic su uno degli argomenti seguenti:For more information about the properties that you can set in the Script Transformation Editor dialog box, click one of the following topics:

Configurazione del componente script a livello di codiceConfiguring the Script Component Programmatically

Per altre informazioni sulle proprietà che è possibile impostare nella finestra Proprietà o a livello di codice, fare clic su uno degli argomenti seguenti:For more information about the properties that you can set in the Properties window or programmatically, click one of the following topics:

Trasformazioni di Integration ServicesIntegration Services Transformations

Estensione del flusso di dati con il componente scriptExtending the Data Flow with the Script Component