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


Использование выражений свойств в пакетах

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

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

Выражения свойств могут обновляться несколькими способами.

  • Пользовательские переменные могут быть включены в конфигурацию пакета и затем обновлены при развертывании. Во время выполнения выражение свойства вычисляется с использованием обновленного значения переменной.

  • Системные переменные, входящие в выражения, обновляются во время выполнения, что приводит к изменению результата вычисления свойства.

  • Функции даты и времени вычисляются при выполнении и предоставляют обновленные значения выражениям свойств.

  • Переменные в выражениях могут обновляться скриптами, которые запускаются задачей скрипта и компонентом скрипта.

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

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

Имена пользовательских и системных переменных обрабатываются с учетом регистра.

Дополнительные сведения см. в разделе Выражения служб Integration Services (SSIS).

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

Свойство может использовать только одно выражение свойства, а выражение свойства может применяться только к одному свойству. Однако можно создать несколько одинаковых выражений свойств и присвоить их разным свойствам.

Некоторые свойства устанавливаются с помощью значений из перечислителей. При ссылке на элемент перечислителя в выражении свойств необходимо использовать числовое значение, которое соответствует понятному имени элемента перечислителя. Например, если выражение свойств устанавливает свойство LoggingMode, которое использует значение из перечисления DTSLoggingMode, выражение свойств должно использовать 0, 1 или 2 вместо понятных имен Enabled, Disabled или UseParentSetting. Дополнительные сведения см. в разделе Констант-перечислителей в выражениях свойств.

Пользовательский интерфейс выражения свойства

Службы Службы Integration Services предоставляют набор средств для построения и управления выражениями свойств.

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

  • Окно Свойства предназначено для редактирования выражений и просмотра списка выражений свойств, используемых пакетом или объектами пакета.

  • Диалоговое окно Редактор выражений свойств служит для создания, обновления и удаления выражений свойств.

  • Диалоговое окно Построитель выражений служит для построения выражений с помощью графических средств. В диалоговом окне Построитель выражений можно вычислить выражение для анализа без присваивания результата свойству.

На следующей диаграмме показан интерфейс пользователя, который используется для добавления, изменения и удаления выражений свойств.

Пользовательский интерфейс для выражений свойств

В окне Свойства на странице Выражения нажмите кнопку обзора (…) на уровне коллекции Выражения для открытия диалогового окна Редактор выражений свойств. Редактор выражений свойств позволяет сопоставлять свойства с выражением и вводить выражения свойств. Если нужно использовать графические средства построения выражений для создания и проверки выражения, нажмите кнопку обзора (…) на уровне выражения для открытия диалогового окна Построитель выражений, создайте или внесите изменения и при желании проверьте выражение.

Диалоговое окно Построитель выражений можно также открыть из диалогового окна Редактор выражений свойств.

Работа с выражениями свойств

Установка выражений свойств для компонентов потока данных

При построении пакета в среде SQL Server Data Tools (SSDT) свойства компонентов потоков данных, которые поддерживают выражения свойств, публикуются в задаче потока данных, которой они принадлежат. Для добавления, изменения и удаления выражений свойств для компонентов потоков данных щелкните правой кнопкой мыши задачу потока данных для потока данных, которому компоненты потока данных принадлежат, и выберите Свойства. Окно свойств содержит список свойств компонентов потока данных, которые можно будет использовать в выражении свойств. Например, для создания или изменения выражения свойства для свойства SamplingValue преобразования «Выборка строк» в потоке данных с именем SampleCustomer щелкните правой кнопкой мыши задачу потока данных для потока данных, которому принадлежит преобразование «Выборка строк», и выберите Свойства. Свойство SamplingValue отображается в окне свойств и имеет формат [SampleCustomer].[SamplingValue].

