Сценарий: Пакет # 1 создает плоский файл, содержащий несколько сообщений (по одной в строке), которые удаляются в папке «INPUT» внешней системы. Файл подбирается внешней системой и обрабатывается, а ответы записываются в том же формате в файл в папке «OUTPUT». Файл начинает записываться, пока внешняя система все еще обрабатывает сообщения, поэтому она написана как foo.rsppro. Когда обработка завершена и все сообщения ответа записаны, она переименована в foo.rsp.Как получить SSIS, чтобы ждать, пока файл будет существовать и/или станет доступен
Мне нужно забрать этот файл после его завершения (т. Е. После переименования) и обработать с использованием пакета №2, который немедленно начнется после пакета № 1. Когда пакет # 2 начинается, внешняя система может находиться в трех состояниях:
- Обработка первого сообщения еще не полностью и файла ответов написанного еще, в этом случае мне нужно ждать foo.rsppro быть написано, затем переименовано в foo.rsp
- обработки продолжается и foo.rsppro написано, в этом случае мне нужно ждать foo.rsppro быть переименована в foo.rsp
- Обработка завершена, foo.rsppro было написано и был переименован в foo.rsp, и в этом случае мне просто нужно обработать foo.rsp.
Я попытался:
- используя file in use task но ошибки, если ожидаемый файл не присутствует, когда начинается задача (т.е. ошибок для сценария 1 и 2)
- используя file watcher task но что, как представляется, игнорировать файл переименовывается дизайн, поэтому никогда не будет обрабатывать сценарий 1 или 2
Помимо строительства script task, есть пользовательские задачи, которые будут обращаться с Три сценария?
Edit: SSIS 2008 R2
Я сдался в конце и написал сценарий. На самом деле два сценария. Один ищет .rsppro или .rsp, чтобы зарегистрировать эту обработку, и тот, который просто ищет .rsp для регистрации этой обработки. переменные используются для определения интервала ожидания и количества проверок. – Aphillippe
, который служит вашей цели. что вы используете в своих сценариях для поиска файлов? Занятые петли? – Vivek
Точно. См. Мой ответ ниже для кода. – Aphillippe