7

我有一个脚本组件(脚本转换),我需要能够使 DFT 失败,即它所属的数据流任务。

我正在发出这样的错误

try
{
   // Does some work here, which can fail...
}
catch (Exception ex)
{
   bool pbCancel = false;
   this.ComponentMetaData.FireError(0, Variables.TaskName, "Error message: " + ex.Message, String.Empty, 0, out pbCancel);
}

但是,FireError 不会导致任务失败。

请注意,这是数据转换任务中的脚本组件,而不是脚本任务。

我该怎么做才能使脚本组件中的此任务失败?

4

2 回答 2

2

在您的示例中,您正在捕获异常但没有抛出异常。只需添加

catch (Exception ex)
{
    // ... your other code here
    throw ex;
}

并且组件将失败。

于 2019-03-28T16:50:13.543 回答
1

这应该是您正在寻找的 - 2008 R2 C# 脚本组件。

bool fireAgain = true;
IDTSComponentMetaData100 myMetaData;
myMetaData = this.ComponentMetaData;

//for information
myMetaData.FireInformation(0, "SubComponent", "Description", string.Empty, 0, ref fireAgain);
//for error
myMetaData.FireError(0, "SubComponent", ex.Message.ToString() + ex.StackTrace, string.Empty, 0, out fireAgain);
于 2014-11-03T18:12:47.507 回答