В окне свойств можно добавить, изменить или удалить выражения свойств для компонентов потока данных тем же самым способом, что и выражения свойств для других типов объектов служб Службы Integration Services. Окно свойств также предоставляет доступ к различным диалоговым окнам и построителям, которые используются для добавления, изменения или удаления выражений свойств для компонентов потоков данных. Дополнительные сведения о свойствах компонентов потока данных, которые могут быть обновлены выражениями свойств, см. в разделе Пользовательские свойства преобразований.

Загрузка выражений свойств

Определять или управлять тем, когда загружаются выражения свойств, невозможно. Выражения свойств вычисляются и загружаются при проверке пакета и его объектов. Проверка производится при сохранении пакета, открытии пакета в конструкторе служб Службы SSIS и при запуске пакета.

Поэтому обновленные значения свойств объектов пакета, которые используют выражения свойств, не будут видны в конструкторе служб Службы SSIS до тех пор, пока пакет не будет сохранен, запущен или заново открыт после добавления выражений свойств.

Выражения свойств связаны с объектами различных типов — диспетчерами соединений, регистраторами и перечислителями; они также загружаются при вызове методов, связанных с этим типом объектов. Например, свойства диспетчера соединений загружаются перед тем, как службы Службы Integration Services создают экземпляр соединения.

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

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

Параметр Set программы dtexec не может использоваться для заполнения выражений свойств.

В следующей таблице показано, когда выражения свойств служб Службы Integration Services вычисляются и загружаются.

Тип объекта

Загрузка и вычисление

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

После загрузки конфигураций

Перед проверкой

Перед выполнением

Диспетчеры соединений

После загрузки конфигураций

Перед проверкой

Перед выполнением

Перед созданием экземпляра соединения

Регистраторы

После загрузки конфигураций

Перед проверкой

Перед выполнением

Перед открытием журналов

Перечислители «по каждому элементу»

После загрузки конфигураций

Перед проверкой

Перед выполнением

Перед каждым перечислением в цикле

Использование выражений свойств в контейнере «цикл по каждому элементу»

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

При использовании выражений свойств со свойством ConnectionString для диспетчеров соединений с файлами, несколькими файлами, неструктурированными файлами и несколькими неструктурированными файлами, которые используют контейнер «цикл по каждому элементу», необходимо иметь в виду несколько вещей. Пакет может быть настроен для одновременного запуска нескольких исполняемых объектов установкой свойства MaxConcurrentExecutables в значение больше 1 или в значение –1. Значение –1 определяет максимальное количество одновременно исполняемых объектов как число, равное количеству процессоров плюс два. Чтобы избежать нежелательных последствий параллельного выполнения исполняемых объектов, значение MaxConcurrentExecutables должно быть установлено в 1. Если значение MaxConcurrentExecutables не равно 1, то значение свойства ConnectionString не может быть точно определено, а результаты становятся непредсказуемыми.

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

Образцы выражений свойств

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

Выражения свойств для свойства LoggingMode пакета

Приведенное далее выражение свойства может быть использовано, чтобы установить свойство LoggingMode пакета. Это выражение использует функции DAY и GETDATE, чтобы получить целое значение, представляющее день из даты. Если день равен 1 или 15, журналирование включается, иначе отключается. Значение 1 представляет собой целый эквивалент элемента Enabled перечислителя LoggingMode, а значение 2 — целый эквивалент элемента Disabled. В выражении вместо имени элемента перечислителя необходимо использовать числовое значение.

DAY((DT_DBTIMESTAMP)GETDATE())==1||DAY((DT_DBTIMESTAMP)GETDATE())==15?1:2

Выражение свойства для темы сообщения электронной почты

Следующее выражение свойства может применяться, чтобы установить свойство Subject задачи «Отправка почты» и предоставить необходимую тему сообщения электронной почты. Выражение использует сочетание строковых литералов, системных переменных, операторов объединения (+) и приведения, функций DATEDIFF и GETDATE. Системными переменными являются переменные PackageName и StartTime.

