Aggiunta del reindirizzamento del flusso degli errori
Data aggiornamento: 17 luglio 2006
Come dimostrato nell'attività precedente, la trasformazione Lookup Currency Key non crea una corrispondenza quando tenta di elaborare il file flat di esempio danneggiato che ha generato 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 utilizzando l'output degli errori. L'utilizzo di un percorso di elaborazione separato per gli errori consente di ottenere diversi risultati. Ad esempio, è possibile ripulire i dati e quindi rielaborare la riga con esito negativo. È inoltre possibile salvare la riga con esito negativo insieme alle informazioni sugli errori aggiuntive in modo da consentire una verifica e una rielaborazione successive.
In questa attività si configurerà 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, queste righe verranno scritte in un file.
Per impostazione predefinita, le due colonne supplementari in un output degli errori di Integration Services, ErrorCode e ErrorColumn, contengono solo codici numerici che rappresentano un numero di errore, nonché l'ID della colonna in cui si è verificato l'errore. Questi valori numerici possono avere un'utilità limitata senza la descrizione dell'errore corrispondente.
Per aumentare l'utilità dell'output degli errori, prima che il pacchetto scriva le righe con esito negativo nel file si utilizzerà un componente script per accedere all'API di Integration Services e ottenere una descrizione dell'errore.
Per configurare un output degli errori
Nella casella degli strumenti espandere Trasformazioni flusso di dati e quindi trascinare Componente script sull'area di progettazione della scheda Flusso di dati. Posizionare Script a destra della trasformazione Lookup Currency Key.
Nella finestra di dialogo Seleziona tipo componente script fare clic su Trasformazione e quindi su OK.
Fare clic sulla trasformazione Lookup Currency Key e quindi trascinare la freccia rossa sulla nuova trasformazione Script per collegare i due componenti.
La freccia rossa rappresenta l'output degli errori della trasformazione Lookup Currency Key. Se si utilizza la freccia rossa per collegare la trasformazione al componente script è possibile reindirizzare qualsiasi errore di elaborazione al componente script, che successivamente elaborerà gli errori e li invierà alla destinazione.
Nella colonna Errore della finestra di dialogo Configura output errori selezionare Reindirizza riga e quindi fare clic su OK.
Nell'area di progettazione Flusso di dati fare clic con il pulsante destro del mouse sulla nuova trasformazione Script, scegliere Rinomina e cambiare il nome in Get Error Description.
Fare doppio clic sulla trasformazione Get Error Description.
Nella pagina Colonne di input della finestra di dialogo Editor trasformazione Script selezionare la colonna ErrorCode.
Nella pagina Input e output espandere Output 0, fare clic su Colonne di output e quindi fare clic su Aggiungi colonna.
Nella proprietà Name digitare ErrorDescription e impostare la proprietà DataType su string [DT_WSTR].
Nella pagina Script verificare che la proprietà LocaleID sia impostata su Inglese (Stati Uniti).
Fare clic su Progetta script per aprire l'ambiente di scripting Visual Studio for Applications (VSA). Nel metodo Input0_ProcessInputRow digitare o incollare il codice seguente.
Row.ErrorDescription =
Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)
La subroutine completa risulterà analoga al codice seguente.
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Row.ErrorDescription =
Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)
End Sub
Scegliere Chiudi e torna a dal menu File per chiudere l'IDE di VSA e la finestra di dialogo Editor trasformazione Script.
Fare clic su OK.