Enhancing an Error Output with the Script Component
By default, the two extra columns in an Integration 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. These numeric values may be of limited use without the corresponding error description.
This topic describes how to add an error description column to existing error output data in the data flow by using the Script component. The example adds the error description that corresponds to a specific predefined Integration Services error code by using the GetErrorDescription method of the IDTSComponentMetaData100 interface, available through the ComponentMetaData property of the Script component.
Note
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. For more information, see Developing a Custom Data Flow Component.
Example
The example shown here uses a Script component configured as a transformation to add an error description column to existing error output data in the data flow.
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.
To configure this Script Component example
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. 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.
Add a new Script component to the Data Flow designer surface and configure it as a transformation.
Connect the error output from the upstream component to the new Script component.
Open the Script Transformation Editor, and on the Script page, for the ScriptLanguage property, select the script language.
Click Edit Script to open the Microsoft Visual Studio Tools for Applications (VSTA) IDE and add the sample code shown below.
Close VSTA.
In the Script Transformation Editor, on the Input Columns page, select the ErrorCode column.
On the Inputs and Outputs page, add a new output column of type String named ErrorDescription. Increase the default length of the new column to 255 to support long messages.
Close the Script Transformation Editor.
Attach the output of the Script component to a suitable destination. A Flat File destination is the easiest to configure for ad hoc testing.
Run the package.
Public Class ScriptMain
Inherits UserComponent
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Row.ErrorDescription = _
Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)
End Sub
End Class
public class ScriptMain:
UserComponent
{
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
Row.ErrorDescription = this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);
}
}
|