"PExpression-->Package: (" + @[System::PackageName] + ") Started:"+ (DT_WSTR, 30) @[System::StartTime] + " Duration:" + (DT_WSTR,10) (DATEDIFF( "ss", @[System::StartTime] , GETDATE() )) + " seconds"

Если имя пакета — EmailRowCountPP и он был выполнен 4.03.2005, а время выполнения равно 9 секундам, то выражение вернет приведенную ниже строку.

PExpression-->Package: (EmailRowCountPP) Started:3/4/2005 11:06:18 AM Duration:9 seconds.

Выражения свойства для содержимого сообщения электронной почты

Приведенное далее выражение свойства может быть использовано, чтобы установить свойство MessageSource задачи «Отправка почты». Выражение использует сочетание строковых литералов, пользовательских переменных и оператора объединения (+). Переменные, определенные пользователем, имеют имена nasdaqrawrows, nyserawrows и amexrawrows. Строка «\n» обозначает возврат каретки.

"Rows Processed: " + "\n" +" NASDAQ: " + (dt_wstr,9)@[nasdaqrawrows] + "\n" + " NYSE: " + (dt_wstr,9)@[nyserawrows] + "\n" + " Amex: " + (dt_wstr,9)@[amexrawrows]

Если значение nasdaqrawrows равно 7058, значение nyserawrows равно 3528, а значение amexrawrows равно 1102, выражение вычисляется со следующим результатом.

Обработано строк:

NASDAQ: 7058

NYSE: 3528

AMEX: 1102

Выражение свойства для исполняемого свойства задачи выполнения процесса

Приведенное далее выражение свойства может быть использовано для установки свойства Executable задачи выполнения процесса. Выражение использует сочетание строковых литералов, операторов и функций. Выражение использует функции DATEPART, GETDATE и условный оператор.

DATEPART("weekday", GETDATE()) ==2?"notepad.exe":"mspaint.exe"

Во второй день недели задача выполнения процесса запустит приложение notepad.exe, в другие дни — приложение mspaint.exe.

Выражение свойства для свойства ConnectionString диспетчера соединений с неструктурированными файлами

Приведенное ниже выражение свойства может быть использовано для установки свойства ConnectionString диспетчера соединений с неструктурированными файлами. Выражение использует одну пользовательскую переменную myfilenamefull, которая содержит путь к текстовому файлу.

@[User::myfilenamefull]

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

К выражениям свойства диспетчеров соединений доступ возможен только посредством окна «Свойства». Чтобы посмотреть свойства диспетчера соединений, необходимо выбрать диспетчер соединений в области Диспетчеры соединений конструктора служб Службы SSIS, если окно свойств открыто, или щелкнуть правой кнопкой мыши диспетчер соединений и выбрать Свойства.

Выражение свойства для свойства ConfigString регистратора текстового файла

Приведенное ниже выражение свойства может быть использовано для установки свойства ConfigString регистратора текстового файла. Выражение использует одну пользовательскую переменную varConfigString, которая содержит имя файла для использования диспетчером подключения файлов. Диспетчер подключения файлов задает путь к текстовому файлу, в который регистрируются записи журнала.

@[User::varConfigString]

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

К выражениям свойства регистратора доступ возможен только посредством окна «Свойства». Чтобы посмотреть свойства регистратора, необходимо выбрать поставщик журнала на вкладке Обозреватель пакетов конструктора служб Службы SSIS, если окно свойств открыто, или щелкнуть правой кнопкой поставщик журнала в обозревателе пакетов и выбрать Свойства.

Внешние ресурсы

Значок служб Integration Services (маленький) Будьте в курсе новых возможностей cлужб Integration Services

Чтобы загрузить новейшую документацию, статьи, образцы и видеоматериалы корпорации Майкрософт, а также лучшие решения участников сообщества, посетите страницу служб Службы Integration Services на сайте MSDN:


Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.

См. также

Задания

Использование переменных в пакетах