Есть ли какой-либо способ быстро просмотреть ВСЕ существующие обработчики событий пакетов SSIS?

#error-handling #ssis

#обработка ошибок #ssis

Вопрос:

Обработчики событий SSIS очень полезны. Обработчики событий могут быть добавлены на уровне самого пакета или для любого исполняемого файла в пакете. Это, наряду со свойством Propagate, очень полезно, чтобы позволить определенным операциям обрабатывать ошибки по-своему. Например, цикл может отреагировать на ошибку, записав, что «В этой строке с ключом [что угодно] возникла проблема», продолжить работу с остальными строками и не запускать обработчик ошибок пакета, который сохраняется для более фатальных, общих ошибок (например, сервер выходит из строя).

Количество мест, где может быть обработчик событий, также является проклятием. В Visual Studio вкладка «Обработчики событий» предназначена для просмотра, добавления или изменения обработчиков событий. Было бы здорово, если бы я хотел добавить обработчик событий в task ExecuteSomeSQL или в последовательности DoSomeThings контейнера — или найти обработчики событий для этих исполняемых файлов, которые, как я уже знаю, существуют.

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

Альтернативное представление сделало бы это намного проще. Либо:

  1. Показать все существующие обработчики событий не древовидным способом, а просто в виде списка. Пакет.Ошибка onError, Package.OnTaskFailed, (последовательность)doSomeStuff.onPostExecute и т. Д…
  2. Или разрешите фильтровать древовидное представление, чтобы показывать только исполняемые файлы, у которых есть какой-либо обработчик событий.

Я что-то упускаю, есть ли на самом деле уже хороший способ увидеть это?

Ответ №1:

Проводник пакетов — это то, что вы ищете. Это последняя вкладка для запущенного пакета.

На каждом уровне есть раздел «Исполняемые файлы» и раздел «Обработчики событий». Когда вы развернете любой из них, вы увидите, что там указано.

Мой пример представляет собой цикл Foreach с задачей потока данных внутри него. Поток данных имеет обработчик событий onError с контейнером последовательности и onPostExecute с контейнером последовательности с задачей скрипта внутри. К счастью, вы не можете добавить обработчик событий в обработчик событий (вы могли бы это сделать в более ранних версиях).

введите описание изображения здесь

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

Комментарии:

1. Спасибо. Это немного проще, поскольку оно находится на главной панели, а не в раскрывающемся списке. Все еще страдает от проблемы «дерева» — отлично, чтобы сделать структуру понятной, но не для быстрого просмотра всех существующих обработчиков. Мне придется смириться с этим до спокойного дня, когда я смогу поработать с каким-нибудь пользовательским кодом (и сначала преодолеть свою аллергию на XML …)