Lezione 4-3: Aggiungere il reindirizzamento del flusso degli errori

Si applica a:SQL Server SSIS Integration Runtime in Azure Data Factory

Nell'attività precedente, la trasformazione Lookup Currency Key non crea una corrispondenza quando tenta di elaborare il file flat di esempio danneggiato, che genera un errore. Dato che la trasformazione utilizza le impostazioni predefinite per l'output degli errori, qualsiasi errore determina l'esito negativo della trasformazione. Quando la trasformazione viene interrotta, si interrompe anche il resto del pacchetto.

Anziché consentire la mancata riuscita della trasformazione, è possibile configurare il componente in modo da reindirizzare la riga con esito negativo a un altro percorso di elaborazione, usando l'output degli errori. L'utilizzo di un percorso di elaborazione degli errori separato offre più opzioni. Ad esempio, è possibile ripulire i dati e successivamente rielaborare la riga con esito negativo. È inoltre possibile salvare la riga con esito negativo insieme alle informazioni sugli errori in modo da consentire una verifica e una rielaborazione successive.

In questa attività si configura la trasformazione Lookup Currency Key in modo che le righe con esito negativo vengano reindirizzate all'output degli errori. Nel ramo del flusso di dati relativo agli errori, Integration Services scrive queste righe in un file.

Per impostazione predefinita, le due colonne supplementari in un output degli errori di Integration Services, ovvero ErrorCode e ErrorColumn, contengono solo un codice numerico e l'ID della colonna in cui si è verificato l'errore. In questa attività, prima che il pacchetto scriva le righe con esito negativo nel file, viene usato un componente script per accedere all'API di Integration Services e ottenere una descrizione dell'errore.

Configurare un output degli errori

  1. Nella casella degli strumenti SSIS espandere Comune quindi trascinare Componente script nell'area di progettazione della scheda Flusso di dati. Posizionare Script a destra della trasformazione Lookup Currency Key.

  2. Nella finestra di dialogo Seleziona tipo componente script, selezionare Trasformazione, quindi selezionare OK.

  3. Per collegare i due componenti, selezionare la trasformazione Lookup Currency Key e quindi trascinare la freccia rossa sulla nuova trasformazione Script.

    La freccia rossa rappresenta l'output degli errori della trasformazione Lookup Currency Key . Usando la freccia rossa per collegare la trasformazione al componente script, reindirizzare qualsiasi errore di elaborazione al componente script, che elabora gli errori e li invia alla destinazione.

  4. Nella colonna Errore della finestra di dialogo Configura output errori selezionare Reindirizza riga e quindi selezionare OK.

  5. Nell'area di progettazione Flusso di dati, selezionare il nome Componente script nel nuovo Componente script e cambiarlo in Get Error Description.

  6. Fare doppio clic sulla trasformazione Get Error Description .

  7. Nella pagina Colonne di input della finestra di dialogo Editor trasformazione Script selezionare la colonna ErrorCode .

  8. Nella pagina Input e output espandere Output 0, selezionare Colonne di output, quindi selezionare Aggiungi colonna.

  9. Nella proprietà Name, immettere ErrorDescription e impostare la proprietà DataType su Stringa Unicode [DT_WSTR].

  10. Nella pagina Script verificare che la proprietà LocaleID sia impostata su Inglese (Stati Uniti).

  11. Selezionare Modifica script per aprire Microsoft Visual Studio Tools for Applications (VSTA). Nel metodo Input0_ProcessInputRow, immettere o incollare il codice seguente:

    [Visual Basic]

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

    [Visual C#]

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

    La subroutine completa risulta analoga al codice seguente:

    [Visual Basic]

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)  
    
      Row.ErrorDescription =   
        Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)  
    
    End Sub  
    

    [Visual C#]

    public override void Input0_ProcessInputRow(Input0Buffer Row)  
        {  
    
            Row.ErrorDescription = this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);  
    
        }  
    
  12. Nel menu Compila, selezionare Compila soluzione per compilare lo script e salvare le modifiche, quindi chiudere VSTA.

  13. Selezionare OK per chiudere la finestra di dialogo Editor trasformazione Script.

Esecuzione del passaggio successivo

Passaggio 4: aggiunta di una destinazione file flat