SSIS - захватить «ExecutionResult» / «Код данных» в переменной? - PullRequest
3 голосов
/ 22 марта 2019

Похоже, в SSIS есть некоторые неэкспонированные переменные, которые называются execute_result в SSISDB / Catalog в каталоге internal.executable_statistics.

Но в некоторых местах он также называется DataCode, но по существу он относится к каждому исполняемому файлу (поэтому уровень задачи или пакета)и т. д.)

0 = успех, 1 = сбой, 2 = завершено, 3 = отменено.

Я перевожу некоторые пользовательские журналы просто как упрощенное / понятное представление моих задач ETLв SSIS для использования в тандеме с более «кухонной раковиной», входящей в «внутреннюю» схему каталога SSIS в SQL Server.

Нет системных переменных, которые могут имитировать / перехватывать ExecutionResult для какого-либо конкретного исполняемого файла.Есть ли способ, как я могу захватить это и записать его в таблицу или сохранить в переменной?

Я видел некоторые попытки использовать его в задаче сценария, которая должна была ссылаться на .dtsx filepath и т. Д. -- кажется довольно сложным, но кто-нибудь знает элегантный способ?

По сути, я хочу уровень ведения журнала (написанный на заказ), который по существу: Пакет XYZ, бла, бла, бла, бла, executeResult: 1

Опять же, я знаю, что это в executetable_statistics, но не так, как мне нравится, и в настоящее время у меня только SQL Sever 2012, поэтому я не могу настраивать слишком много.

По сути, я хочу знать, является ли пакетв конечном итоге "удалось" или "не удалось".Ошибки на правильном пути, но не то же самое.Так как возможно, что пакет (или контейнер) может иметь ошибку и все же в конечном итоге завершиться успешно.

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

1 Ответ

1 голос
/ 22 марта 2019

ExecutionResult доступен при использовании обработчиков событий (для обработчика события OnExecStatusChanged) :

Таким образом, к каждой задаче вы можете добавить обработчик событий OnExecStatusChanged, и будет доступна переменная @[System::ExecutionResult].

Если вы новичок в обработчиках событий, вы можете обратиться к следующим статьям:


Обновление 1

Вы также можете воспользоваться ExecValueVariable свойством каждого задания:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...