Опубликовано: Ноябрь 2016
В конструкторе служб Службы SSIS компонент скрипта имеет два режима: режим конструктора метаданных и режим конструктора кода.
При открытии окна Редактор преобразования «Скрипт» компонент переходит в режим конструктора метаданных. В этом режиме можно выбрать входные столбцы, а также добавить или настроить выходы и выходные столбцы, но нельзя писать код. После настройки метаданных компонента можно переключиться в режим конструктора кода для создания скрипта.
После переключения в режим конструктора кода путем нажатия кнопки Изменить скрипт компонент скрипта блокирует внесение дополнительных изменений в метаданные, а затем автоматически формирует код базовых классов на основе метаданных входов и выходов. После завершения автоматического формирования кода появляется возможность вводить пользовательский код. В разрабатываемом коде используются автоматически сформированные базовые классы для обработки входных строк, доступа к буферам и столбцам в буферах, а также для получения диспетчеров соединений и переменных из пакета; при этом все объекты рассматриваются как строго типизированные.
После ввода пользовательского кода в режиме конструктора кода можно переключиться обратно в режим конструктора метаданных. Это не приводит к удалению введенного кода, но последующие изменения в метаданных вызывают повторное формирование базового класса. В дальнейшем проверка компонента может окончиться неудачей из-за того, что объекты, на которые имеются ссылки в пользовательском коде, больше не существуют или, возможно, были изменены. В этом случае необходимо исправить код вручную, чтобы можно было успешно скомпилировать его для повторно сформированного базового класса.
В режиме конструктора метаданных можно выбирать входные столбцы, а также добавлять и настраивать выходы и выходные столбцы, но возможность писать код не предусмотрена. После настройки конфигурации метаданных компонента переключитесь в режим конструктора кода для написания скрипта.
Свойства, которые необходимо настроить в пользовательском редакторе, зависят от выбранной области применения компонента скрипта. Компонент скрипта можно настроить как источник, преобразование или назначение. В зависимости от того, как компонент используется, он поддерживает либо вход, либо выход, либо и вход и выход одновременно. Пользовательский код, который должен быть написан, применяется для обработки входных и выходных строк и столбцов.
Страница «Входные столбцы» окна «Редактор преобразования «Скрипт»»
Страница Входные столбцы окна Редактор преобразования «Скрипт» отображается для преобразований и назначений, но не для источников. На этой странице выбираются доступные входные столбцы, которые необходимо сделать доступными для пользовательского скрипта, а также указывается тип доступа для них: только для чтения или для чтения и записи.
В проекте кода, создаваемого на основе этих метаданных, элемент проекта BufferWrapper содержит класс для каждого входа и этот класс включает свойства типизированного метода доступа для каждого выбранного входного столбца. Например, если выбран целочисленный столбец CustomerID и строковый столбец CustomerName из входа с именем CustomerInput. то элемент проекта BufferWrapper будет содержать класс CustomerInput. производный от класса ScriptBuffer. а класс CustomerInput будет предоставлять доступ к целочисленному свойству с именем CustomerID и к строковому свойству с именем CustomerName. Благодаря наличию такого соглашения появляется возможность писать код с проверкой соответствия типов, подобный следующему: