Проверка наличия файла SSIS работает в SSDT, не запущенном из SSISDB - PullRequest
0 голосов
/ 21 апреля 2020

это то, что меня озадачило, и я давно этим занимаюсь.

Миграция на SQL server 2016, большое количество ETL. Достаточно просто.

В одном из пакетов ETL есть простая задача сценария, чтобы взять таблицу файлов, запустить файл, существующий foreach l oop.

, он использует параметр проекта для создания un c (\ имя_сервера \ share), а затем привязывает его к имени файла в задаче сценария.

использование настройки конфигурации среды в SSISDB

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

даже странный R, я создал простой пакет для захвата содержимого одного из файлов и импорта в таблицу дампа в случае, если разрешения или путь были неактивными (даже если они работают в SSDT, это может быть конфигурацией среды в SSISDB). ЭТО РАБОТАЕТ ТОЧНО, поэтому это не может быть настройка среды, на которую ссылается SSISDB.

обратите внимание, что это еще не выполняется из задания агента, поэтому это не будет связано с проблемой учетной записи сервера агента. сначала нужно запустить его из ssisdb, а затем создать агентское задание

Итак, задача скрипта не может увидеть общий ресурс c, построенный из двух переменных, который работает в ssdt и работает под теми же учетными данными. .

Go

Для чего работает код задачи скрипта:

Dts.Variables("BolFileExists").Value = File.Exists(Dts.Variables("StrLoadFileLocation").Value.ToString & Dts.Variables("StrCurrentFile").Value.ToString)

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Ну, я нашел ответ, и я заслуживаю того, чтобы ударить себя по лицу.

Попробовал все, это была файловая переменная и переменная пути, которые были объединены в задаче сценария, поэтому попытались объединить, что перед задачей сценария , закачал это в таблицу, чтобы убедиться, что она собирается писать таблицу.

Буквально все было хорошо и все еще не работало.

Проблема ....

Создание его в виде пакета 2017 года на сервере 2016 Sql.

Я не нашел того, чего не хватало для dll, но это, должно быть, было одно из тех, что означало, что задача скрипта не могла найти файлы, но странно, что он не сломался и просто сказал, что файлов там не было!

Спасибо всем за ввод, я собираюсь go засунуть голову в дверь и хлопнуть ею

0 голосов
/ 21 апреля 2020

Это немного другой ответ, поскольку он показывает другой подход и удаляет задачу скрипта. Я использую foreach, чтобы проверить, существует ли файл с использованием GUI инструментов, предоставляемых SSIS:

enter image description here

...