Compartir a través de


Lección 4-3: Adición de redireccionamiento de flujo de errores

Se aplica a: SQL Server SSIS Integration Runtime en Azure Data Factory

En la tarea anterior, la transformación Lookup Currency Key no puede generar una coincidencia cuando la transformación intenta procesar el archivo plano de ejemplo dañado que genera un error. Puesto que la transformación utiliza la configuración de salida de error predeterminada, cualquier error da lugar a un error de la transformación. Cuando se produce un error en la transformación, también se produce un error en el resto del paquete.

En lugar de permitir que se produzca un error en la transformación, puede configurar el componente de modo que la fila que genera el error se redirija a otra ruta de procesamiento mediante la salida de errores. El uso de una ruta de acceso de procesamiento de errores independiente proporciona más opciones. Por ejemplo, podría limpiar los datos y luego volver a procesar la fila con error. O bien, podría guardar la fila con error junto con la información sobre el error para comprobarla y procesarla de nuevo más adelante.

En esta tarea se configura la transformación Lookup Currency Key para redirigir cualquier fila con errores a la salida de errores. En la rama de errores del flujo de datos, Integration Services escribe estas filas en un archivo.

De forma predeterminada, las dos columnas adicionales en una salida de errores de Integration Services (ErrorCode y ErrorColumn) solo contienen un código de error numérico y el identificador de la columna en la que se ha producido el error. En esta tarea, antes de que el paquete escriba las filas con errores en el archivo, se usa un componente de script para acceder a la API de Integration Services y obtener una descripción del error.

Configuración de una salida de errores

  1. En el Cuadro de herramientas de SSIS, expanda Comunesy, a continuación, arrastre Componente de script a la superficie de diseño de la pestaña Flujo de datos . Coloque Script a la derecha de la transformación Lookup Currency Key .

  2. En el cuadro de diálogo Seleccionar el tipo de componente de script, haga clic en Transformación y luego en Aceptar.

  3. Para conectar los dos componentes, haga clic en la transformación Lookup Currency Key y luego arrastre la flecha de color rojo hasta la nueva transformación Script.

    La flecha roja representa la salida de errores de la transformación Lookup Currency Key . Con la flecha de color rojo para conectar la transformación con el componente de script, se redirige cualquier error de procesamiento a este componente, que lo procesa y envía al destino.

  4. En el cuadro de diálogo Configurar la salida de errores, en la columna Error, seleccione Redirigir fila y, después, haga clic en Aceptar.

  5. En la superficie de diseño Flujo de datos, haga clic en el nombre Componente de script del nuevo Componente de script y cambie el nombre por Get Error Description.

  6. Haga doble clic en la transformación Get Error Description .

  7. En el cuadro de diálogo Editor de transformación Script , en la página Columnas de entrada , seleccione la columna ErrorCode .

  8. En la página Entradas y salidas, expanda Salida 0, haga clic en Columnas de salida y después en Agregar columna.

  9. En la propiedad Nombre, escriba ErrorDescription y establezca la propiedad DataType en Cadena Unicode [DT_WSTR].

  10. En la página Script, compruebe que la propiedad LocaleID se haya establecido en Inglés (Estados Unidos) .

  11. Seleccione Editar script para abrir Microsoft Visual Studio Tools for Applications (VSTA). En el método Input0_ProcessInputRow, escriba o pegue el código siguiente:

    [Visual Basic]

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

    [Visual C#]

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

    La subrutina completada es similar al código siguiente:

    [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. En el menú Compilar, haga clic en Compilar solución para compilar el script y guardar los cambios y, después, cierre VSTA.

  13. Haga clic en Aceptar para cerrar el cuadro de diálogo Editor de transformación Script.

Ir a la tarea siguiente

Paso 4: Adición de un destino de archivo plano