我遇到使用执行流程任务执行的PowerShell脚本的问题。可执行文件生成错误,需要将其返回给SSIS,从而导致程序包失败。
我的流程任务中的设置如下:
我的PowerShell代码尝试了一下。所以通常应该捕获(致命)错误。 Finally块将正确的退出代码返回给SSIS(这是有效的,如果我在两个块中放入1,则包失败)。
Try
{
$program = "Y:\Program Files (x86)\VMMa\Process Add Txt\MP_Add_txt.exe"
#edited lines to capture the error
$e = Start-Process -FilePath "$program" -wait -passthru
if ($e.exitcode -ne 0) {
write-error "I failed with error $($e.exitcode)";
$err1 = 1;
}
#end edit
}
Catch
{
#Write-Host "Error in function";
$err1 = 1;
}
Finally
#{Write-Output $err1 }
{
if($err1 -eq 1)
{
## - Custom Exit Code:
[Environment]::Exit("1");
}
Else
{
#Write-Output $result;
[Environment]::Exit("0");
}
}
运行期间生成的错误:
SSIS将任务标记为成功。问题是我的PowerShell代码,我猜是因为最后的块正在运行。任何帮助将不胜感激!