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


Добавление перенаправления потока ошибок

Изменения: 17 июля 2006 г.

Как было рассмотрено в предыдущей задаче, преобразование «Поиск Currency Key» при попытке обработать поврежденный образец плоского файла не может сформировать соответствие. Вместо этого формируется ошибка. Поскольку преобразование использует установки по умолчанию для вывода ошибки, любая возникшая ошибка приводит к неудачному завершению преобразования. При неудачном завершении преобразования выполнение пакета также завершается с ошибкой.

Чтобы предотвратить завершение преобразования с ошибкой, можно настроить вывод ошибок в этом компоненте таким образом, чтобы строка с ошибкой перенаправлялась на другой путь обработки. Использование отдельного пути обработки ошибок позволяет решить сразу несколько проблем. Например, можно попытаться очистить данные, а затем заново обработать строку с ошибкой. Можно также сохранить строку с ошибкой вместе с дополнительными сведениями об ошибке для последующей проверки и повторной обработки.

В этой задаче будет настроено преобразование «Поиск Currency Key» так, чтобы все строки с ошибками перенаправлялись на вывод ошибок. Согласно ветке ошибок потока данных, эти строки будут записаны в файл.

По умолчанию два дополнительных столбца в выводе ошибок служб Integration Services, ErrorCode и ErrorColumn, содержат только числовые коды, представляющие номер ошибки и идентификатор столбца, в котором произошла ошибка. Эти числовые значения могут быть малополезны без соответствующего описания ошибки.

Чтобы повысить полезность вывода ошибок, перед тем, как пакет записывает строки с ошибками в файл, следует использовать компонент сценария, чтобы получить доступ к API-интерфейсу служб Integration Services и получить описание ошибки.

Настройка вывода ошибок

  1. В окне Область элементов раскройте узел Преобразования потока данных и перетащите элемент Компонент сценария в область конструктора на вкладке Поток данных. Поместите Сценарий справа от преобразования Поиск Currency Key.

  2. В диалоговом окне Выбор типа компонента сценария выберите Преобразование и нажмите кнопку ОК.

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

    Красная стрелка отображает вывод ошибок преобразования Поиск Currency Key. Используя красную стрелку для подключения преобразования к компоненту «Сценарий», можно перенаправить любые ошибки обработки компоненту «Сценарий», который обрабатывает их и отправляет по назначению.

  4. В диалоговом окне Настройка вывода ошибок в столбце Ошибка выберите Перенаправить строку и нажмите кнопку ОК.

  5. В области конструктора Поток данных щелкните правой кнопкой мыши вновь созданное преобразование Сценарий, выберите пункт Переименовать и измените имя на Получение описания ошибки.

  6. Дважды щелкните преобразование Получение описания ошибки.

  7. В диалоговом окне Редактор преобразования «Сценарий» на странице Входные столбцы выберите столбец ErrorCode.

  8. На странице Входы и выходы раскройте Выход 0, выберите Выходные столбцы и нажмите кнопку Добавить столбец.

  9. Для свойства Name введите ErrorDescription и установите свойство DataType в значение string [DT_WSTR].

  10. На странице Сценарий убедитесь, что свойство LocaleID установлено в значение Английский (США).

  11. Нажмите кнопку Создать сценарий, чтобы открыть среду выполнения сценариев Visual Studio для приложений (VSA). В методе Input0_ProcessInputRow введите или вставьте следующий код:

    Row.ErrorDescription =

    Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)

    Готовая подпрограмма должна выглядеть так:

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

    Row.ErrorDescription =

    Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)

    End Sub

  12. В меню Файл выберите команду Закрыть и выполнить, чтобы закрыть среду VSA IDE и диалоговое окно Редактор преобразования «Сценарий».

  13. Нажмите кнопку ОК.

Следующие шаги

Добавление назначения «Плоский файл»