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


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

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

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

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

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

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

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

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

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

Рабочие образцы каждого типа объекта см. в образцах служб Integration Services в разделе Codeplex.

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

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

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

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

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

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

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

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

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

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

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

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

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

Атрибут

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

Задача

Task

DtsTaskAttribute

Execute

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

ConnectionManagerBase

DtsConnectionAttribute

AcquireConnection, ReleaseConnection

Регистратор

LogProviderBase

DtsLogProviderAttribute

OpenLog, Log, CloseLog

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

ForEachEnumerator

DtsForEachEnumeratorAttribute

GetEnumerator

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

PipelineComponent

DtsPipelineComponentAttribute

ProvideComponentProperties, PrimeOutput, ProcessInput

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

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

В проекте или сборке пользовательского интерфейса обычно используются два класса – класс, реализующий интерфейс служб 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 или TechNet:

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