SSIS, подсчет файлов в папке с помощью скриптовой задачи, зацикливание задачи, пока количество файлов не достигнет 25

Необходимо разработать пакет, который должен прочитать количество файлов из папки ftp/. Если число меньше 25, продолжайте цикл. Переходите к следующему заданию, как только число достигнет 25.

То, что я попробовал, это:

Я использовал задачу скрипта, создал несколько переменных и переменные имеют количество файлов (успешно). Я использовал выражение в ограничении приоритета для проверки, равно ли число файлов в определенной папке 25. Если нет, то оно не перейдет к другой задаче. Что я не могу сделать, так это держать зацикливание задач скрипта до тех пор, пока число файлов не станет 25. Я пытался использовать для каждого цикла, но не смог получить желоб. пожалуйста, предложите.

Пожалуйста, посмотрите на это. У меня есть 2 задачи сценария. Первый подсчитывает и отображает количество файлов в папке. вот сценарий для этого.

enter code here


public void Main()
    {
        // TODO: Add your code here

            String FolderPath = 
Dts.Variables["User::FolderPath"].Value.ToString();
            string Prefix = 
Dts.Variables["User::prefix"].Value.ToString();
            Int32 FileCnt = 0;
            var directory = new DirectoryInfo(FolderPath);
            FileInfo[] files = directory.GetFiles(Prefix + "*");
            //Declare and initilize variables            
            //Get one Book(Excel file at a time)
            foreach (FileInfo file in files)
            {
                FileCnt += 1;
                MessageBox.Show(file.Name);
            }
            MessageBox.Show(FileCnt.ToString());
            Dts.Variables["User::FileCnt"].Value = 
Convert.ToInt32(FileCnt);
    }

    #region ScriptResults declaration
    /// <summary>
    /// This enum provides a convenient shorthand within the scope of 
this class for setting the
    /// result of the script.
    /// 
    /// This code was generated automatically.
    /// </summary>
    enum ScriptResults
    {
        Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
        Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
    };
    #endregion

}
} 

затем я отредактировал ограничение приоритета и написал и выражение @FileCnt == 25, что означает, что следующая задача скрипта будет выполняться, только когда число файлов в папке равно 25. Теперь я хочу, чтобы первая задача скрипта выполнялась в цикл, пока папка не получит 25 файлов. я думаю, что нам нужно использовать контейнер foreachloop здесь. ты получил то, что я сейчас ищу??

0 ответов

Другие вопросы по тегам