Разработка пользовательских объектов для служб Integration Services
Если объекты потока управления и потока данных, поставляемые со службами SQL ServerIntegration Services, не отвечают потребностям пользователя, можно разработать множество типов собственных пользовательских объектов, в том числе:
Пользовательские задачи.
Пользовательские диспетчеры соединений. Соединение с внешними источниками данных, неподдерживаемыми в настоящее время.
Пользовательские регистраторы. Регистрация событий пакета в форматах, неподдерживаемых в настоящее время.
Пользовательские перечислители. Поддержка итерации по набору объектов или форматов значений, неподдерживаемых в настоящее время.
Пользовательские компоненты потока данных. Могут настраиваться как источники, преобразования или назначения.
Модель объектов служб Integration Services поддерживает такую пользовательскую разработку с помощью базовых классов, формирующих согласованную надежную структуру для пользовательской реализации.
Если не требуется повторно использовать пользовательскую функциональность в нескольких пакетах, задача «Сценарий» и компонент сценария предоставляют все возможности для использования языка программирования управляемого кода при значительно меньшем объеме необходимого для этого кода инфраструктуры. Дополнительные сведения см. в разделе Сравнение решений со сценариями и пользовательских объектов.
Рабочие образцы каждого типа объекта см. в образцах служб Integration Services в разделе Codeplex.
Шаги разработки пользовательского объекта для служб Integration Services
При разработке пользовательского объекта для использования в службах Integration Services разрабатывается библиотека классов (DLL), которая затем загружается во время разработки и выполнения конструктором служб SSIS и средой выполнения служб Integration Services. Наиболее важными для реализации методами являются не те, которые вызываются из собственного пользовательского кода, а те, которые вызываются средой выполнения в соответствующие моменты для инициализации и проверки компонента и активации его функциональности.
Ниже перечислены шаги разработки пользовательского объекта:
Создайте новый проект типа библиотеки классов на предпочитаемом языке программирования управляемого кода.
Создайте класс, наследующий от соответствующего базового класса, как показано в следующей таблице.
Примените к новому классу соответствующий атрибут, как показано в следующей таблице.
Переопределите методы базового класса и напишите код для пользовательской функциональности своего объекта.
При необходимости создайте пользовательский интерфейс для своего компонента. Для упрощения развертывания пользовательский интерфейс можно разрабатывать как отдельный проект в рамках того же решения и построить его как отдельную сборку.
Постройте, разверните и выполните отладку нового пользовательского объекта, как описано в разделе Построение, развертывание и отладка пользовательских объектов.
Базовые классы, атрибуты и важные методы
В этой таблице содержатся справочные сведения о большинстве важных элементов модели объектов служб Integration Services для каждого типа пользовательских объектов, доступных для разработки.
Пользовательский объект |
Базовый класс |
Атрибут |
Важные методы |
---|---|---|---|
Задача |
|||
Диспетчер соединений |
|||
Регистратор |
|||
Перечислитель |
|||
Компонент потока данных |
Создание пользовательского интерфейса
Чтобы предоставить пользователям возможность настраивать свойства пользовательского объекта, потребуется также создать собственный пользовательский интерфейс. В случаях, когда создание пользовательского интерфейса необязательно, возможно, окажется целесообразным создать его, чтобы предоставить пользователю дружественный интерфейс, более удобный, чем редактор по умолчанию.
В проекте или сборке пользовательского интерфейса обычно используются два класса – класс, реализующий интерфейс служб Integration Services для пользовательских интерфейсов определенного типа пользовательского объекта, и форма Windows, отображаемая им для получения сведений от пользователя. Интерфейсы, реализуемые пользователем, имеют лишь несколько методов, и разработка пользовательского интерфейса не представляет особой сложности.
Примечание |
---|
Многие регистраторы служб Integration Services имеют пользовательский интерфейс, реализующий интерфейс IDtsLogProviderUI и заменяющий текстовое поле Конфигурация отфильтрованным раскрывающимся списком доступных диспетчеров соединений. Однако пользовательские интерфейсы для пользовательских регистраторов в этой версии служб Integration Services не реализованы. Указание значения для свойства UITypeName атрибута DtsLogProviderAttribute не имеет никакого эффекта. |
В следующей таблице содержатся справочные сведения об интерфейсах, которые необходимо реализовать при разработке пользовательского интерфейса для каждого типа пользовательского объекта. В ней также поясняется, как выглядит результат работы для пользователя в случае, если для объекта не был разработан пользовательский интерфейс или если не удалось связать объект с пользовательским интерфейсом при помощи свойства UITypeName в атрибуте объекта. Хотя возможностей расширенного редактора может быть достаточно для компонента потока данных, окно «Свойства» является менее удобным для пользователя решением для задач и диспетчеров соединений, а пользовательский перечислитель Foreach и вовсе невозможно настроить без пользовательской формы.
Пользовательский объект |
Базовый класс для пользовательского интерфейса |
Редактор по умолчанию при отсутствии пользовательского интерфейса |
---|---|---|
Задача |
Только окно свойств |
|
Диспетчер соединений |
Только окно свойств |
|
Регистратор |
(Не реализовано в службах Integration Services) |
Текстовое поле в столбце Конфигурация |
Перечислитель |
Только окно «Свойства». Область «Конфигурация перечислителя» редактора остается пустой. |
|
Компонент потока данных |
Расширенный редактор |
|
См. также