Ottimizzazione di un output degli errori con il componente scriptEnhancing an Error Output with the Script Component

Per impostazione predefinita, le due colonne supplementari in un Integration ServicesIntegration Services output degli errori, ErrorCode ed ErrorColumn, contengono solo codici numerici che rappresentano un numero di errore e l'ID della colonna in cui si è verificato l'errore.By default, the two extra columns in an Integration ServicesIntegration Services error output, ErrorCode and ErrorColumn, contain only numeric codes that represent an error number and the ID of the column in which the error occurred. Questi valori numerici possono essere limitate all'uso senza la descrizione dell'errore corrispondente e il nome della colonna.These numeric values may be of limited use without the corresponding error description and column name.

In questo argomento viene descritto come aggiungere la descrizione dell'errore e il nome della colonna di dati di output degli errori esistente nel flusso di dati tramite il componente Script.This topic describes how to add the error description and the column name to existing error output data in the data flow by using the Script component. Nell'esempio viene aggiunta la descrizione dell'errore che corrisponde a un codice di errore specifico predefinito di Integration ServicesIntegration Services utilizzando il metodo GetErrorDescription dell'interfaccia IDTSComponentMetaData100, disponibile tramite la proprietà ComponentMetaData del componente script.The example adds the error description that corresponds to a specific predefined Integration ServicesIntegration Services error code by using the GetErrorDescription method of the IDTSComponentMetaData100 interface, available through the ComponentMetaData property of the Script component. Quindi l'esempio aggiunge il nome della colonna che corrisponde all'ID di derivazione acquisito tramite il GetIdentificationStringByID metodo dell'interfaccia stessa.Then the example adds the column name that corresponds to the captured lineage ID by using the GetIdentificationStringByID method of the same interface.

Nota

Se si desidera creare un componente da riutilizzare più facilmente con più attività Flusso di dati e più pacchetti, è possibile utilizzare il codice di questo esempio di componente script come punto iniziale per un componente del flusso di dati personalizzato.If you want to create a component that you can more easily reuse across multiple Data Flow tasks and multiple packages, consider using the code in this Script component sample as the starting point for a custom data flow component. Per altre informazioni, vedere Sviluppo di un componente del flusso di dati personalizzato.For more information, see Developing a Custom Data Flow Component.

EsempioExample

L'esempio seguente viene usato un componente Script configurato come trasformazione per aggiungere la descrizione dell'errore e il nome della colonna di dati di output degli errori esistente nel flusso di dati.The example shown here uses a Script component configured as a transformation to add the error description and the column name to existing error output data in the data flow.

Per ulteriori informazioni su come configurare il componente Script per l'utilizzo come trasformazione nel flusso di dati, vedere la creazione di una trasformazione sincrona con il componente Script e la creazione di una trasformazione asincrona con il componente Script.For more information about how to configure the Script component for use as a transformation in the data flow, see Creating a Synchronous Transformation with the Script Component and Creating an Asynchronous Transformation with the Script Component.

Per configurare l'esempio di componente scriptTo configure this Script Component example

  1. Prima di creare il nuovo componente script, configurare un componente a monte nel flusso di dati per reindirizzare righe all'output degli errori quando si verifica un errore o un troncamento.Before creating the new Script component, configure an upstream component in the data flow to redirect rows to its error output when an error or truncation occurs. A scopo di test, è possibile configurare un componente in modo da assicurarsi che si verificheranno errori, ad esempio configurando una trasformazione Ricerca tra due tabelle in cui la ricerca avrà esito negativo.For testing purposes, you may want to configure a component in a manner that ensures that errors will occur—for example, by configuring a Lookup transformation between two tables where the lookup will fail.

  2. Aggiungere un nuovo componente script all'area di progettazione del flusso di dati e configurarlo come trasformazione.Add a new Script component to the Data Flow designer surface and configure it as a transformation.

  3. Connettere l'output degli errori del componente a monte a questo nuovo componente script.Connect the error output from the upstream component to the new Script component.

  4. Aprire il Editor trasformazione Scripte scegliere il Script pagina per il ScriptLanguage proprietà, selezionare il linguaggio di scripting.Open the Script Transformation Editor, and on the Script page, for the ScriptLanguage property, select the script language.

  5. Fare clic su modifica Script per aprire la MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) IDE e aggiungere il codice di esempio illustrato di seguito.Click Edit Script to open the MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) IDE and add the sample code shown below.

  6. Chiudere VSTA.Close VSTA.

  7. Editor trasformazione Script, nel colonne di Input pagina, selezionare le colonne ErrorCode ed ErrorColumn.In the Script Transformation Editor, on the Input Columns page, select the ErrorCode and ErrorColumn columns.

  8. Nel input e output pagina, aggiungere due nuove colonne.On the Inputs and Outputs page, add two new columns.

    • Aggiungere una nuova colonna di output di tipo stringa denominato ErrorDescription.Add a new output column of type String named ErrorDescription. Aumentare la lunghezza predefinita della nuova colonna fino a 255 per supportare messaggi lunghi.Increase the default length of the new column to 255 to support long messages.

    • Aggiungere un'altra colonna di output di tipo stringa denominato ColumnName.Add another new output column of type String named ColumnName. Aumentare la lunghezza predefinita della nuova colonna a 255 per supportare i valori lunghi.Increase the default length of the new column to 255 to support long values.

  9. Chiudi il Editor trasformazione Script.Close the Script Transformation Editor.

  10. Connettere l'output del componente script a una destinazione appropriata.Attach the output of the Script component to a suitable destination. Le destinazioni file flat sono le più facili da configurare per test ad hoc.A Flat File destination is the easiest to configure for ad hoc testing.

  11. Eseguire il pacchetto.Run the package.

Public Class ScriptMain  
    Inherits UserComponent  
    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)  

      Row.ErrorDescription = _  
        Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)  

      Dim componentMetaData130 = TryCast(Me.ComponentMetaData, IDTSComponentMetaData130)  
      If componentMetaData130 IsNot Nothing Then  
        Row.ColumnName = componentMetaData130.GetIdentificationStringByID(Row.ErrorColumn)  
         End If  

    End Sub  
End Class  
public class ScriptMain:  
    UserComponent  
{  
    public override void Input0_ProcessInputRow(Input0Buffer Row)  
    {  

      Row.ErrorDescription = this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);  

      var componentMetaData130 = this.ComponentMetaData as IDTSComponentMetaData130;  
      if (componentMetaData130 != null)  
        {  
            Row.ColumnName = componentMetaData130.GetIdentificationStringByID(Row.ErrorColumn);  
        }  

    }  
}  

Vedere ancheSee Also

Gestione degli errori nei dati Error Handling in Data
Utilizzo di output degli errori in un componente del flusso di dati Using Error Outputs in a Data Flow Component
Creazione di una trasformazione sincrona con il componente ScriptCreating a Synchronous Transformation with the Script Component