Разработка пользовательских объектов для служб Integration Services
Если объекты потока управления и потока данных, поставляемые со службами SQL Server Службы Integration Services, не отвечают потребностям пользователя, можно разработать множество типов собственных пользовательских объектов, в том числе:
Пользовательские задачи.
Пользовательские диспетчеры соединений. Соединение с внешними источниками данных, не поддерживаемыми в настоящее время.
Пользовательские регистраторы. Регистрация событий пакета в форматах, не поддерживаемых в настоящее время.
Пользовательские перечислители. Поддержка итерации по набору объектов или форматов значений, не поддерживаемых в настоящее время.
Пользовательские компоненты потока данных. Могут быть настроены источники, преобразования или назначения.
Модель объектов служб Службы Integration Services поддерживает такую пользовательскую разработку с помощью базовых классов, формирующих согласованную надежную структуру для пользовательской реализации.
Если не требуется повторно использовать пользовательскую функциональность в нескольких пакетах, задача «Скрипт» и компонент скрипта предоставляют все возможности для использования языка программирования управляемого кода при значительно меньшем объеме необходимой для этого кода инфраструктуры. Дополнительные сведения см. в разделе Сравнение решений со сценариями и пользовательских объектов.
Шаги разработки пользовательского объекта для служб Integration Services
При разработке пользовательского объекта для использования в службах Службы Integration Services разрабатывается библиотека классов (DLL), которая затем загружается во время разработки и выполнения конструктором служб SSIS и средой времени выполнения служб Службы Integration Services. Наиболее важными для реализации методами являются не те, которые вызываются из собственного пользовательского кода, а те, которые вызываются средой выполнения в соответствующие моменты для инициализации и проверки компонента и активации его функциональности.
Ниже перечислены шаги разработки пользовательского объекта:
Создайте новый проект типа библиотеки классов на предпочитаемом языке программирования управляемого кода.
Создайте класс, наследующий от соответствующего базового класса, как показано в следующей таблице.
Примените к новому классу соответствующий атрибут, как показано в следующей таблице.
Переопределите методы базового класса и напишите код для пользовательской функциональности своего объекта.
При необходимости создайте пользовательский интерфейс для своего компонента. Для упрощения развертывания пользовательский интерфейс можно разрабатывать как отдельный проект в рамках того же решения и построить его как отдельную сборку.
При необходимости можно отобразить ссылку на образцы кода и содержимое справки по пользовательскому объекту в Области элементов служб SSIS.
Постройте, разверните и выполните отладку нового пользовательского объекта, как описано в разделе Построение, развертывание и отладка пользовательских объектов.
Базовые классы, атрибуты и важные методы
В этой таблице содержатся справочные сведения о большинстве важных элементов объектной модели служб Службы Integration Services для каждого типа пользовательских объектов, доступных для разработки.
Пользовательский объект |
Базовый класс |
Атрибут |
Важные методы |
---|---|---|---|
Задача |
|||
Диспетчер соединений |
|||
Регистратор |
|||
Перечислитель |
|||
Компонент потока данных |
Предоставление ссылок на образцы кода и содержимое справки
Для отображения в Панели элементов служб 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 и вовсе невозможно настроить без пользовательской формы.
Пользовательский объект |
Базовый класс для пользовательского интерфейса |
Редактор по умолчанию при отсутствии пользовательского интерфейса |
---|---|---|
Задача |
Только окно свойств |
|
Диспетчер соединений |
Только окно свойств |
|
Регистратор |
(Не реализовано в службах Службы Integration Services) |
Текстовое поле в столбце Конфигурация |
Перечислитель |
Только окно «Свойства». Область «Конфигурация перечислителя» редактора остается пустой. |
|
Компонент потока данных |
Расширенный редактор |
Внешние ресурсы
- Запись в блоге Процесс построения решения Visual Studio выдает предупреждение о косвенной зависимости от сборки .NET Framework из-за ссылок служб SSIS на сайте blogs.msdn.com.
|
См. также
Задания
Построение, развертывание и отладка пользовательских объектов