2016-10-11 2 views
0

У меня есть пакет ssis, для которого первый этап - это шаг процесса выполнения. Внутри этапа процесса выполнения я прошу командную строку 7z взорвать zip-файл из данной папки.Как остановить пакет ssis, если файлов нет?

Если нет почтовых файлов, пакет SSIS выходит из строя. Будут дни без zip-файлов. как закончить успешно и закончить в этом случае?

Благодаря

+0

Что делать, если zip-файл не существует? Отправить письмо? – p2k

+2

Вы можете обернуть его внутри каждого цикла файлов. Если файлов нет, цикл не запускается. –

+0

Ник, ваше решение сработало. можете ли вы ответить на него? Благодарю. – arcee123

ответ

0

Это, как вы можете остановить пакет SSIS, если нет файлов.

  1. Запрограммируйте программу, чтобы узнать, существует ли файл.
  2. Используйте прецедентное ограничение и пытайтесь распаковать файл, если он существует.

Это пример скрипта, который вы можете использовать в задаче скрипта, чтобы проверить наличие файла.

Imports System 
Imports System.Data 
Imports System.Math 
Imports Microsoft.SqlServer.Dts.Runtime 
Imports System.IO 

Public Class ScriptMain 

    Enum ScriptResults 
     Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success 
     Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure 
    End Enum 

    Partial Public Class ScriptMain 
     Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase 

     Public Sub Main() 

      Dim directory As DirectoryInfo = New DirectoryInfo("c:\") 
      Dim file As FileInfo() = directory.GetFiles("*.zip") 

      If file.Length > 0 Then 
       Dts.Variables("User::FileExists").Value = True 
      Else 
       Dts.Variables("User::FileExists").Value = False 
      End If 

      Dts.TaskResult = ScriptResults.Success 
     End Sub 
    End Class 
End Class 
Смежные вопросы