Ssis

如果返回 false,則 SSIS“執行程序任務”失敗

  • February 20, 2019

我有一個呼叫 Powershell 並檢查文件夾是否為空的“執行程序任務”。如果返回 $false,我希望 SSIS 作業失敗。

這是程式碼

param ([string] $FolderLocation)

$FolderLocation = 'C:\Temp\IsFolderEmpty\'

if( (Get-ChildItem $FolderLocation | Measure-Object).Count -eq 0)
{
   #Folder Empty
   return $true

} Else {

   return $false

} 

每當我在 SSIS 中執行它時,它總是執行,無論是否$true返回$false。我嘗試創建一個新變數並在其中使用它,StandardOutputVariable但沒有任何運氣。

嘗試使用腳本任務檢查設置為StandardOutputVariable執行流程任務的 SSIS 變數的值。如果此值為 false,則該Dts.Events.FireError方法會引發一個錯誤事件,該事件可用於使包失敗。下面的程式碼是一個使用 C# 的範例,當變數為false. 需要在ReadOnlyVariables腳本任務欄位中設置 SSIS 變數以允許對其進行訪問。

   if (!Convert.ToBoolean(Dts.Variables["User::YourVariable"].Value))
   {
       Dts.Events.FireError(0, "Error", "Error Raised from Folder Check", null, 0);
   }

引用自:https://dba.stackexchange.com/questions/230289