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


Разработка пользовательских объектов для служб Integration Services

Если объекты потока управления и потока данных, поставляемые со службами SQL Server Службы Integration Services, не отвечают потребностям пользователя, можно разработать множество типов собственных пользовательских объектов, в том числе:

  • Пользовательские задачи.

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

  • Пользовательские регистраторы.    Регистрация событий пакета в форматах, не поддерживаемых в настоящее время.

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

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

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

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

Шаги разработки пользовательского объекта для служб Integration Services

При разработке пользовательского объекта для использования в службах Службы Integration Services разрабатывается библиотека классов (DLL), которая затем загружается во время разработки и выполнения конструктором служб SSIS и средой времени выполнения служб Службы Integration Services. Наиболее важными для реализации методами являются не те, которые вызываются из собственного пользовательского кода, а те, которые вызываются средой выполнения в соответствующие моменты для инициализации и проверки компонента и активации его функциональности.

Ниже перечислены шаги разработки пользовательского объекта:

  1. Создайте новый проект типа библиотеки классов на предпочитаемом языке программирования управляемого кода.

  2. Создайте класс, наследующий от соответствующего базового класса, как показано в следующей таблице.

  3. Примените к новому классу соответствующий атрибут, как показано в следующей таблице.

  4. Переопределите методы базового класса и напишите код для пользовательской функциональности своего объекта.

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

  6. При необходимости можно отобразить ссылку на образцы кода и содержимое справки по пользовательскому объекту в Области элементов служб SSIS.

  7. Постройте, разверните и выполните отладку нового пользовательского объекта, как описано в разделе Построение, развертывание и отладка пользовательских объектов.

Базовые классы, атрибуты и важные методы

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

Пользовательский объект

Базовый класс

Атрибут

Важные методы

Задача

Task

DtsTaskAttribute

Execute

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

ConnectionManagerBase

DtsConnectionAttribute

AcquireConnection, ReleaseConnection

Регистратор

LogProviderBase

DtsLogProviderAttribute

OpenLog, Log, CloseLog

Перечислитель

ForEachEnumerator

DtsForEachEnumeratorAttribute

GetEnumerator

Компонент потока данных

PipelineComponent

DtsPipelineComponentAttribute

ProvideComponentProperties, PrimeOutput, ProcessInput

Предоставление ссылок на образцы кода и содержимое справки

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

Чтобы отобразить ссылку на образцы кода и содержимое справки по пользовательскому объекту, использующему собственный код, добавьте в файл скрипта реестра (RGS-файл) записи SamplesTag, HelpKeyword и HelpCollection. Пример приведен ниже.

val HelpKeyword = s 'sql11.dts.designer.executepackagetask.F1'

val SamplesTag = s 'ExecutePackageTask'

Создание настраиваемого пользовательского интерфейса

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

В проекте или сборке пользовательского интерфейса обычно используются два класса — класс, реализующий интерфейс служб Службы Integration Services для пользовательских интерфейсов определенного типа пользовательского объекта, и форма Windows, отображаемая им для получения сведений от пользователя. Интерфейсы, реализуемые пользователем, имеют лишь несколько методов, и разработка пользовательского интерфейса не представляет особой сложности.

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

Многие регистраторы служб Службы Integration Services имеют пользовательский интерфейс, реализующий интерфейс IDtsLogProviderUI и заменяющий текстовое поле Конфигурация отфильтрованным раскрывающимся списком доступных диспетчеров соединений. Однако пользовательские интерфейсы для пользовательских регистраторов в этом выпуске служб Службы Integration Services не реализованы. Указание значения для свойства UITypeName атрибута DtsLogProviderAttribute не имеет никакого эффекта.

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

Пользовательский объект

Базовый класс для пользовательского интерфейса

Редактор по умолчанию при отсутствии пользовательского интерфейса

Задача

IDtsTaskUI

Только окно свойств

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

IDtsConnectionManagerUI

Только окно свойств

Регистратор

IDtsLogProviderUI

(Не реализовано в службах Службы Integration Services)

Текстовое поле в столбце Конфигурация

Перечислитель

ForEachEnumeratorUI

Только окно «Свойства». Область «Конфигурация перечислителя» редактора остается пустой.

Компонент потока данных

IDtsComponentUI

Расширенный редактор

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

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

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


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

См. также

Задания

Построение, развертывание и отладка пользовательских объектов

Основные понятия

Сохранение пользовательских объектов