Поделиться через


Задача 2. Добавление и настройка контейнера «цикл по каждому элементу»

В этой задаче будет добавлена возможность выполнить циклическую обработку папки плоских файлов и применить для каждого из этих плоских файлов одинаковое преобразование потока данных, использованное на занятии 1. Это будет выполнено путем добавления в поток управления и настройки контейнера «цикл по каждому элементу».

Добавленный контейнер «цикл по каждому элементу» должен иметь возможность соединения с каждым плоским файлом в данной папке. Так как все файлы в папке имеют одинаковый формат, контейнер «цикл по каждому элементу» может использовать один и тот же диспетчер соединений с плоскими файлами для соединения с каждым из файлов. Контейнер будет использовать диспетчер соединений с плоскими файлами, созданный на занятии 1.

В настоящее время диспетчер соединений с плоскими файлами занятия 1 соединен только с одним плоским файлом. Чтобы последовательно соединиться с каждым плоским файлом в папке, необходимо настроить контейнер «цикл по каждому элементу» и диспетчер соединений с плоскими файлами, как описано ниже.

  • Контейнер «цикл по каждому элементу» — необходимо установить соответствие между перечисляемым значением контейнера и пользовательской переменной пакета. Контейнер будет использовать определенные пользователем переменные, чтобы динамически изменять свойства ConnectionString диспетчера соединений с плоскими файлами и последовательно соединяться с каждым файлом в папке.

  • Диспетчер соединений с плоскими файлами   — необходимо изменить настройки диспетчера соединений, созданного на занятии 1, таким образом, чтобы использовать определенные пользователем переменные для заполнения свойства диспетчера соединений ConnectionString.

Процедуры в этом задании показывают, как создавать и изменять контейнер «цикл по каждому элементу» для использования пользовательских переменных пакетов и как добавлять в цикл задачи «Поток данных». В следующей задаче будет рассмотрено, как изменить настройки диспетчера соединений с плоскими файлами таким образом, чтобы использовать в нем пользовательскую переменную.

После внесения этих изменений в пакет при его выполнении контейнер «цикл по каждому элементу» будет применен к коллекции файлов из папки образцов данных. Каждый раз при нахождении отвечающего критериям поиска файла контейнер «цикл по каждому элементу» будет подставлять в пользовательскую переменную имя этого файла, сопоставлять эту переменную со свойством ConnectionString диспетчера соединений с плоскими файлами SampleCurrencyData, а затем выполнять поток данных по этому файлу. Таким образом, при каждом проходе цикла Foreach для выполнения задачи «Поток данных» будет подставляться другой плоский файл.

ПримечаниеПримечание

Так как в службах Microsoft Integration Services поток управления и поток данных разделены, любые циклы, добавленные в поток управления, не требуют изменения потока данных. Поэтому поток данных, созданный на занятии 1, не требуется изменять.

Добавление контейнера «цикл по каждому элементу»

  1. В среде Business Intelligence Development Studio откройте вкладку Поток управления.

  2. В окне Область элементов раскройте элемент Элементы потока управления и перетяните Контейнер «цикл по каждому элементу» в рабочую область конструктора вкладки Поток управления.

  3. Щелкните правой кнопкой мыши добавленный Контейнер «цикл по каждому элементу» и выберите команду Изменить.

  4. В диалоговом окне Редактор циклов Foreach на странице Общие в поле Имя введите Foreach для файлов в папке. Нажмите кнопку ОК.

  5. Щелкните правой кнопкой мыши контейнер «цикл по каждому элементу», выберите Свойства, в окне «Свойства» убедитесь, что свойство LocaleID установлено в значение Английский (США).

Настройка перечислителя контейнера «цикл по каждому элементу»

  1. Дважды щелкните «Цикл по каждому файлу в папке», чтобы снова открыть Редактор циклов по каждому элементу.

  2. Щелкните Коллекция.

  3. На странице Коллекция выберите Перечислитель с циклом по каждому файлу.

  4. В группе Конфигурация перечислителя нажмите кнопку Обзор.

  5. В диалоговом окне Выбор папки найдите папку, которая содержит образцы данных учебника.

    По умолчанию образцы данных учебника устанавливаются в папку «C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating a Simple ETL Package\Sample Data».

  6. В поле Файл введите Currency_*.txt.

Сопоставление перечислителя с пользовательской переменной

  1. Щелкните Сопоставления переменной.

  2. На странице Сопоставления переменной в столбце Переменная щелкните пустую ячейку и выберите <Создать переменную…>.

  3. В диалоговом окне Добавление переменной в поле Имя введите varFileName.

    Важное примечаниеВажно!

    В именах переменных учитывается регистр.

  4. Нажмите кнопку ОК.

  5. Еще раз нажмите кнопку ОК, чтобы закрыть диалоговое окно Редактор циклов Foreach.

Добавление задачи «Поток данных» в цикл

  • Перетяните задачу «Поток данных» Получение валюты образца в контейнер «цикл по каждому элементу», получивший название по каждому файлу в папке.